Claude Media
Claude Code v2.1.307 — APIバージョン移行コマンドとsafety_eventが追加

Claude Code v2.1.307 — APIバージョン移行コマンドとsafety_eventが追加

/claude-api api-versionでAPIバージョン2026-10-21へ移行でき、OpenTelemetryにsafety_eventが加わりました。MCPの接続失敗と二重送信も直りました。

このリリースで何ができるようになるか

Claude Code v2.1.307は、追加が4件(うちVS Code拡張とCode Reviewが1件ずつ)、改善と変更が合わせて13件、修正が26件並ぶ更新です。使い方によって効き方が大きく分かれますが、新しくできることの中心は次の3つです。

  • /claude-api api-version で、Claude APIのコードをAPIバージョン 2026-10-21 へ移せます
  • OpenTelemetryに claude_code.safety_event が加わり、止められた・確認を求められた・差し戻されたツール呼び出しを1イベントで拾えます
  • Code Reviewで @claude review stop を投稿すると、@claude review always の購読を、新しいレビューを走らせずに終えられます

修正では、MCPサーバーがmacOSのキーチェーンのロックやスリープで失敗扱いになる問題と、HTTP MCPのツール呼び出しが二重送信される問題が、日常の運用に近い項目です。

あなたの開発フローはどう変わるか

Claude APIのコードを新しいAPIバージョンへ上げるとき

/claude-api は、Claude APIとManaged Agentsの参照資料をプロジェクトの言語向けに読み込む同梱スキルです。コマンド名の後ろにサブコマンドを付けて使います。今回、api-version が加わりました。

/claude-api api-version

スキルのドキュメントでは、api-version を「新しいAPIバージョンに合わせてコードを更新し、そのうえでリクエストをそのバージョンへ切り替える」ものと説明しています。必要なのはv2.1.307以降です。

移行先の 2026-10-21 で何が変わるかは、APIバージョンのページに載っています。Messages APIでは次の3点です。

  • assistant メッセージに document ブロックを直接置くと400エラーになります
  • user メッセージで、空でない citations 配列を持つ text ブロックを送ると400エラーになります。search_result ブロックの中でも同じです
  • temperature top_p top_k が削除され、どのモデルでも、送ると400エラーになります

3つ目は、サンプリングのパラメーターを固定で渡しているコードに直撃します。クライアントSDKを使っていればバージョンヘッダー自体は自動で付きますが、リクエストの中身は自分のコード側で直す必要があります。

落とし穴

Bedrockでは移行先のモデルに条件がある

APIバージョン 2026-10-21 は、Claude API、Claude Platform on AWS、Microsoft Foundry、Google Cloudで使えます。Amazon Bedrockで使えるのはClaude 4.7以降のモデルです。それ以外のモデルをBedrockで動かしている場合の手順は、移行ガイドの該当節に載っています。

同じスキルの hillclimb など他のサブコマンドは、/claude-api hillclimbの手順で扱っています。

OpenTelemetryで安全まわりの停止を数えているとき

claude_code.safety_event は、権限ルール、auto mode、安全チェック、フック、サンドボックスのいずれかが、ツール呼び出しを「止めた」「確認を求めた」「差し戻した」ときに出るイベントです。

これまで、同じ種類の情報は tool_decision イベントにありました。auto modeの分類器の判定は classifier_verdict で見分けられます(tool_decisionのclassifier_verdictの読み方)。ただ、tool_decision の source の値は config hook user_permanent user_temporary user_abort user_reject の6つで、サンドボックスや安全チェックによる判定を示す値はありません。

safety_event が持つ属性の一覧と、tool_decision との重なり方は、監視ドキュメントにまだ載っていません。根拠は更新履歴の1行です。ダッシュボードやアラートの条件を書く前に、実際のイベントを一度流して、属性名と値を見るのが確実です。

macOSで claude -p からMCPを呼んでいるとき

claude -p でMCPサーバーを使う運用では、修正が3件効きます。

  • macOSでログインキーチェーンがロックされていると、MCPサーバーが「needs authentication」と表示されていました。今回から理由が表示され、ロック解除後の次の実行では、あらためてサインインしなくても接続します
  • macOSやLinuxの端末がMCPサーバーの接続中にスリープすると、サーバーがタイムアウト扱いになり、ヘッドレス実行では失敗のまま残っていました。これが直りました
  • HTTPのMCPツール呼び出しが、接続が途中で切れると2回送られる問題が直りました。再試行されるのは、読み取り専用か冪等なツールだけになりました

二重実行の修正は、副作用のあるツールに効きます。チケット作成や書き込みのように、2回呼ばれると困る操作が二重に実行される経路が、ここで閉じました。

