Claude Codeの公式Changelogをリリースから最速で翻訳・解説しています。
worktree で隔離したはずのセッションが、メインのチェックアウトに対して破壊的な git コマンドを実行できていた。v2.1.222 でこれが塞がり、隔離はファイル編集と Bash の両方に、全セッションタイプで効くようになりました。権限の境界に空いていた穴は、ほかにも塞がれています。
今回の注目ポイント
- worktree 隔離が Bash を素通りしていた - 隔離セッションとサブエージェントが、メインのチェックアウトへ破壊的な git コマンドを実行できていた (v2.1.222)
- PreToolUse の auto-allow フックがツール制限を飛び越えていた - 要約・コンパクション・リネームといったバックグラウンドタスクが対象 (v2.1.222)
-
SendMessageが権限分類器を通るようになった - 他のエージェントセッションへ送るメッセージを、送信前に評価 (v2.1.222) - Remote Control の自動起動がユーザースコープ限定に - リポジトリ側の設定で ON にはできず、OFF は引き続き効く (v2.1.222)
-
/usageの MCP サーバー按分が実態ベースに - ツール結果を実際に消費したリクエストだけを計上 (v2.1.222) - ultraplan が削除 - 機能ごと廃止 (v2.1.222)
worktree で隔離しても、git は隔離されていなかった
隔離の対象がファイル編集だけで、Bash が抜けていた。 サブエージェントを worktree 隔離で走らせると、専用の worktree が切られる。ファイルの書き換えはその中に閉じる。ただ Bash から叩いた git reset --hard や git checkout は、メインのチェックアウトに届いていた。
Fixed worktree-isolated sessions and their subagents being able to run destructive git commands against the main checkout; isolation now applies to file edits and Bash in every session type
並列でエージェントを回し、git 操作を許可していた構成では、v2.1.222 より前だと隔離セッションの git コマンドがメイン側の作業ツリーに届いていました。未コミットの変更が消えた心当たりがあるなら、この修正が該当します。
v2.1.222 では隔離がファイル編集と Bash の両方に適用され、worktree セッションに限らず全セッションタイプで効きます。
バックグラウンドで走るタスクの権限も締められた
対象読者: PreToolUse フックで自動許可を返している人、複数のエージェントを SendMessage で連携させている人
PreToolUse フックで自動許可を返す構成にしていると、要約・コンパクション・セッションのリネームといったバックグラウンドのタスクで、ツール制限が飛び越えられていた。フック側の許可が、タスクに課された制限より強かった形。v2.1.222 でこの抜け道が塞がれています。
auto mode 側にも手が入りました。SendMessage で他のエージェントセッションへ送るメッセージが、ディスパッチ前に権限分類器の評価を通るようになった。エージェント間のメッセージを迂回路にした指示は、ここで止まる。
Remote Control の自動起動と ultraplan
Remote Control の自動起動は、.claude/settings.json と .claude/settings.local.json から ON にできなくなりました。OFF にする用途では引き続き効きます。ON にする場合はユーザースコープで、/config から設定してください。
ultraplan は機能ごと削除されました。
その他の変更
| バージョン | カテゴリ | 変更点 | 概要 |
|---|---|---|---|
| v2.1.222 | 修正 |
/usage の MCP 按分 |
サーバーごとの取り分が、そのツール結果を実際に消費したリクエストのみを反映するようになった |
| v2.1.222 | 修正 | 起動時の疎通チェック | HTTPS プロキシ配下でハングして失敗していた。API リクエストと同じプロキシ対応の transport を使い、タイムアウト時はメッセージを表示 |
| v2.1.222 | 修正 | 組織制限下のモデル別名 |
model: opus 形式のサブエージェント / チームメイト指定が、親モデルに落ちるのではなく同ファミリーで最新の許可モデルに降りる |
| v2.1.222 | 修正 | ストリームのアイドルタイムアウト | 独自 ANTHROPIC_BASE_URL ゲートウェイで、keep-alive ping が届いていても発火していた |
| v2.1.222 | 修正 | セッションと PR の紐付け | ブランチを push した後に作成した PR (GitHub REST API 経由を含む) が紐付かなかった |
| v2.1.222 | 修正 | /usage-credits |
Team / Enterprise で、以前の申請が却下されたメンバーが再申請できなかった |
| v2.1.222 | 修正 | claude.ai コネクタ | セッショントークンが無効なときに「要認証」と誤表示せず、/login を案内 |
| v2.1.222 | 修正 |
SendMessage の文字数上限 |
長い要約を拒否せず、切り詰めて送信 |
| v2.1.222 | 改善 |
/diff と Web セッションの差分 |
git blob の生データを使い、リポジトリ設定の diff ドライバと textconv を無視 |
| v2.1.222 | 改善 | skill 呼び出しの拒否メッセージ |
disable-model-invocation の skill は、ワークフローを真似せずユーザーに実行を依頼するよう Claude に伝える |
まとめ
v2.1.222 は 21 件の変更のうち 16 件が修正で、新機能の追加は無い。権限の境界が worktree 隔離・PreToolUse フック・SendMessage の 3 か所で同時に締め直された回です。並列でサブエージェントを走らせている環境ほど、上げた後の挙動が変わる。