メインコンテンツへスキップ

Claude Code v2.1.299:アイドル時のコンパクト化、CLAUDE_CODE_DISABLE_FILE_MENTIONS、より厳格なMCP権限の照合

Claude Code v2.1.299では、長時間アイドル状態の会話を対象にしたアイドル時のコンパクト化、CLAUDE_CODE_DISABLE_FILE_MENTIONS、新しい/usageの警告が加わり、MCPの許可ルールはサーバー名全体で照合されるようになり、サンドボックスとMCPの問題も多数修正されました。

Claude Code v2.1.299は、変更履歴に190項目が並ぶ大規模なリリースです。ターミナルにアイドル時のコンパクト化が加わり、アイドル状態の長い会話がプロンプトキャッシュの期限切れ前にコンパクト化されるようになりました。あわせてCLAUDE_CODE_DISABLE_FILE_MENTIONS、新しい/usageの警告、エージェントビューでの/effortと/fastが追加されています。権限まわりも強化され、MCPの許可ルールは指定したサーバーだけに適用されるようになり、UserPromptSubmitフックはスキルやカスタムスラッシュコマンドの展開前に実行されます。サンドボックス、認証情報、modの制御に関する問題も多数修正されました。

新機能

ターミナルでのアイドル時のコンパクト化

200K以上のトークンを持つ会話を約54分間アイドル状態にしておくと、1時間のプロンプトキャッシュが期限切れになる前にコンパクト化されるようになりました。次のメッセージで会話全体を再処理せずに済みます。CLAUDE_CODE_IDLE_COMPACT_MIN_TOKENSで200Kトークンの下限を変更でき、settings.jsonで"idleCompaction": falseを設定するとアイドル時のコンパクト化をオフにできます(変更履歴では、どちらもv2.1.290以降が必要とされています)。

CLAUDE_CODE_DISABLE_FILE_MENTIONS

新しい環境変数CLAUDE_CODE_DISABLE_FILE_MENTIONSを設定すると、Claudeは@によるファイルメンションの内容ではなくパスを受け取り、ファイルツールで自ら読み取ります。

エージェントビュー:新しいセッション向けの/effortと/fast

エージェントビューでは、/effortと/fastで新しいセッションの開始時の設定を指定できるようになり、そこで引数なしの/model、/effort、/fastを入力するとピッカーが開きます。--safe-modeで開始したバックグラウンドセッションには、エージェントビューのプレビューパネルに「safe mode」の行が表示されます。

新しい/usageの警告

/usageが、max effort、ワークフロー、常時読み込まれるコンテキスト、大きなツール結果について警告するようになりました。

MCPの権限ルールはサーバー名全体で照合

MCPの許可ルールは、指定したサーバーだけに適用されるようになりました。mcp__aはa__bやa_という名前のサーバーを許可しなくなったため、サーバーの正規化された名前全体を使ってmcp__<server>__*と書いてください。エージェントのtools:リストも、指定したMCPサーバーのツールだけを対象にします。名前に__を含むサーバーはmcp__<whole name>__*と記述します。また、サーバーの正規化された名前に二重のアンダースコアが含まれる場合でも、MCPサーバー(mcp__<server>)に対するdenyルールとaskルールが適用されるようになりました。

フックの実行順序とブロック動作の変更

UserPromptSubmitフックはスキルやカスタムスラッシュコマンドが展開される前に実行されるようになり、プロンプトをブロックするフックは埋め込まれたシェルコマンドも止めます。スキル自身のフロントマターにあるUserPromptSubmitフックは、そのスキルを呼び出したプロンプトの次のプロンプトから実行されます。プラグインフックがブロックできるアクションは、フックに渡せない場合やフックが応答を返せない場合に、通過させずに拒否されるようになりました。すでに実行されたツールは結果が保留されます。

終了時に表示されるresumeコマンドをより安全に

終了時に表示されるresumeコマンドは、セッションを名前ではなくIDで指定するようになり、その行を貼り付けてもセッション名に含まれる内容が実行されることはありません。worktreeのセッションでは、長いフラグがターミナルの幅に収まらない場合に-wと-rを使います。

MCPのリダイレクトとプロトコルのネゴシエーション

