Claude Code v2.1.304 — worktree終了時の誤削除と自動圧縮ウィンドウの単位を修正
claude --worktreeの終了時にworktreeとブランチが消え、コミットを失いかねない不具合と、AUTO_COMPACT_WINDOW=200kが100Kになる不具合を修正。/auto-mode-setupの対応環境も拡大。
このリリースで何ができるようになるか
v2.1.304は項目数が多いリリースです。読者の手元に効きやすいのは次の3点です。
claude --worktreeが、コミットを失いかねない形でworktreeとブランチを黙って消す不具合の修正CLAUDE_CODE_AUTO_COMPACT_WINDOW=200kが100Kのウィンドウになっていた不具合の修正と、k/M接尾辞の対応/auto-mode-setupが、Bedrock・Vertex・Foundry・Claude apps gateway・テレメトリー無効のセッションでも使えるようになったこと
加えて、modの tool.check に decider: "person" と e.isReadOnly が加わりました。
あなたの開発フローはどう変わるか
終了したらworktreeが消えていた
claude --worktree で作業した後、HEADがデタッチされていたり、別のブランチに移っていたりする状態で終了すると、確認なしにworktreeとブランチが消えることがありました。その結果、コミットが失われる場合がありました。v2.1.304で直っています。
終了時の確認が出なかった人は、git reflog でコミットが残っていないか見ておく価値があります。
自動圧縮のウィンドウを環境変数で決めている人
たとえばゲートウェイが200Kを超える要求を拒否する環境では、CLAUDE_CODE_AUTO_COMPACT_WINDOW で圧縮の境界を決めます。200k と書いたつもりが、実際には100Kのウィンドウだったのが今回の不具合です。
CLAUDE_CODE_AUTO_COMPACT_WINDOW=200k の扱い
v2.1.303まで
100Kのウィンドウが黙って設定されていました。
v2.1.304
k と M の接尾辞を受け付けます。範囲外の値や無視される値には警告が出ます。
接尾辞を使わず 200000 と書いていた設定は、もともと影響を受けません。
export CLAUDE_CODE_AUTO_COMPACT_WINDOW=200k
claude別の環境で/auto-mode-setupを試したい
/auto-mode-setup は、プロジェクトと直近のセッションを読んで、auto modeに環境の情報を教える対話式のセットアップです。changelogによれば、Bedrock、Vertex、Foundry、Claude apps gateway、テレメトリーを無効にしたセッションでも動きます。一方、auto mode設定ページには、このコマンドにPro・Max・Teamプランが必要で、クラウドセッションでは動かないとあります。2つの記述は食い違っており、どちらが当てはまるかは環境次第です。自分の環境で /auto-mode-setup が起動するかを試して確かめてください。
分類器そのもののモデルを選ぶ話は、2つ前のv2.1.302とCLAUDE_CODE_AUTO_MODE_MODELの解説にあります。
ProやMaxで古い会話を再開する人
非アクティブな会話を再開すると、5時間の使用量上限のうち目立つ割合を消費する場合に、警告が出るようになりました。選べるのは2つです。
- そのまま再開する
- 新しい会話を始める(前の会話は、Claudeに参照を頼めば調べてくれる)
modを書く人
modの tool.check の応答に decider: "person" を返せるようになりました。承認できるのは権限ダイアログかホストのコールバックだけになり、尋ねる相手がいない場面ではmodの理由つきで拒否されます。e.isReadOnly は、ツール呼び出しが読み取り専用のときに立ちます。
settings.read フックは、各設定レイヤーを受け取って、マージ後の設定を書き換える形に変わりました。管理対象のmodが、組織の設定を上限として固定できます。保持期間の掃除が参照する cleanupPeriodDays も対象です。
主な変更点
追加
/claude-api managed-agents-secure: Managed Agentsのエージェント設定を、Anthropicが公開しているセキュリティガイドと突き合わせます。何も変更しません- 先に走るプラグインがmodのフックを飛ばしたとき、イベント名とプラグイン名を示す行がトランスクリプトに出ます
- トランスクリプト表示(Ctrl+O)の圧縮サマリーに、それ以前に呼ばれたツールの名前が入ります
- Code Reviewに、Quick・Standard(既定)・Deepの3段階のレビューレベルが入りました。組織で選び、リポジトリごとに上書きもできます
- Code Reviewの管理画面に、GitHub組織の全リポジトリを、後から追加されるものも含めて対象にする選択肢が加わりました
- [VSCode] Bedrock、Vertex、Foundry、LLMゲートウェイ配下、テレメトリー無効のセッションで、チャットパネルにmodの描画が出ます
動作の変更
- 圧縮の後に、スキル一覧をClaudeへ送り直します。
/reload-skillsは新規・変更分だけを送ります - 1つの提供元(リポジトリ、自分のフォルダ、プラグイン)のスキルが登録できるフックは、1セッションあたり最大1,024個、マッチャーの文字数で16,384文字までです
- カスタムの
ANTHROPIC_BASE_URLの背後でも、ツール検索が既定で有効です。ゲートウェイが400か422を返したときは、ツール検索なしで再試行します /artifactsの削除確認が番号つきの選択肢になりました。1かEnterで残し、2で削除します。y・n・Escも使えます- フックを「プラグイン由来のみ」に絞るポリシーの下で、フックが除外されたスキルは、メインの会話で使っても
allowed-toolsを得られません - [VSCode]バックグラウンドのサブエージェントは、Agentカードの下に1行のステータスで出ます。全文は
/tasksに残ります
修正
安全性に関わるもの:
rm -rが、マウントされたドライブ(/Volumes、/media、WSLの/mnt/c)やその最上位のフォルダを対象にしたとき、rm -rf /Applicationsと同じ安全確認が出るようになりましたCLAUDE_CODE_TRANSCRIPT_LOCAL_GCは、ファイルの切り詰め中にディスクが満杯になっても、保存済みトランスクリプトのメッセージを落とさなくなりました- BashとPowerShellで、大きな出力ファイルをセッションのtool-resultsフォルダへコピーできなかったとき、ディスクが満杯でなければ出力が消えていました。消えなくなっています
- ヘッドレス実行が、
--max-turns・Stop・入力終了の後も、プラグインのサブエージェント起動や再実行で続いていました。続かなくなっています
認証・組織設定・接続まわり:
ANTHROPIC_API_KEYを起動時に承認した後や、/configで「Use custom API key」を切り替えた後は、組織ポリシーがすぐ更新されるようになりました。以前は毎時の確認まで待っていました- LLMゲートウェイの背後で
context_management: Extra inputs are not permittedのエラーが出たとき、このフィールドを外してリクエストを再送するようになりました - サーバー管理設定で配られたOpenTelemetry設定は、初回セットアップ中のサインイン後や
/logout後の最初の起動でも、セッション全体に効くようになりました - Remote Controlで別アカウントがターミナルにサインインしていても、デスクトップの会話履歴が出るようになりました
- 有料プランで
DISABLE_TELEMETRYかDO_NOT_TRACKを設定していても、Claude DesktopからRemote Controlが起動します
表示・操作まわり:
CLAUDE_CODE_EFFORT_LEVELがautoかunsetで何も送っていないとき、/effort status、/effort ultracode、プロンプトの努力レベル表示が推測したレベルを出していました。出さなくなっています- Writeの結果や拒否された編集は、作業ディレクトリ外のファイルを
../../…ではなく、~/…かフルパスで示すようになりました - 自己ペースの
/loopのウェイクアップが1時間上限に設定されたとき、1時間のプロンプトキャッシュが切れた直後に発火して会話をキャッシュなしで読み直す問題が直りました - エージェントチームで、メインセッションからシャットダウン要求を承認してもCLI全体が終了しなくなりました
- スキルの
onceフックは、実行後に別のスキルの同じフックを消さなくなりました claude --helpの--tools・--resume・--debug・--json-schema・--disable-slash-commands・--system-prompt-snapshot・claude updateの説明を、実際の挙動に合わせました
そのほか、次の修正が入っています。サンドボックスの sandbox.filesystem.denyRead に [user-id] のようなブラケット入りのglobがあるとLinuxでコマンドが起動しない不具合が直りました。PreToolUseフックの拒否理由がAgent SDKのコールバックフックのタイムアウトで置き換わる不具合も直っています。Cowork・クラウドセッション・Claude Tag・VSCode・self-hosted runner・Windowsには、個別の修正や改善があります。
性能と表示の改善
- 多数のサブエージェントを同時に動かしたときの応答性とスループット
- 長い会話や再開した会話でリクエストを送るときのメモリ使用量
- SDKとヘッドレスモードで、大きく圧縮されたセッションを再開した後の最初のリクエストが早く送られます
- auto modeでは、分類器のコンテキストをリクエストごとに保存しなくなり、セッションファイルが小さくなります
/usageの使用量データの取得がレート制限にかかったとき、「try again in a moment」ではなく、制限が解ける時刻を示します
影響を受ける利用形態
| 利用形態 | 影響 | 理由 |
|---|---|---|
claude --worktree を使う | 影響明確な恩恵あり | 理由終了時にコミットを失う経路が塞がれた |
CLAUDE_CODE_AUTO_COMPACT_WINDOW に接尾辞を付けていた | 影響明確な恩恵あり | 理由100Kになっていたウィンドウが指定どおりになる |
| ゲートウェイ経由で使う | 影響条件次第 | 理由context_management エラーの再送とツール検索の既定有効が効く |
| modを書く・配る | 影響条件次第 | 理由tool.check と settings.read のフックが変わる |
| 通常の対話利用 | 影響条件次第 | 理由修正は広いが、個々の症状に当たる人だけが恩恵を受ける |
CLAUDE_CODE_AUTO_COMPACT_WINDOWは「単位の揃った変数」に近づいた
--autocompact と /autocompact は、200000、500k の形を受け付けます。環境変数だけが接尾辞に対応せず、200k が黙って100Kになっていました。v2.1.304で3つの入口が足並みをそろえました。
公式のモデル設定ページによれば、接尾辞なしの数字は、その数のトークンとして読まれます。/autocompact 200 は20万を指しますが、環境変数の 200 は200トークンです。この食い違いは今回も残っています。一方で、100,000に満たない値は100Kの下限として扱われ、こうした範囲外の値にはv2.1.304から警告が出るようになりました。
ウィンドウの設計は、サブエージェントのautoCompactWindowの記事とも地続きです。
v2.1.302からv2.1.304までの流れ
v2.1.303が不具合修正と信頼性の改善だけだったのに対し、v2.1.304は76件の項目を含む大きな更新です。rm -r の安全確認やworktreeの誤削除の修正も入っています。
まとめ
v2.1.304で最初に確かめたいのは、worktreeの終了時の挙動と、CLAUDE_CODE_AUTO_COMPACT_WINDOW に接尾辞を付けていないかの2点です。どちらも、気づかないうちに作業内容や圧縮の挙動が意図と違っていた可能性があります。modを書く人には、tool.check と settings.read の変更が直接関わります。
関連ガイド
このバージョン単体の位置づけや前後のバージョンとのつながりは、Claude Codeの全体像でまとめて確認できます。
関連する記事
Claude Code をもっと見る →Claude Codeとは — できること・料金・始め方と使い方の全体像
Claude Code v2.1.302 — auto modeの分類器モデルを選べ、forkが既定に
Claude Code v2.1.301 — 使用量上限で待つ時間を制限、auto modeの判定をOTelで区別
Claude Code v2.1.300 — AWSでadvisorが使え、キャッシュ書き込みを寿命別に計測
Claude Code v2.1.299 — 放置した長い会話をキャッシュ切れ前に自動で圧縮
Claude Code v2.1.284 — Sonnet 5.5対応とauto mode既定化、Ultracode独立