Claude Code v2.1.319 — ゲートウェイ越しauto modeの分類器フォールバック廃止
Claude Code v2.1.319は、テレメトリ無効やLLMゲートウェイ越しのauto modeで分類器へのフォールバックを廃止しました。MCP taskの即バックグラウンド化、権限プロンプトを拒否にする設定も加わります。
このリリースで何ができるようになるか
Claude Code v2.1.319の中心は、auto modeの判定経路の変更、MCP taskの扱い、権限まわりの新設定です。修正が大半を占め、Bashの権限判定をすり抜ける問題の修正も複数含まれます。
v2.1.319で影響が大きい4つの変更
auto modeがサーバー確認なしでは動かない
テレメトリやフィーチャーフラグを切った環境や、LLMゲートウェイ越しでは、サーバーが確認できない呼び出しは確認待ちか拒否になります。組み込みの分類器へのフォールバックは廃止されました。
MCP taskをターミナルで即バックグラウンド化
taskとして実行されるツール呼び出しを待たず、次の作業へ進めます。
permissions.denyInsteadOfPrompting
権限プロンプトで待つはずの呼び出しを拒否し、ターンを続けます。ターミナル、サブエージェント、チームメイトが対象です。
CLAUDE_CODE_DISABLE_FEATURE_FLAGS
テレメトリは止めずに、フィーチャーフラグの取得だけを止められます。全フラグが組み込みの既定値になります。
あなたの開発フローはどう変わるか
| 使い方 | 影響 | 何が変わるか |
|---|---|---|
| LLMゲートウェイ越しでauto modeを使う | 影響条件次第 | 何が変わるか確認できない呼び出しは分類器に回らず確認待ちか拒否になり、CLAUDE_CODE_AUTO_MODE_SERVER=0 で従来の分類器に戻せる |
| テレメトリやフラグ取得を切ってauto modeを使う | 影響条件次第 | 何が変わるか同上。分類器を使い続けたいなら 0 を明示する |
| Bedrock、Vertex、Foundryでauto modeを使う | 影響ほぼ影響なし | 何が変わるかこの変更の対象外と明記されている |
| MCP taskを返すサーバーを使う | 影響明確な恩恵あり | 何が変わるか待たずにバックグラウンドへ移る。待たせたいなら環境変数で戻せる |
claude -p をauto modeで無人実行する | 影響明確な恩恵あり | 何が変わるか安全確認ができず拒否したとき、終了コードが1になる |
/loop を自走で使う | 影響条件次第 | 何が変わるか再スケジュールなしで終えたターンでループが終わる |
| Claude apps gatewayを運用する | 影響明確な恩恵あり | 何が変わるか起動時の警告、JSONログ、ログイン画面のお知らせが加わる |
| VS Codeや手元のターミナルで対話利用 | 影響ほぼ影響なし | 何が変わるか設定変更は要らない |
無人実行の終了コードが正直になる
auto modeの claude -p は、安全確認が使えず行動を拒否した場合に、これまで終了コード0で終わることがありました。v2.1.319では、テキスト出力でもJSON出力でも1を返します。CIで終了コードを見てジョブの成否を決めているなら、拒否が失敗として見えるようになります。
Bashの権限判定をすり抜ける問題が複数直った
セキュリティ寄りの修正が目立ちます。変更履歴には次の項目があります。
- 引用符付きの語で書いたコマンドに、Bashのdenyルールとaskルールが当たらない問題
- 細工した環境変数の接頭辞で、コマンドの一部が権限チェックから隠れる問題
sedコマンドが、accept-editsモードとauto modeで権限チェックを飛ばす場合がある問題- worktree作成時のサンドボックス脱出
/rewindがディレクトリのシンボリックリンク越しにファイルを復元または削除する場合がある問題
権限ルールで運用している環境は、このうちどれかに当たる可能性があります。
主な変更点
auto modeの判定経路
auto modeは、実行前の行動をサーバーに確認させる仕組みを持ちます。permission-modesのページは、サーバーが審査しないセッションはClaude Code自身の分類器リクエストに切り替わると説明しています。v2.1.319はこの切り替えを一部の環境で廃止しました。
| 項目 | 従来 | v2.1.319 |
|---|---|---|
| テレメトリ・フラグ取得を切った環境、LLMゲートウェイ越し | 従来確認できない呼び出しは分類器へ | v2.1.319確認待ちか拒否。分類器へは戻らない |
| 分類器を使い続けたい | 従来既定の挙動 | v2.1.319CLAUDE_CODE_AUTO_MODE_SERVER=0 を設定 |
| ゲートウェイ越しでサーバー確認を有効にする | 従来(直接接続では)CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS と両立しない | v2.1.319CLAUDE_CODE_AUTO_MODE_SERVER=1 で有効にできる |
| Bedrock、Vertex、Foundry | 従来従来どおり | v2.1.319変更なし |
CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS を管理設定で入れている組織は、サーバー確認を使いたい場合に CLAUDE_CODE_AUTO_MODE_SERVER=1 も管理設定に入れる必要があります。ゲートウェイのURLだけを管理設定に置き、サーバー管理設定を取得できない構成で、この 1 が無視される問題も直りました。
プロジェクトの設定ファイルやプラグインが、サーバー確認を再びオンにすることもできなくなりました。ユーザーがプロジェクト外でオフにした設定が優先されます。
関連する修正は次のとおりです。
/statusが「Auto mode server: Enabled」と出していたのに、実際はゲートウェイがレビューを落としていた表示のずれ- 権限ルールや
autoMode設定が非常に大きいとき、理由なく拒否していた問題。理由を説明し、autoModeのdenyルールがなければターミナルで確認する - モデル変更とauto mode要求が連続して届いたとき、誤って拒否された問題
現行の環境変数の仕様はCLAUDE_CODE_AUTO_MODE_SERVERの解説にまとめています。
MCP taskとバックグラウンド実行
MCPサーバーがツール呼び出しをtaskとして実行するとき、ターミナルのClaude Codeはそれを待たず、すぐバックグラウンドへ移します。終わると、結果をClaudeに伝えます。
待たせたい場合は、CLAUDE_CODE_DISABLE_MCP_TASK_BACKGROUND を設定します。MCPのページは、この変数を 1 にすると結果を待ち、自動バックグラウンド化が有効なら既定で2分後にバックグラウンドへ移ると説明しています。
taskの有効条件も広がりました。フィーチャーフラグを取得しない環境(Bedrock、Vertex、Foundry、LLMゲートウェイ、DISABLE_TELEMETRY)でも、MCP taskがターミナルで動きます。止めたいときは CLAUDE_CODE_DISABLE_MCP_TASKS=1 を設定します。
旧いハンドシェイクのMCPサーバーが、新しいサーバーでしか使わない拡張をClaude Codeが宣言していたせいで、接続できない、または空の結果を返す問題も直りました。
サーバー側の作り方はMCP tasksを自作サーバーで返す手順にあります。
権限と承認まわり
permissions.denyInsteadOfPromptingを追加。権限プロンプトで待つはずの呼び出しを拒否し、ターンを続ける。ターミナル、サブエージェント、チームメイトが対象- MonitorのWebSocket監視は、あらゆるBashコマンドに対するルールに従う。denyは拒否し、askルールの下ではMonitorへのallow、bypassモード、auto modeでもプロンプトを飛ばさない
- セッション単位のBash・PowerShellの完全一致askルールは、より広いdenyルールが同じコマンドを覆うとき、確認でなく拒否になる
- PostToolUseフックは、新しいメッセージでターンが中断された後に終わるツール呼び出しでも、最大10秒の猶予で実行される
- claude.aiコネクタの端末上の名前(
mcp__claude_ai_Slackなど)で書いたdenyとaskのルール、フックのmatcher、disallowedToolsがClaude Desktopで無視される問題を修正。Claude Desktopが今回のバージョンを含んだ時点で有効になる whichをフラグ付きで実行するとき、検索・表示向けのフラグ以外なら権限を確認するtimeout 30 rg fooのようにtimeout DURATIONで包んだ読み取り専用コマンドで、余計な権限プロンプトが出なくなった--add-dirで追加したディレクトリは、そのディレクトリ自身の信頼ダイアログを受け入れた後にだけ、プラグインマーケットプレイスを登録する- Bashのサンドボックスを有効にしている場合、開始フォルダより下の
.claude/skillsにあるスキルは、そこで起動するか/cdしたときだけ読み込む
プロンプトに答える人がいない自動実行では、denyInsteadOfPrompting が「待ち続けて止まる」か「拒否して進む」かを選ぶ手段になります。変更履歴の記述は1行で、設定ファイルの置き場所などの詳細はありません。
環境変数と通信
CLAUDE_CODE_DISABLE_FEATURE_FLAGSを追加。フラグの取得だけを止め、テレメトリは止めない。全フラグが組み込みの既定値になるCLAUDE_CODE_PROXY_RESOLVES_HOSTSは、ホストがネットワークを管理する環境で設定ファイルから指定できなくなった。プロセスの環境変数で指定する- TLSを検査するプロキシ越しの証明書の自動修復は、
ALL_PROXYしか設定されていないときは動かない。HTTPS_PROXYにプロキシのhttp://URLを入れる CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFICを設定していても、証明書エラーの後は設定済みのAPIホストにTLSハンドシェイクだけ行う。APIリクエストは送らない- 自走の
/loopは、再スケジュールなしでターンが終わると終了する。従来の挙動に戻すならCLAUDE_CODE_LOOP_KEEPALIVE=1
通信を絞る環境の考え方はCLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFICの解説、/loop の使い方は/loopコマンドの記事を参照してください。
Claude apps gateway
管理者向けの追加が中心です。設定項目の全体はgateway.yamlのリファレンスにあります。
| 追加・変更 | 内容 |
|---|---|
admin.pooled_conflict_rule と admin.pooled_priority_order | 内容複数グループに属する開発者について、どのプール予算から先に払うかを決める |
login_notice | 内容ブラウザの確認ページとClaude Codeのサインイン画面に、運用者のメッセージを出す |
CLAUDE_GATEWAY_LOG_FORMAT=json | 内容運用ログが severity、time、message を持つJSONになる |
| 起動時の警告 | 内容desktopHome のないポリシーが coworkTabEnabled: false や chatSessionRetentionDays に頼っている場合(11月10日のClaude Desktopの変更を前に) |
| 起動時の警告 | 内容別ポリシーの availableModels が、他方のポリシーが名前で挙げたカスタムモデルIDも許可している場合 |
| 起動時の警告 | 内容管理設定がヘッダーでAmazon Bedrockのguardrailを指定していて、bedrock のupstreamに guardrail の設定がないとき(ゲートウェイはこのヘッダーを転送しない) |
| 起動時の警告 | 内容AWS GovCloudを他のupstreamと混在させたとき、ゲートウェイの環境にベースURL変数があるとき |
| 支出上限エラー | 内容「spend limit reached · resets Dec 1」の次に、設定があれば admin.blocked_message を出す |
ゲートウェイ越しの開発者向けには、上限を設けていない場合でも /usage に今日・今週・今月の支出が出ます。ゲートウェイがこのバージョン以降のときに限ります。
課金に関わる警告
claude.aiのログインが終わり、ant auth login のサインインで続行したとき、使用量はClaude Consoleの組織に請求されます。v2.1.319は次の2つを加えました。
- ログインが終わって別のサインインに切り替わったときの警告
ant auth loginのサインインを使う場合、起動時に請求先のConsole組織名を示す1行
サブエージェントとタスク
/tasksに「Earlier in this session」の行が加わり、終了したサブエージェントを再び開いてメッセージを送れる。一覧から消えた後や、再起動後も対象/clearが、動き続けるバックグラウンドエージェント、チームメイト、ワークフローのコマンドを止めていた問題を修正- 安全装置でサブエージェントが止まったとき、Claudeには「プロンプトを絞って再試行する、またはユーザーに伝える」と伝える。自分で作業を肩代わりしない
- 圧縮の後、自分が起動も引き継ぎもしていないバックグラウンドエージェントの完了通知を待つように言われる問題を修正
設定ファイルとディスク
- Claude Codeが書いた直後の数秒以内に設定ファイルを編集しても、無視されなくなった
- 旧名のまま残った設定ファイルが、警告なしに設定を隠していた問題を修正。1つのホームに設定ファイルが2つあれば、stderrでどちらを使っているかを知らせる
- 読み取り専用フォルダやバインドマウントされたファイルへの保存中にディスクが満杯になっても、
~/.claude.json、設定、編集中のファイルが空になったり途中で切れたりしない(同時に保存するセッションが1つの場合) - Windowsでは、他のプログラムが開いているファイルを待つ時間が延び、保存中に強制終了されても
~/.claude.jsonが空になりにくい - Linuxでネットワークファイルシステム(NFS、SMB、Lustreなど)上のプロジェクトを開いても、起動時に全ファイルを列挙しなくなった
診断と表示
/diffは、gitリポジトリの最上位にHEADという名前のファイルやフォルダがあっても表示される(以前は「Diff unavailable」)- ファイルを編集したターンが64以上のセッションでも、
/diffペインが空で開かなくなった - 先頭に空白、タブ、改行がある状態で入力したスラッシュコマンドも、プレーンテキストでなくコマンドとして実行される
- リクエストが401で失敗し続けるとき、再試行のたびにログインを更新して他のセッションにも401を起こす問題を修正
CLAUDE_CODE_RESUME_INTERRUPTED_TURNが、プランモードで中断したターンを、別の権限モードで再開したときにも再実行する問題を修正/contextが全体のグリッドを以後のターンでもClaudeに送り続ける問題を修正。Claudeが読むのは表だけになり、各リストは大きい順に10行、オンデマンドのMCPツールは呼ぶまでサーバー1行にまとまる/modelのピッカーは、古いモデルを「More models」の行にまとめる- 薄い灰色の補助テキストのコントラストを改善
/rewindが/branchより前のチェックポイントへ復元するとき「No files were restored」になる問題を修正claude -p --resumeで、MCPサーバーがないために保留したツール呼び出しが失われる問題を修正。実行は終了コード1で終わり、呼び出しを残し、以後の入力を拒否する- 打ち間違えたモデル名(
opus-5-5など)では、候補を示さずClaude Codeの更新を促すことがなくなった
Claude in ChromeとMonitor
- 接続が途中で切れたとき、拡張機能が未接続と報告される問題を修正。繰り返すと二重に実行しかねない操作の前に、ページの状態を確認する
- 短い切断の後、別のブラウザを選ぶ前に、セッション自身のブラウザの復帰を最大6秒待つ
javascript_toolの結果は60,000文字まで、ファイルに保存されず会話に残る- 組み込みのClaude in Chromeツールから
shortcuts_listとshortcuts_executeを削除 - MonitorのWebSocket監視が、
CLAUDE_CODE_PROXY_RESOLVES_HOSTSを設定した環境で、DNSを持たないマシンでも「could not resolve」で失敗しないよう修正
プラグイン、mod、Agent SDK、テレメトリ
claude plugin updateと/pluginの「Update now」が、新しいバージョンのプラグインが加えた依存関係をインストールしない問題を修正。バックグラウンドの自動更新も同じ- プラグインが提供する
subagentStatusLineのコマンドで${CLAUDE_PLUGIN_ROOT}が展開される。プラグイン自身のスクリプトを参照できる claude plugin evalの警告は、呼んではいけないツールにmax: 0を勧めなくなった。その指定では通らない.claude/skillsのmodのホットリロードが、現れた直後に消えたファイルと、その復帰を見逃す問題を修正- SDKクライアントへの情報メッセージで、テキストの一部が落ちなくなった
- ディスクが満杯のとき、Agent SDKのホストが失敗した実行自身のエラーでなく、汎用のexit codeエラーを受け取る問題を修正
- OpenTelemetryの
claude_code.session.countが、使われなかったAgent SDKのprewarm()プロセスを数えていた問題を修正。先に起動したプロセスは、使われた時点で1回だけ数える - 詳細なベータトレースで、クライアント証明書を要求する収集先に
CLAUDE_CODE_CLIENT_CERTを提示するようになった
クラウドセッション、Remote Control、runner
- クラウドセッションが新しいワーカーに移るとき、フック(PermissionRequestなど)が加えたセッション単位のdenyとaskのルールが失われる問題を修正。ルールをすべて残せない場合は、セッション単位のallowルールを落とすため、再び確認される場合がある
- クラウドセッションの
/permissionsは、使えないとだけ答えず、ルールの置き場所と変更方法を答える - クラウドセッションの
/loopの確認に、タイマーがコンテナとともに止まることと、続く代替ループの案内が加わった - スケジュールされたタスクが、
memoryという名のコネクタをエラーを出さずに外す問題を修正 - 待機中のメッセージを「Send now」で送っても、動作中のバックグラウンドエージェントは終了しない
claude remote-controlが、初回の質問に答えが得られないとき、理由を示さず終了コード0で終わる問題を修正。理由を示して1で終わる。改行なしでパイプされたyは、yesとして数える- Remote Controlで、セッション外で使用上限が解除された後は、他のデバイスに「Limit reached」が残らない
- セルフホストrunnerで、
CLAUDE_RUNNER_CHECKOUT_PATHが、セッション内のリポジトリごとに別のフォルダを持つようになった。名前が重複すると末尾に-2、-3が付く - セルフホストrunnerの
--trust-workspace falseが、リポジトリの設定ファイルとスキルのフックの実行も止める - セルフホストrunnerで、セッション終了時のデバッグログのアップロードを廃止。失敗したセッションのログは、
--remove-session-stateがなければrunnerホストに残る
VS Code拡張
- 50,000文字を超えるプロンプトが通知なしに切り詰められる問題を修正。プロンプトはチャット欄に残り、通知が出る。上限を超える貼り付けは通知付きで拒否される
- 未承認のプランを、ウィンドウの再読み込み後にClaudeが承認なしで実行することはなくなった。プランモードで中断した手順は、別の権限モードで復帰すると通知付きで止まる
claude-vscode.toggleDictationが、開いているすべてのClaudeビューで同時に音声入力を始める問題を修正。使っているビューだけが対象で、2回目の押下で止まる- プラグインのマーケットプレイスを削除する確認が、その時点でインストール済みのプラグインを調べる
- リンクは、Claudeのサインイン、コネクタ、APIのアドレスを指す場合、ブラウザで開かずアドレス付きのテキストとして表示される
- 診断ツールは、大きなワークスペースで問題のないファイルを除き、コンパクトなJSONを返し、最小の重大度を任意で受け取る
そのほかの追加・変更
/claude-api latency-optimizeを追加。Claude APIのコードで待ち時間の長い箇所を探し、evalに対して速い設定を試す/claude-api managed-agents-onboardのテンプレートをClaude Consoleに合わせ、Performance tunerを削除- Artifact databaseへの保存で、他者が書いた可能性のある行は、ファイルごとに隠しマーカーファイルを持つ。マーカーのない既存ファイルは触らず報告する
- [Code Review] GitHub組織のリンク解除で、その組織の「All repositories」設定も切れる。再リンクしても、手動でオンに戻すまで切れたまま
- [Claude Tag]セットアップがチャンネル一覧を読み込めなくても起動できる。EnterpriseのModels管理ページにClaude Tagの行が加わった。auto modeの許可ルールの保存が他の管理者の変更を上書きする問題を修正
ゲートウェイ越しのauto modeは、分類器で動き続ける設計から止まる設計に変わる
今回のauto modeの変更は、見た目は小さく、運用では大きい部類です。争点は「サーバーが確認できない呼び出しを、分類器に回して実行を続けるか」です。
従来は、サーバーが審査しないセッションを分類器リクエストへ切り替えていました(permission-modesのページの記述です)。止まりにくい一方、アカウントによっては分類器リクエストの課金が生じる経路でもあります。v2.1.319は、テレメトリやフラグ取得を切った環境とLLMゲートウェイ越しで、この切り替えをやめました。確認できない呼び出しは、確認待ちか拒否です。
変更履歴に意図の説明はありません。事実として言えるのは、止まる側に倒したことと、戻す手段(CLAUDE_CODE_AUTO_MODE_SERVER=0)が1つ用意されていることです。
ここから、運用側の判断が2つに分かれます。
- 無人のジョブ: 拒否は止まり方の一種です。
claude -pの終了コードが1になったので、CIはその失敗を拾えます。フォールバック前提の構成は、v2.1.319で動かなくなることがあります - ゲートウェイ管理者: ゲートウェイがレビュー用のリクエストや結果を落としていれば、拒否が出続けます。その場合は、ゲートウェイ側の修正か、
CLAUDE_CODE_AUTO_MODE_SERVER=0のどちらかです
0 を選ぶと、サーバー側のレビューは使わず、Claude Code自身の分類器リクエストで判定します。課金の扱いが変わる場合があるため、入れる前にサーバー確認の仕様を確認してください。
permissions.denyInsteadOfPrompting も、同じ方向の設定です。答える人がいないとき、待ち続けず、拒否して進めます。auto modeの拒否と組み合わせると、無人実行は「止まる」より「拒否して先へ進む」側に寄ります。拒否されてもターンは続きます。権限ルールの確認は/permissionsコマンドの解説が手がかりになります。
まとめ
auto modeをLLMゲートウェイ越しやテレメトリ無効の環境で使っているチームは、v2.1.319に上げる前に、分類器を使い続けるかサーバー確認に寄せるかを決めておくと安全です。決めないまま上げると、確認待ちか拒否が増えることがあります。
MCPのtaskを返すサーバーを使うなら、待たせたい処理かどうかで CLAUDE_CODE_DISABLE_MCP_TASK_BACKGROUND を判断します。権限ルールで運用しているチームは、Bashのdeny・askルールの抜け道の修正が複数入っているため、更新を早めに検討する価値があります。手元の対話利用だけなら、設定の変更は要りません。
前のバージョンはv2.1.318の記事、その前はv2.1.317の記事にあります。Claude Code全体はClaude Codeの全体ガイドから辿れます。
関連ガイド
このバージョン単体の位置づけや前後の版とのつながりは、Claude Codeの基礎ガイドでまとめて確認できます。
参照した一次ソース
この記事の記述は、次の一次ソースと照合しています。更新時に参照先が変わった場合は一覧も更新します。