claude.aiのコネクタプロキシとAnthropicがホストするMCPサーバーへのリクエストは、HTTPリダイレクトに従わなくなりました(コネクタ自身のサーバーによるリダイレクトは影響を受けません)。クラウドとself-hosted runnerのセッションでのMCPリクエストも、セッションのMCPプロキシからのリダイレクトに従わなくなりました。フラグを取得しない環境では、クラウドセッションとRemote ControlのMCPコネクタがデフォルトでMCPプロトコルバージョン2026-07-28をネゴシエートし、MCP_PROTOCOL_NEGOTIATION=legacyでオプトアウトできます。api.anthropic.comにあるAnthropicのファーストパーティMCPサーバーのツール説明とサーバー指示は、切り詰められずにClaudeへ届くようになりました。

mod APIへの追加

  • $.prompt.mediaにより、管理設定でインストールされたmodのprompt.submitフックが、プロンプトに添付された画像やドキュメントのバイト列を読み取れます。
  • $.session.identity()は、管理設定でインストールされたmodsにセッションのサインイン方法を伝え、管理設定のforceLoginOrgUUIDにその組織が含まれる場合は組織とメールアドレスも返します。
  • modのTextにsize、weight、mono、tabularが、Boxに名前付きの間隔ステップ(xsからxl)が加わりました。boldは非推奨となり、weightの使用が推奨されます。
  • skill.promptフックはスキルのフロントマター、ソース、プラグイン名、ファイルパスを受け取るようになり、session.appendにはqueueのdoorが加わりました。turn.startフックはサブエージェントやチームメイトのターンも受け取るようになり、e.agentIdで区別できます。

プラグイン評価とself-hosted runnerのオプション

claude plugin evalが--disallow-toolsとdisallowed_toolsのケースフィールドを受け付けるようになり、Agentなど特定の組み込みツールを評価の実行から除外できます。claude self-hosted-runner orchestratorには--shutdown-drain-secが追加されました。SIGTERMを受けるとポーリングを止め、進行中のポーリングと実行中のspawnフックに最大でその秒数だけ完了の猶予を与えます。

Claude apps gatewayの背後での帰属表示ブロック

Claude apps gatewayのcodeポリシーのenvでCLAUDE_CODE_ATTRIBUTION_HEADER=0を設定すると、Claude DesktopのCodeタブの帰属表示ブロックをオフにできます。gatewayの背後にあるClaude Codeのセッションでは帰属表示ブロックにフィールドが1つ追加され、このブロックもCLAUDE_CODE_ATTRIBUTION_HEADER=0で削除できます。

その他の動作変更

  • ファイル名やフォルダー名に、不可視の文字、文字の方向を変える文字、空白に見える文字、<、>を含むスキルやコマンドは、名前を変更するまで提供されなくなりました。
  • 非対話セッションでの/btwのサイド質問は、11分経っても回答がない場合にタイムアウトエラーを返すようになりました。
  • WebFetchによるページの読み取りは、Web検索と同じ方法でeffortを選ぶようになりました。
  • バイパス権限が利用できるためにプランモードがほとんどの編集やコマンドの前に確認しない場合、一度だけその旨の説明が表示されます。
  • ローカルセッションが同時にウォッチできる公開済みartifactの数が、10から25に増えました。
  • /ultrareviewのアップロードエラーは、.envなどの未追跡ファイルをステージやコミットしてしまうおそれのあるgit add .を勧めなくなりました。
  • Coworkのクラウドセッションでは、auto modeでPermissionRequestフックがシェルコマンドやサブエージェントを承認できなくなりました。auto mode以外では、承認済みサイトでのClaude in Chromeの操作を安全分類器が検知した場合、管理設定が適用される場合を除き、拒否ではなくユーザーに確認するようになりました。

