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

Claude Code v2.1.295:失敗時にブロックするフック、Program Status Protocol対応、gatewayのモデルリスト

Claude Code v2.1.295では、コマンドフックとHTTPフックにonFailureのブロック指定が加わり、Program Status Protocol(OSC 7501)に対応し、/copyで引用テキストを扱えるようになり、Claude apps gatewayの各アップストリームにモデルリストが追加されました。

Claude Code v2.1.295は、変更履歴に143項目が並ぶ大規模なリリースです。コマンドフックとHTTPフックが、フック自体の失敗時にアクションをブロックできるようになり、Program Status Protocol(OSC 7501)への対応により対応ターミナルでClaude Codeの状態を表示できるようになりました。Claude apps gatewayには、アップストリームごとのモデルリストやクラウドアップストリーム向けの最初のバイトまでの時間制限など、複数の制御項目が加わっています。そのほか、MCPの再接続、バックグラウンドセッション、プラグインとmods、ターミナルのフリーズなどが修正されました。

新機能

失敗時にブロックするフック

コマンドフックとHTTPフックがonFailure: "block"を受け付けるようになりました。フックが起動できない、タイムアウトする、または想定外のコードで終了した場合、アクションを通過させずにブロックします。

Program Status Protocol(OSC 7501)

Claude CodeがProgram Status Protocol(OSC 7501)に対応しました。このプロトコルを実装したターミナルでは、Claude Codeが作業中か、ユーザーを待っているか、完了したかを表示できます。

/copyの引用テキスト

/copyのピッカーに引用テキストが含まれるようになり、下書きしたメッセージを>マーカーなしでコピーできます。

CLAUDE_CODE_RETRY_WATCHDOG_MAX_WAIT_MS

新しい変数CLAUDE_CODE_RETRY_WATCHDOG_MAX_WAIT_MSで、無人再試行モード(CLAUDE_CODE_RETRY_WATCHDOG)が429エラーや529エラーの解消を待つ時間の上限を設定できます。

よりわかりやすいclaude -pの実行

claude -pの実行が最後のターンの後も終了しない場合、stderrがターミナルであれば、何を待っているかを示す1行をstderrに出力するようになりました。また、バックグラウンドの作業が別のターンを開始しても、claude -pのテキスト出力が以前の応答を落とさなくなり、各ターンの応答はそのターンの終了時に出力されます。

←によるバックグラウンド移行

←が現在のツールの完了を待っている間にターンを停止すると、「Backgrounding cancelled」と表示されるようになりました。プロンプトへの入力でバックグラウンド移行がキャンセルされた場合、Claudeは現在のツールの終了時に止まらず、フォアグラウンドで作業を続けます。アタッチ中のバックグラウンドセッションのアイドル状態のプロンプトでCtrl+Cを押しても、保留中の/loopのウェイクアップには影響しなくなりました。2回押すとデタッチしてループは動き続け、止めるにはEscを押します。

Claude apps gatewayの制御項目

  • すべてのアップストリームに任意のmodelsリストを設定できます。リストにあるモデルだけがそのアップストリームに送られ(フェイルオーバー時も同様)、エントリ内の1つの*はワイルドカードとして扱われます。
  • timeouts.upstream_ttfb_msがBedrock、Vertex、Foundryなどのクラウドアップストリームでも機能するようになり、ストリームの開始までにかけられる時間を制限できます。超過するとフェイルオーバーするか502が返されます。
  • 管理設定のないマシンでは、自分のユーザー設定にforceLoginMethod: "gateway"とforceLoginGatewayUrlを設定すると、/loginがそのgatewayで開きます。
  • inference監査イベントにupstream_request_idが加わり、成功した推論レスポンスにはrequest-idヘッダーが付くため、Claude Codeのテレメトリのrequest_idをgatewayの監査ログと照合できます。
  • Amazon Bedrock上のgatewayの背後では、トークン数をAWSのCountTokens APIから取得するようになり、バックグラウンドのリクエストはセッションのモデルではなくHaiku 4.5を使います。gatewayがHaiku 4.5を提供していない場合はセッションのモデルにフォールバックします。

mod API:$.ui.notifyとボタンの子要素

modsは$.ui.notifyを呼び出して、ユーザー自身の通知設定に従ったネイティブ通知を出せるようになりました。通知にはどのチャンネルから送られたかが示されます。modのButtonは子要素(文字列とText)を持てるようになり、リストの1行を、チップや控えめな詳細表示を含む1つの押せる要素にできます。

プラグインコマンドの警告

claude plugin install、enable、disable、marketplace addは、書き込み先の設定ファイルが読み込まれない場合に警告するようになりました。claude plugin validateは、プラグインのREADMEにインストール用の行がない場合に、貼り付ける行を示して助言します。--strictを付けても終了コードは変わりません。

