1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Claude Code v2.1.299〜v2.1.302|54 分の放置で idle compaction が走る|週刊Changelog解説

1
Posted at

Claude Codeの公式Changelogをリリースから最速で翻訳・解説しています。

v2.1.299 から、20 万トークン以上の会話を約 54 分放置すると、ターミナル版の Claude Code が自動で compact するようになりました。1 時間のプロンプトキャッシュが切れる前に要約しておき、戻ってきた次の 1 通で会話全体を再処理させない仕組みです。

  1. idle compaction - 放置した長い会話を、キャッシュが切れる前に要約する (v2.1.299)
  2. MCP の allow ルール - mcp__a が a__b という名前のサーバーを許可しなくなった (v2.1.299)
  3. Write の文字コード - Shift-JIS のファイルを UTF-8 に変換せず、書き込みを拒否する (v2.1.299)
  4. fork subagent - claude -p と Agent SDK でも既定で有効になった (v2.1.302)

idle compaction が発動する条件と止め方

v2.1.299 で、ターミナル版の Claude Code に idle compaction が入りました。

Added idle compaction in the terminal: a 200K+ token conversation left idle for about 54 minutes is compacted before its one-hour prompt cache expires, so your next message doesn't reprocess it all

条件は、会話が 20 万トークン以上あることと、入力が無いまま約 54 分経つこと。プロンプトキャッシュの寿命 1 時間より 6 分ほど早く Claude Code が要約を作るので、戻ってきた最初のメッセージで 20 万トークン分を再処理せずに済みます。引き換えに、戻った時点の会話は compact 後の要約に置き換わっています。changelog が対象に挙げているのはターミナル版だけで、VS Code やデスクトップアプリには触れていません。

settings.json に次のキーを書くと止まります。

{
  "idleCompaction": false
}

発動の下限の 20 万トークンは、環境変数 CLAUDE_CODE_IDLE_COMPACT_MIN_TOKENS で変えられます。v2.1.302 では /config に Idle compaction の行が加わり、画面からもオンとオフを切り替えられるようになりました。idle compaction の後に出る通知も、止め方を書く形に変わっています。

v2.1.300 では、OpenTelemetry の api_request イベントに cache_creation_5m_tokens と cache_creation_1h_tokens が加わりました。キャッシュ書き込みのトークン数を、寿命 5 分のものと 1 時間のものに分けて数えられます。

compact の周辺で直った挙動

compact が絡む修正は、4 版のどれにも入っていました。

版 場面 変わったこと
v2.1.299 カスタム ANTHROPIC_BASE_URL の先で gateway 固有のモデル名を使う 20 万トークン付近で "Prompt is too long · automatic compaction failed" になって止まる不具合が直った
v2.1.300 headless / Agent SDK のセッションを resume する 途中で切れた返答の直後に compact した会話で、残したはずのメッセージや要約が消える不具合が直った
v2.1.301 コンテキストウィンドウの小さいモデルに切り替える 収まらない会話は、切り替え前のモデルが先に要約する。この要約に確認なしで usage credits を使うケースも直った
v2.1.301 返答のモデル名がリクエストと違う LLM gateway を通す 選んでいないモデルで compact が繰り返される不具合が直った
v2.1.302 compact 中にターンを止める "Prompt is too long" エラーが出なくなった
v2.1.302 auto mode を server-side classifier で使う 安全チェックに収まらない長さの会話を、Claude Code が compact するようになった。以前はチェック対象のツール呼び出しがすべて拒否になっていた

既存の設定と食い違う変更

v2.1.299 から、MCP の allow ルールは名前を書いたサーバーにしか効きません。mcp__a は、a__b や a_ という名前のサーバーを許可しなくなりました。

原文が示す書き方は mcp__<server>__* で、<server> の部分は正規化後のサーバー名全体です。agent 定義の tools: も同じ扱いになり、名前に __ を含むサーバーは mcp__<whole name>__* で指定する仕様です。名前に __ を含むサーバーへの deny / ask ルールが効いていなかった問題も、同じ v2.1.299 で直りました。

v2.1.299 の Write は、Shift-JIS のファイルを UTF-8 に変換して上書きしなくなりました。それまでは Shift-JIS・Windows-1252・GBK・UTF-16BE のファイルを黙って変換していて、今は書き込み自体を拒否します。BOM を落としていた問題と、Read が BOM 付き UTF-16LE を文字化けさせていた問題も、同じ版で直っています。

  • fork subagent (subagent_type: "fork") が、claude -p・Agent SDK・デスクトップアプリ・VS Code でも既定で有効になった (v2.1.302)。ターミナルでは以前から有効で、CLAUDE_CODE_FORK_SUBAGENT=0 で無効にできる
  • permission mode を指定していない claude -p と Agent SDK のセッションは、サードパーティ provider 上、telemetry オフ、新規インストール直後のいずれでも default で始まる (v2.1.302)。--permission-mode auto を付けたセッションは auto のまま
  • claude remote-control から、効果の無かった --sandbox と --no-sandbox が消え、渡すとエラーで終了する (v2.1.300)。サンドボックスの有効化は settings の sandbox.enabled が受け持つ

前回から続く hook の締め直し

4 版の changelog は合計 392 項目あり、そのうち 270 件が不具合の修正でした。hook が許可した操作や hook の戻り値を Claude Code が検証せずに通していた箇所は、前回の v2.1.290〜v2.1.296 に続いて今回も直っています。v2.1.299 では plan mode が PreToolUse hook の許可した書き込みをそのまま実行していた不具合が直り、v2.1.300 では hook が返す updatedInput も、Claude Code が Claude 自身の入力と同じ基準で検証するようになりました。

前回: Claude Code v2.1.290〜v2.1.296|hook の素通りが塞がる|週刊Changelog解説

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?