修正と改善

  • サンドボックス:サンドボックス内のシェルコマンドが--plugin-dirフォルダーに書き込めなくなりました。このフォルダーのコードは、Claude Codeがサンドボックスの外で再読み込みして実行するものです。macOSでは、サンドボックス内のコマンドがシンボリックリンクを経由して、拒否されたパスに実際の場所から読み書きすることもできなくなりました。フォルダー名に波かっこ、丸かっこ、バックスラッシュを含むdenyReadとallowReadのglobを、Claude Codeの設定チェックとサンドボックスが同じように解釈するようになり、起点のディレクトリがシンボリックリンクに置き換えられた場合はallowReadとallowWriteのglobエントリが再チェックされます。
  • 認証情報:Anthropicへの機能フラグ、起動、高速モード、プロフィール、フィードバックのリクエストに、サードパーティのゲートウェイ(ANTHROPIC_BASE_URL)用に設定したAPIキーが含まれなくなりました(AnthropicのAPIキーは引き続き送信されます)。管理設定ファイルでANTHROPIC_BASE_URLを設定している場合に、サーバー管理設定のリクエストにサードパーティのゲートウェイのAPIキーが含まれることもなくなりました。説明なしで開始したエージェントのチームメイトが、プロンプトに含まれていた認証情報の一部をタスクの説明に残すこともなくなりました。
  • プランモードとガード:PreToolUseフックやmodのtool.checkフックが許可した書き込みを、プランモードで実行してしまう問題を修正しました。modsのフックに渡される値から__proto__キーが黙って取り除かれることもなくなりました。この問題によりtool.checkのガードがスキップされるおそれがありました。
  • modsと管理設定:設定ディレクトリのパスに.claudeが含まれない場合に、accept-editsモードでWriteとEditが確認なしにセッションのmodsフォルダーへmodを作成する問題を修正しました。リモートでオフにされたmodsはターンの合間にアンロードされるようになり、ユーザーがインストールしたmodの$.env.setが管理設定のコマンドフックの環境を変えることもなくなりました。ユーザーがインストールしたmodsに対する、管理設定の権限ルール、管理フック、組織のMCPツール名の適用も強化されています。
  • Windows:シェルを指定していないPreToolUseフックとPermissionRequestフックが、Git for Windowsが未インストールのときに失敗しても通過させてしまう問題を修正しました。失敗したガードは呼び出しをブロックします。負荷の高いマシンで、プロセスの生存確認がPowerShellの孤立プロセスを残すこともなくなり、起動時にGit BashがPATHを報告しなかった場合に、セッション全体でBashコマンドが「command not found」で失敗することもなくなりました。
  • rmの確認:rmを実行しないシェルの-cスクリプトでrmの確認が出なくなりました。Claude Codeが読めないスクリプト内で実行時に組み立てられるrmは、CLAUDE_CODE_STRICT_INLINE_SHELL_RM_PROMPT=1を設定しない限り確認を求めません。
  • カスタムエンドポイントとゲートウェイ:カスタムのANTHROPIC_BASE_URLの背後でゲートウェイ固有のモデル名を使うセッションが、200Kトークン付近で「Prompt is too long · automatic compaction failed」となって終了することがなくなりました。カスタムのANTHROPIC_BASE_URLを経由するストリームは、データが届かなくても180秒で中断されず300秒待つようになり、Claude apps gatewayはポリシーのavailableModelsMatch: exactやdeniedModelsでブロックされたモデルに対して400を返すようになりました。
  • MCP:サーバーが通知への応答の本文を終えない場合に、HTTPのMCP接続が30秒ハングして失敗する問題を修正しました。ポリシーチェックでブロックされたサーバーは、claude mcp list、claude mcp get、サブエージェントによって起動されなくなり、実行中のヘッドレスやSDKのセッションに追加されても接続されません。MCPのOAuthサインイン、トークン更新、サインアウトで、設定したheaders/headersHelperの値が送られるようになり、ヘッドレスとSDKのセッションでバックグラウンドの再接続が接続を閉じても、MCPツール呼び出しが失敗したり2回実行されたりしなくなりました。
  • MCPの設定:空の.mcp.jsonを、claude mcp list、claude doctor、/statusが無効と報告しなくなりました。constructorやprototypeという名前のMCPサーバーにも接続されるようになり、enabledMcpjsonServersやdisabledMcpjsonServersにサーバー名を1つだけプレーンな文字列で書いた場合に設定ファイルが無視されることもなくなりました。
  • メモリ:大量のデバッグログ(--debug、--debug-file)でメモリが増え続ける問題や、デバッグ出力をstderrに送っていて親プロセスが読み取りを止めた場合にメモリが際限なく増える問題を修正しました。多数のサブエージェントを実行したクラウドやRemote Controlのセッションを再開した後のメモリ使用量の多さも解消され、@メンションしたPDFのバイト列はセッションのトランスクリプトに保持されなくなりました。
  • 画像とファイル:大きすぎる画像が1枚APIに拒否された後、長い会話で新しく添付した画像がターンごとに失われることがなくなりました。Claudeの作業中に添付した画像がフルサイズのまま送られることや、作業中に送ったメッセージからドキュメントのブロックが落ちることもなくなりました。Readはバイトオーダーマーク付きのUTF-16LEファイルを文字化けさせなくなり、Writeはバイトオーダーマークを削除したり、Windows-1252、Shift-JIS、GBK、UTF-16BEのファイルを黙ってUTF-8に変換したりしなくなりました(このような書き込みは拒否されます)。
  • スケジュール:スケジュールタスクが誤った分の時刻で告知されなくなりました。夏時間の終了で同じ1時間が繰り返される間に、スケジュールタスクやループがターンごとに再発火したり早く発火したりすることもなくなり、Agent SDK、IDE、claude remote-controlのセッションでは、バックグラウンドタスクの実行中もスケジュールされたウェイクアップ(ScheduleWakeup)が発火するようになりました。
  • ヘッドレス実行:設定ファイルの検証に失敗した場合、claude -pはそのファイルと無効なエントリをstderrに表示するようになりました。毎ターンの終わりにプロンプトを送信するmodが、--max-turns、--max-budget-usd、中断を超えてヘッドレス実行を続けさせることもなくなり、ホストがauto mode非対応のモデルに切り替えた場合、SDKとヘッドレスのセッションはauto modeを抜けるようになりました。
  • 応答とサブエージェント:リクエストが非ストリーミングモードにフォールバックした後、出力トークン上限で途切れた応答がターンを黙って終了させることがなくなりました。auto modeのバックグラウンドサブエージェントが最終報告を2回送ることもなくなり、CLIの再起動とセッションの再開の後もSendMessageで名前からサブエージェントを見つけられます(最後のコンパクト化より前に付けた名前には、引き続きエージェントIDが必要です)。
  • 使用量の表示:/usage、上限が近いことを示す警告(ターミナルとVS Code)、ステータスラインで、使用量が100%を超えて表示されることがある問題を修正しました。
  • テキストの描画:CJKや絵文字とラテン文字が混在する折り返しテキストが、一部のターミナル幅で最後の行を失ったり空白行を残したりしなくなりました。太字、斜体などのネストしたテキストスタイルが、表の罫線にはみ出したり折り返した行で失われたりすることもなくなりました。
  • Remote Controlとクラウドセッション:同じバッチ内の別のキュー済みプロンプトの配信に失敗しても、Remote Controlのプロンプトが失われなくなりました。Remote Controlで送った写真やファイル(30〜35 MiBのファイルを含む)が届くようになり、コンピューターに接続できないRemote Controlのセッションでは、入力したテキストが入力欄に残り、再接続するまでSendが無効になります。クラウドセッションは、ワーカーが置き換えられたときに権限の回答を無視したり、メッセージに応答しないままにしたりしなくなりました。
  • セッションとフラグ:--safe-modeで開始したバックグラウンドセッションが、ウェイクアップや再起動の際に黙ってセーフモードを抜けることがなくなりました。claude mcp add <name> -- <command> --backgroundがバックグラウンドセッションとして起動されることもなくなり、バックグラウンドセッションへのプロンプトや返信が--bgや--backgroundの場合にフラグとして解釈されることもなくなりました。
  • VS Code:別のセッションに切り替えて戻ったときに、未送信のプロンプトと添付ファイルが失われなくなりました。使われていない空のチャットがバックグラウンドのClaudeプロセスを動かし続けることもなくなり、claude.aiからサインアウトしているときはマイクボタンがサインインを提案します。Python環境のないワークスペースや、以前開いたフォルダーを新しいウィンドウで開いたときの起動も速くなりました。
  • Claude TagとCode Review:Slack上のClaudeは、依頼に応じてチャンネルで自分が作成したcanvasを削除できるようになりました。誤ったメッセージを訂正するときは、元の文に取り消し線を引くのではなくその場で編集して短い「Edited」の注記を付け、メンバーが100人を超えるチャンネルには自己紹介を投稿せずに参加します。Code Reviewの月間支出上限に関するコメントとチェック実行カードは、その上限を設定するUsageページにリンクするようになりました。

このリリースには合計190件の変更が含まれています。すべての項目は完全な変更履歴をご覧ください。

アップデート方法

  1. インストール済みのバージョンを確認:claude --version
  2. その場でアップデート:claude update
  3. 前方一致に頼っていたMCPの許可ルールやエージェントのtools:リストを見直してください。mcp__aはa__bやa_という名前のサーバーを許可しなくなったため、サーバーの正規化された名前全体を使ってmcp__<server>__*と書く必要があります。

リンク