はじめに
Claude Code v2.1.296 が公開されました。今回のリリースで特に重要なのは、権限チェックを回避できてしまう問題などのセキュリティ修正です。あわせて、Sonnet 5.5 のキャッシュ読み取り単価の表示更新、Read ツールの allow_large、サブエージェント向けの新しい設定も追加されました。
📌 影響を受ける人
- Windows(Git Bash)で bypass permissions モードを使っている人
- Shift-JIS / Windows-1252 / GBK など UTF-8 以外のファイルを Claude Code で編集している人
- VSCode 拡張で Claude in Chrome を使っている人
- Sonnet 5.5 を使い、
/costや--max-budget-usdで予算管理している人- サブエージェントやワークフローを多用している人
結論として、v2.1.296 以上へのアップデートを推奨します。
変更の全体像
変更内容
1. セキュリティ・権限まわりの修正(critical)
| # | 内容 | 影響 |
|---|---|---|
| 1 | Bash 権限チェックが、BASH_ARGV0 に代入してから使う一部コマンドを自動承認していた |
承認を求めるように修正 |
| 2 | Windows の Git Bash で rm -rf /c/Users/<name> が bypass permissions モードで確認されなかった |
確認が入るように修正 |
| 3 | 共有トランスクリプト/デバッグログの秘密情報マスクが、値のないキーの後に続く値(シェル文字列内の JSON を含む)を取りこぼしていた | マスク漏れを修正 |
| 4 | Edit/NotebookEdit が非 UTF-8 ファイル(Windows-1252、Shift-JIS、GBK)の非 ASCII 文字をすべて置き換えていた | 該当ファイルの編集は拒否されるように変更 |
| 5 | クラウドセッションで機能フラグ未読み込みのとき、保存済み権限で許可された Claude in Chrome の操作に auto mode のチェックがかからなかった | 修正 |
| 6 | [VSCode] Claude in Chrome は @browser 接続を含むすべてのセッションで、ブラウザ操作前に確認 |
ターミナルと同じ動作に統一 |
⚠️ Breaking Change
Shift-JIS などの非 UTF-8 ファイルは、Edit/NotebookEdit で拒否されるようになりました。日本語の古い資産(Shift-JIS の CSV やソース)を扱うプロジェクトでは、ワークフローが止まる可能性があります。事前に UTF-8 へ変換してください。
影響範囲の補足
- 項目 1 は、権限ルールで安全と判断されるはずのないコマンドが自動実行され得る問題でした。許可リストに頼った運用ほど影響が大きくなります。
- 項目 2 は、bypass permissions を使うこと自体がリスクの高い運用ですが、今回の修正でも最低限の確認が働くようになります。
- 項目 6 は、一度そのセッションでサイトを許可すれば以降は聞かれません。
2. Sonnet 5.5 のキャッシュ読み取り単価(high)
/cost、ステータスライン、--max-budget-usd、SDK のコスト計算で、Sonnet 5.5 のキャッシュ読み取り単価が $0.10 / 100万トークン(従来 $0.20)として扱われるようになりました。
| 項目 | 旧 | 新 |
|---|---|---|
| Sonnet 5.5 キャッシュ読み取り | $0.20 / MTok | $0.10 / MTok |
--max-budget-usd の判定にも反映されるため、キャッシュヒット率の高い長いセッションでは、同じ予算でより多く処理できる可能性があります。コスト集計を自前で行っている場合は、単価テーブルの更新を検討してください。
3. 新機能(high)
Read ツールの allow_large
ファイル全体が必要でコンテキストに余裕がある場合、通常のサイズ上限を超えるテキストファイルを1回の Read で読めます。
💡 Tips
全体が本当に必要なときだけ使いましょう。コンテキストを大きく消費するため、通常はoffset/limitでの部分読みが基本です。
サブエージェント・ワークフロー・リトライ設定
| 設定 | 用途 |
|---|---|
autoCompactWindow(サブエージェント frontmatter / --agents) |
サブエージェントを、メイン会話より早い段階で自動コンパクトする |
CLAUDE_CODE_WORKFLOW_SUBAGENT_MODEL |
ワークフローのエージェントをすべて指定モデルで実行(他のサブエージェントは各自のモデルのまま) |
CLAUDE_CODE_OVERLOADED_RETRY_MAX_DELAY_MS |
過負荷(529)リトライのバックオフ最大待ち時間を延ばす |
あわせて、--debug の出力でカスタムエージェントファイル内の認識できない frontmatter フィールドが表示され、タイプミスらしいものにはヒントが出るようになりました。
4. その他の主な変更(medium)
- MCP: 最初に送る MCP ツールの説明文と、MCP サーバーの instructions の既定上限が 2,048 → 4,096 文字に。Windows では終了時に stdio MCP サーバーを強制終了せず、まず stdin を閉じ、300ms 後も動いていればプロセスツリーを終了します。
-
フック: managed settings の
PreToolUseフックが"continue": falseで拒否してもターンが終わらない問題などを修正。--debugで command フックの所要時間を記録し、遅いフックを特定できます。 -
プラグイン/mod/マーケットプレイス:
constructorのような名前による内部エラー、claude.ai 同期、Windows でのowner/repo形式インストール失敗(HTTPS で再試行)などを修正。 -
Claude apps ゲートウェイ:
managed.policies[]にcodeキーを追加。cliと同じ設定を Claude Desktop の Code タブにも適用できます。2.1.295 で発生したforceLoginMethod: gatewayのリグレッションも修正されました。 - Haiku 5.5 などの adaptive thinking 専用モデル: トークン数計算の不具合を修正。
- PowerShell(Windows): 約1KBを超えるコマンドで毎回権限確認が出ていた問題を修正し、allow ルールと読み取り専用判定を 32KB まで適用。
-
VSCode 拡張:
claudeCode.spinnerVerbsの設定定義、Windows パスのリンク、モーション軽減設定などを修正。 - Claude Tag(Slack)/ Code Review: メモリファイル管理の追加、Code Review チェックが「進行中」のままになる問題の修正など。
影響と対応
推奨アクション
- v2.1.296 以上へ更新する(特に Windows/bypass モード利用者、許可リスト運用のチーム)
- 非 UTF-8 ファイルの洗い出しと UTF-8 変換。変換後は文字化けがないか確認する
- 共有トランスクリプトの見直し: 過去に共有したログに秘密情報が残っていないか確認する(マスク漏れが修正対象だったため)
- コスト集計の更新: Sonnet 5.5 のキャッシュ読み取り単価を $0.10/MTok に
- CLAUDE.md の更新(下記参照)
コード例
CLAUDE.md への追記例
## Security / Permissions
- Edit / NotebookEdit は UTF-8 以外(Shift-JIS, Windows-1252, GBK)のファイルを拒否する。
事前に UTF-8 へ変換してから編集すること。
- Claude Code は v2.1.296 以上を使うこと。
## Models / Pricing
- Sonnet 5.5 のキャッシュ読み取り単価は $0.10/MTok(旧 $0.20)。
## Tools
- Read の `allow_large` は、ファイル全体が必要なときだけ使う。
## Subagents / Environment Variables
- `autoCompactWindow`(agent frontmatter): サブエージェントを早めにコンパクトする。
- `CLAUDE_CODE_WORKFLOW_SUBAGENT_MODEL`: ワークフローのエージェントのモデルを一括指定する。
- `CLAUDE_CODE_OVERLOADED_RETRY_MAX_DELAY_MS`: 529 リトライの最大待ち時間。
## MCP
- MCP ツール説明文・サーバー instructions の既定上限は 4,096 文字。
Shift-JIS ファイルを UTF-8 に変換する例
# Before: Shift-JIS のまま Claude Code で編集 → v2.1.296 以降は拒否される
# After: UTF-8 に変換してから編集
iconv -f SHIFT_JIS -t UTF-8 legacy.csv > legacy.utf8.csv
mv legacy.utf8.csv legacy.csv
変換前にバックアップ(Git コミットなど)を取っておくと安全です。また、元システムが Shift-JIS を前提にしている場合は、編集後に元の文字コードへ戻す工程が必要です。
サブエージェントで autoCompactWindow を使う例
サブエージェントの frontmatter に autoCompactWindow を追加します。値の形式や推奨値はリリースノートに記載がないため、公式ドキュメントで確認してください。
---
name: log-analyzer
description: 大量ログを調査するサブエージェント
autoCompactWindow: <公式ドキュメントで確認した値>
---
環境変数の設定例
# ワークフローのエージェントをすべて同じモデルで実行
export CLAUDE_CODE_WORKFLOW_SUBAGENT_MODEL=<モデルID>
# 過負荷(529)リトライの最大待ち時間(ミリ秒)を延ばす
export CLAUDE_CODE_OVERLOADED_RETRY_MAX_DELAY_MS=<ミリ秒>
まとめ
- v2.1.296 は 権限チェック回避(
BASH_ARGV0)や Windows bypass モードのrm -rf無確認など、セキュリティ上重要な修正を含む。更新を推奨 - Shift-JIS などの非 UTF-8 ファイルは Edit/NotebookEdit で拒否されるため、UTF-8 化が必要
- VSCode の Claude in Chrome は、全セッションでブラウザ操作前に確認が入る
- Sonnet 5.5 のキャッシュ読み取り単価は $0.10/MTok に(旧 $0.20)。
--max-budget-usdの判定にも反映される - Read の
allow_large、サブエージェントのautoCompactWindow、新しい環境変数 2 種で、大規模作業の制御がしやすくなった - フック、MCP、プラグイン、VSCode、Slack、クラウドセッションなど多数の不具合も修正されている