Code Reviewの購読を止めたいとき

@claude review always は、レビューを1回起動し、以降のpushごとに自動でレビューを走らせる購読です。v2.1.307で、購読を終えるコマンドとして @claude review stop が加わりました。off と pause も同じ働きです。ドキュメントによると、購読を終えるだけで、新しいレビューも、実行中のレビューの取り消しも起きません。Claudeはチェックランではなくコメントで返信します。

リポジトリの設定によって、効く場面が分かれます。ManualとOnce after PR creationでは、always で購読した後の解除に使えます。After every pushでは、コメントでは止められません。購読の有無にかかわらずpushでレビューが始まるので、止めたいPRはドラフトに戻します。コマンドは、PRへの新しいトップレベルのコメントの先頭に、1行で書きます。インラインコメントやレビュー本文では効きません。

主な変更点

追加

  • /claude-api api-version(前節)
  • claude_code.safety_event(前節)
  • Code Reviewの @claude review stop(前節)
  • VS Code拡張: 音声入力が自動で止まったとき(認識された音声がないまま15秒、または2分の上限)、マイクボタンに理由と、それまでのテキストが残ることを示す通知が出ます

修正

  • CLAUDE_CODE_DISABLE_1M_CONTEXT を設定し、opus[1m] のように [1m] を付けたエイリアスを使うと、モデルが見つからないエラーでリクエストが失敗していました
  • カスタムの ANTHROPIC_BASE_URL ゲートウェイ経由とFoundryで、効果のない prompt-caching-scope ベータヘッダーが送られていました
  • 多数のPDFページや画像など、大きなツール結果を読むターンで出ていた「Autocompact is thrashing」エラーの一部が直りました
  • クラウドセッションで /autocompact の設定が、セッション再起動後に既定のウィンドウへ戻っていました
  • /clear で消した会話が、クラウドまたは自己ホスト型ランナーのセッション再起動で戻ることがありました
  • Claude appsゲートウェイのセッションで、CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS が無視されていました
  • Claude appsゲートウェイ越しのClaude Desktopセッションのテレメトリが、OTEL_EXPORTER_OTLP_HEADERS を設定していると拒否されていました
  • /permissions の「Recently denied」が、拒否されたシェルコマンドを表示していませんでした。auto modeのローカル分類器は、そこでの承認を、再試行されたコマンドの確認で無視していました。承認する行には、説明ではなくコマンドが出ます
  • /help と / メニューで、/claude-api などの同梱スキルに、モデル向けの長い説明が出ていました。短い説明が出ます
  • サブエージェントのトランスクリプトに、ストリーミング応答のトークン使用量がプレースホルダーで、停止理由が空で記録されていました
  • Agent SDKの setModel() によるモデル切り替えが、APIの確認に5秒を超えると拒否されていました。待つ時間は最大15秒になりました
  • 接続したアプリ(デスクトップアプリがアイドルなセッションをアーカイブする場面など)経由でバックグラウンドコマンドを止めると、Claudeには「ユーザーが止めた」と伝わっていました。通知は出力ファイルの名前を示します
  • Coworkのクラウドセッションで、WebFetchが4xxステータスやrobots.txtによる拒否に遭うと、ツールエラーとして報告されていました。ローカルのセッションと同じく、通常の結果として扱われます
  • デスクトップアプリのCodeタブで、直接設定したGitHub MCPサーバーの書き込みツールが、何も作らずに閉じるフォームを出していました
  • Artifactツールの読み取りが、サーバーが再利用中の接続を閉じていると、接続リセットで失敗していました
  • VS Code拡張: 「Show more」で展開した長いプロンプトがチャット欄全体を覆っていました。固定されたプロンプトはパネルの40%までで、スクロールします
  • VS Code拡張: LaTeX数式を含むリスト項目や表のセルの一部が、リッチテキストエディターに新しいリストや表として貼り付けられていました
  • VS Code拡張: NODE_EXTRA_CA_CERTS を ~/.claude/settings.json にだけ設定していると、TLSを検査するプロキシの背後で音声入力が失敗していました。CLAUDE_CODE_CERT_STORE にも従います
  • クラウドセッション: リポジトリ選択が、検索中に「No repositories match」と表示していました。結果が届くまで「Searching…」と出ます
  • クラウドセッション: 自己ホスト型環境の「Waiting for a runner」表示が途中で切れていました。オンデマンドのランナーでは、最後のメッセージからの経過を数え、失敗した試行も出ます
  • 自己ホスト型ランナー: --use-anthropic-git-proxy のセッションが、以前のセッションが残した .claude/settings.local.json をコミットしていました
  • 自己ホスト型ランナー: チェックアウトフックの実行中にセッションのアーカイブ、再キュー、ランナーの停止を行うと、フックのプロセスが残り、ランナーの枠が解放されませんでした
  • バックグラウンドタスクの実行中に、SDKのMCPサーバーの最新ツールがないままターンが始まることがありました