その他の動作変更

  • モデルがツール検索で読み込むMCPツールの説明は、2,048文字ではなく16,384文字で切り詰められるようになりました。
  • サブエージェントがskillsフィールドから事前に読み込むスキルは最大32個で、それぞれ1回だけになりました。Skillツールを持つサブエージェントは残りのスキルも呼び出せます。
  • フラグを取得しない環境では、claude.aiのコネクタがデフォルトでMCPプロトコルバージョン2026-07-28をネゴシエートします。MCP_PROTOCOL_NEGOTIATION=legacyでオプトアウトできます。
  • WebSocket(ws)MCPサーバーでは、16 MiBを超えるメッセージは解析されずに接続が閉じられるようになり、他のトランスポートにすでにある上限と揃いました。
  • claude agentsをバックグラウンドサービスごと停止した場合(macOS、またはサービスをインストールしていないLinux)、再度実行しない限り実行中のセッションは約1分で停止し、その旨が通知されます。
  • タブ位置は画面の左端ではなくテキストの開始位置から数えるようになり、組織のmodsからのトーストは他のmodsのトーストより先に表示されます。

VS Code:Claudeから送られたファイル

Claudeから送られたファイルがチャットの行として表示されるようになりました。ファイル名をクリックするとエディターで開き、Claudeのキャプションがその下に表示されます。この行はFocusビューでも表示されたままです。

修正と改善

  • 1Mコンテキストのモデル:ゲートウェイ、Bedrock、Vertex、Foundryがcontext-1mのbetaを拒否する場合に、[1m]モデルでのすべてのリクエストが失敗する問題を修正しました。Claude Codeはそのbetaなしで再送信します。
  • MCPの接続:ヘッドレスおよびSDKのセッションで、リモートMCPサーバーが15秒を超える障害の後に切断されたままになる問題や、接続直後に毎回切断するサーバーへ短い間隔で再接続を繰り返す問題を修正しました(繰り返し切断される場合は最大30秒までバックオフします)。サーバーのエラー応答にたまたまネットワークエラー名が含まれていてもリモート接続が切断されなくなり、ページネーションのカーソルを繰り返すサーバーに対して、接続のたびに同じページを最大20回要求することもなくなりました。
  • MCPツール:MCPツールが返すCSS、JavaScript、XMLファイルが.binとして保存されなくなりました(フォントやアイコンのファイルにも専用の拡張子が付きます)。ClaudeがMCPサーバーのリソース一覧を待っている間に中断しても、タイムアウトまでターンが終わらない問題が修正され、タスクパネルや接続中のクライアントから長時間実行中のMCPツール呼び出しを停止したときにClaudeへ通知されるようになりました。
  • ツールの制限とガード:--toolsと--restrictedが、起動後に登録される組み込みツールにも適用されるようになり、非推奨のツール名が呼び出し元のツールセット外のツールに届くこともなくなりました。modのフックに、深くネストしたツール入力がエラーなしで途中まで切り詰められて渡されることがなくなり、プラグインフックのワーカーの再起動中に再読み込みされるmodの呼び出しが、.catchを持つ別のmodのガードフックをすり抜けることもなくなりました。
  • 出力内のリンク:応答やチームメイトのメッセージに含まれる生のターミナルハイパーリンクのバイト列が、アドレスの隠れたクリック可能なリンクとして描画されなくなりました。テキストとして表示されるリンクアドレスが、応答に残された色や非表示のスタイルで隠れることもなくなりました。
  • Claude in Chrome:ポート80付きで書かれたサイトのdenyルール(host:80)が、そのホストの通常のhttp://ページにも適用されるようになりました。
  • スキル:応答ストリームの終了前にSkillツールが完了した場合に、スキルのallowed-toolsとeffortが失われる問題を修正しました。この問題により、-pの実行でスキルのBashコマンドが拒否されていました。
  • フック:複数行にわたって出力された非同期フックのJSON出力が無視されなくなり、非同期のSessionStartフックの変わらないコンテキストがresumeのたびに会話へ再追加されることもなくなりました。SessionStartフックがCLAUDE_ENV_FILEに書き込んだ変数は、アプリ内の/resumeや/branchの後もBashツールに届きます。xhighとmaxのeffortで、Web検索やagentフックの評価に大幅に時間がかかる問題も修正されました。
  • バックグラウンドセッション:←でバックグラウンドに移した自己ペースの/loopをEscで止められるようになりました。←の直後に↑やEscでプロンプトに戻したキュー済みメッセージはプロンプト履歴に残ります。プロセスの停止中に次のウェイクアップの時刻が来ても、バックグラウンドセッションの/loopが通知なしに止まることはなくなり、バックグラウンドセッション内のコマンドやフックがFORCE_COLOR=3を引き継ぐこともなくなりました。
  • サブエージェントとチームメイト:独自のリンクされたworktreeにいるサブエージェントに、親セッションのgitブランチ、ステータス、最近のコミットが表示されなくなりました。Workflowのサブエージェントから呼び出したフォーク型のスキルは、結果を呼び出し元のエージェントに返すようになり、同一プロセス内のエージェントのチームメイトが最初のSendMessage呼び出しで失敗することもなくなりました。
  • ファイルの追跡:catなどのBashコマンドが内容を出力せずに実行された後に、ファイルが読み取り済みとして扱われなくなりました。更新日時が進まないまま内容が変わったファイルを、Editが完全に読み取り済みとして扱うこともなくなりました。
  • ツールの入力:モデルがdescriptionの代わりにcommand_descriptionを渡してもBashツールの呼び出しが失敗しなくなりました。grepの-l、-c、-rフラグ付きで送られた検索もGrepで実行され、Readツールは空のpagesパラメーターを省略として扱います。
  • フリーズ:応答が数万行に及んだ場合にターミナルがフリーズしてctrl+cも効かなくなる問題を修正しました。数行ごとに引用のネストが深くなる応答で数秒間フリーズする問題や、非常に長い行、連続する多数の空行、閉じられていない文字列やheredocを含むコードのシンタックスハイライト中に数秒から数分間フリーズする問題も解消されています。
  • /model:Max effortを選んだときに、新しいセッションのデフォルトとして保存されたと表示されなくなりました(Maxは現在のセッションにのみ適用されます)。Claude apps gatewayにサインインしたセッションでは、availableModelsに記載したFableモデルが/modelピッカーに表示されるようになりました。
  • プラグイン:/pluginのErrorsタブで、読み込みに失敗したmarketplaceがEnterだけで確認なしに削除され、そのプラグインがアンインストールされる問題を修正しました。claude plugin marketplace addは、その名前ではどのプラグインもインストールできないmarketplaceの追加を拒否するようになり、大きなgitサブモジュールを持つリポジトリのmarketplaceも追加・更新できるようになりました。/model、/fast、/output-styleは、保存前にプラグインのconfig.setフックに確認するようになりました。
  • macOS:ホームフォルダーやその上位でセッションを開始したとき、起動時のファイル数のカウントが他のアプリのデータに及んで「access data from other apps」のプロンプトが表示される問題を修正しました。アップデート後に一斉に再起動するバックグラウンドセッションが、安定したアプリラッパーの外で実行されることがある問題も修正されています。
  • Windows:ドライブ文字の大文字・小文字が異なっていても、プロジェクトスコープのプラグインがWindows上のVS Codeで読み込まれるようになりました。プロジェクトまたはローカルスコープでのplugin installとuninstallが、ドライブ文字の大文字・小文字の違いだけでインストール記録を見失ったり重複させたりすることもなくなり、CRLF改行の短いコマンド出力が1行に描画される問題も修正されました。
  • VS Code:バックグラウンドエージェントの活動やパネル自身のステータス行の後でも、「Fork conversation from here」とRewindによる会話の復元が「Message not found in session」で失敗しなくなりました。チャット入力でのCtrl+Shift+Tab、Cmd+Shift+Tab、Alt+Shift+Tabが権限モードまで切り替えてしまうこともなくなり、2つのClaudeビューを同時に表示しているときにキーボードフォーカスが行き来することもなくなりました。
  • self-hosted runner:runnerがCCR_AUTO_MODE_ALLOW、CCR_AUTO_MODE_ENVIRONMENT、CCR_AUTO_MODE_SOFT_DENYをセッションの環境に渡さなくなりました。大きなリポジトリでgitサーバーがまだ進捗を報告している間にgit fetchが打ち切られる問題も修正され、CLAUDE_RUNNER_FETCH_SERVER_PROGRESS_CAP_MSでこの待機を調整またはオフにできます。
  • Code Review:以前の指摘が未解決のままなのに、再レビューで問題が見つからなかったと表示されなくなりました(コメントには未解決の件数が示されます)。プルリクエストが大きなCLAUDE.mdを編集する場合に、Code Reviewがそのルールを読み飛ばす問題も修正されました。

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

アップデート方法

  1. インストール済みのバージョンを確認:claude --version
  2. その場でアップデート:claude update
  3. Amazon Bedrock上でClaude apps gatewayを運用している場合は、gatewayがAWSのCountTokens APIからトークン数を取得できるようbedrock:CountTokensを付与してください。

リンク