改善と変更

  • 解釈できないツール呼び出しからの復旧: Claude Codeが最大2回まで呼び出しをやり直してから、エラーでターンを終えます
  • 同時に起動したforkサブエージェント: それぞれに自分の起動分が伝えられ、互いの作業を始めてしまうことが大きく減ります
  • ブラウザーでのサインイン: アカウントのプロフィールの読み込みを待たず、完了した時点で成功ページが出ます
  • クラウドと自己ホスト型ランナーのWeb検索: 理由つきの403で拒否されたとき、汎用の「Authentication error」ではなく理由が出ます
  • クラウドセッションで、デスクトップアプリのMCPサーバーが接続できないときの最初の返信までの時間が短くなりました。Remote Controlは、大きな貼り付け画像やPDFの読み込みを含むセッションで接続が速くなりました
  • WebSearchの予算を使い切ったときの通知に、ブラウザーやコンピューター操作で検索エンジンに問い合わせないよう伝える文が加わりました
  • 自己ホスト型ランナー: チェックアウトフックは既定で30分後に止められ、セッションのセットアップが失敗します。長くかかる場合は --checkout-hook-timeout-min を上げるか、0 にします
  • 自己ホスト型ランナー: Anthropic管理のgit向けに作られる証明書ファイルが、CLIと同じ基準で信頼する証明書を絞ります。外した数は [runner:warn] の行に出ます
  • VS Code拡張: 音声入力と拡張自身のリクエストが、CLIと同じ基準で信頼する証明書を絞ります。リクエストは、環境変数かユーザー設定で指定した NODE_EXTRA_CA_CERTS のファイルを信頼します
  • VS Code拡張: 「まだ別の場所で開いている」通知が、拡張の再起動で残ったClaudeプロセスにも出ます。多くは約10分で自然に終わります

axScreenReader の適用元が絞られた

settingsの env ブロックに書いた axScreenReader 設定と CLAUDE_AX_SCREEN_READER は、ユーザー設定、管理設定、--settings で指定した設定からだけ適用されます(2.1.305から)。プロジェクトの設定に書いていた場合は効かなくなります。スクリーンリーダー向け表示の設定はスクリーンリーダーで使うための設定にあります。

api-versionとsafety_eventで、修正だけだったv2.1.306から機能追加へ戻った

一つ前のv2.1.306は、クラウドの claude -p とMCPツール過多の修正だけのリリースでした。v2.1.307は、移行コマンドと新しい観測イベントを足しています。v2.1.305から3バージョンの中心は次のとおりです。

バージョン中心
v2.1.305中心ツール検索の拒否で全リクエストが失敗する回帰の修正
v2.1.306中心クラウドの claude -p の「Not logged in」とMCPツール過多の修正
v2.1.307中心APIバージョン移行、safety_event、MCPの接続まわりの修正

使い方別の影響

使い方影響
macOSで claude -p からMCPを呼んでいる影響明確な恩恵あり
Claude APIのコードで temperature などを固定している影響条件次第(移行時にコードの修正が必要。api-version で更新できる)
副作用のあるHTTP MCPツールを使っている影響明確な恩恵あり
OpenTelemetryで権限判定を集計している影響条件次第(属性は実イベントで確認が必要)
@claude review always を使っている影響条件次第(設定がManualかOnce after PR creationのとき)
プロジェクトの設定で axScreenReader を有効にしている影響条件次第(ユーザー設定へ移す必要あり)
自己ホスト型ランナーでチェックアウトフックが30分を超える影響条件次第(30分を超えるフックは --checkout-hook-timeout-min の調整が必要)
上記のどれにも当たらない影響ほぼ影響なし

まとめ

temperature などを固定で渡しているコードは、APIバージョン 2026-10-21 では400エラーになります。api-version で更新した後は、その差分にサンプリングのパラメーターが残っていないかを見ておくと確実です。safety_event は属性が未確認なので、アラートに組み込む前に実イベントで確かめてください。自己ホスト型ランナーでは、チェックアウトフックの30分の既定停止だけが挙動を変える項目です。

関連ガイド

Claude Code全体の機能と設定は、Claude Codeの全体像にまとめています。

この記事を共有:XはてブLinkedIn