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

Claude Code v2.1.312:safety_event送信停止、hookに上限

Claude Code v2.1.312は、claude_code.safety_event OpenTelemetryイベントの送信を停止し、prompt hookとagent hookの同時実行数に上限を設け、Claude Codeが認識しないモデル名に関する2つの既定動作を変更します。

Claude Code v2.1.312の変更履歴は39項目で、修正22件、挙動変更9件、追加4件、改善4件です。対応が必要になりやすいのは挙動変更のほうです。Claude Codeは claude_code.safety_event OpenTelemetryイベントの送信を停止し、prompt hookとagent hookの同時実行数を制限し、認識しないモデル名に関する2つの既定動作を変更しました。OpenTelemetryをエクスポートしている場合、prompt hookやagent hookを使っている場合、またはBedrock、Vertex、Foundry、Mantleでカスタムのデプロイ名やinference profile ARNを使ってClaude Codeを実行している場合は、更新前に最初のセクションを読んでください。

v2.1.312は v2.1.311 の翌日に公開されました。変更履歴に記載のある次のバージョンは v2.1.314 です。

注意すべき挙動の変更

claude_code.safety_event は送信されなくなりました

Claude Codeは claude_code.safety_event OpenTelemetryイベントの送信を停止しました。このイベントは v2.1.307 で追加されたもので、permission rule、autoモード、safety check、hook、sandboxが停止・確認・差し戻しを行ったツール呼び出しごとに発火していました。変更履歴には理由も代替手段も書かれていません。ダッシュボード、アラート、エクスポートのパイプラインがこのイベントに依存している場合、更新後はイベントが届かなくなります。

テレメトリに関する変更はもう1つあります。Anthropic公式marketplaceのプラグインが宣言する、URL固定のリモートMCPサーバーについて、OpenTelemetryの mcp_server.name が custom ではなく実際の名前を報告するようになりました。

prompt hookとagent hookの同時実行は最大24件

prompt hookとagent hookは、セッションごとに同時に最大24件(subagent分も含む)まで実行され、これに加えて、イベントのtimeoutより長く待っているものが最大12件まで実行されます。1秒未満の timeout は1秒として扱われるようになりました。多数のprompt hookやagent hookを同時に発火させる設定や、1秒未満のtimeoutを設定している場合は、これらの上限と照らし合わせて確認してください。

認識されないモデル名に関する2つの既定動作の変更

どちらの変更も、カスタムのデプロイ名など、Claude Codeが認識しないモデル名が対象で、それぞれ無効にするための環境変数があります。

  • 短いシステムプロンプト。 Bedrock、Vertex、Foundry、Mantleでは、こうした名前(inference profile ARNを含む)に短いシステムプロンプトが使われるようになりました。背後のモデルがSonnetやHaikuであっても同様です。完全なプロンプトを維持するには CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT=0 を設定します。
  • 自動モデル切り替え。 メッセージにフラグが付いた後の自動モデル切り替えが、こうした名前にも適用されるようになりました。無効にするには CLAUDE_CODE_DISABLE_REFUSAL_FALLBACK=1 を設定します。

「session limit」は「5-hour limit」に

使用量制限のメッセージでは、5時間の枠を「session limit」ではなく「5-hour limit」と呼ぶようになりました。VS Codeでは、使用量制限のリセットが時刻(「Resets at 3:10 PM」など)で表示され、「5-hour limit」と表記されます。古い「session limit」という文言に一致させているスクリプトやアラートがあれば、更新してください。

subagentの autoCompactWindow でウィンドウを下げられるように

subagentの autoCompactWindow が、CLAUDE_CODE_AUTO_COMPACT_WINDOW で設定されたウィンドウを下げられるようになりました。以前はこの場合に効果がありませんでした。そのウィンドウを引き上げることは引き続きありません。

クラウドセッションの名前はサーバーから

CLIから開始したクラウドセッションは、セッション名とブランチ名をサーバーから取得するようになりました。

新機能

  • Claude apps gatewayの oidc.user_id_claim。 gatewayが、sub 以外のid_token claim(Microsoft Entra IDの oid など)で利用者を識別できるようになりました。
  • クリックで送信。 フルスクリーンで、キューに入ったメッセージの下にある「to send now」のヒントをクリックすると、対応するキーを押したときと同様にすぐ送信されます。
  • クラウドのルーティンのeffort。 クラウドで実行するルーティンを作成・編集するとき、モデルピッカーでeffortレベルを選べるようになりました。
  • クラウドのセットアップスクリプト用Bashエディタ。 クラウド環境設定のセットアップスクリプト欄が、色分け、行番号、Copyボタンを備えたBashエディタになりました。

作業中のeffort変更

Claudeの作業中にeffortレベルを選び直す場面について、3つの項目があります。

  • スピナー、OpenTelemetryの effort 値、トランスクリプトが、モデルが適用する前に、新しく選んだレベルを表示していました。現在は実際に有効なレベルを表示します。
  • プロンプトのeffortインジケーターは、作業中の変更が次のメッセージまで反映されない場合があることを示すようになり、その注記は該当しなくなると消えます。
  • /model と /effort のキャッシュ警告は、再読み込みが次のメッセージまで待つとは言わなくなりました。Claudeの作業中に行った変更は、それより早く再読み込みを引き起こすことがあるためです。

ファイル、skill、セッション

  • 大きな指示ファイル。 サブディレクトリにある非常に大きなCLAUDE.md、ルールファイル、@で取り込んだファイルを、Claudeが冒頭しか見ないまま上書きしてしまうことがありました。現在はWriteが、全体を読むか、その場で編集するようClaudeに求めます。
  • cd 後のskill。 Bashで cd してgitリポジトリのより深い場所へ移動すると、ディレクトリごとのskillと paths: skillが見つからなくなっていました。
  • PDFページ。 古いセッションファイルのクリーンアップが同時に実行されると、ReadツールがPDFページで「pdftoppm failed: Could not write image」と失敗することがありました。
  • 再開したセッション。 まれに、ターミナルでセッションを再開した後の最初の返信が、次回そのセッションを再開したときに欠けていることがありました。
  • コマンドの読み込み。 名前が不正なコマンドが1つあるだけで、すべてのコマンドが読み込まれなくなり、claude -p が何も出力しないことがありました。
  • 待機状態。 最後のメッセージが文中であなたの対応待ちの項目に触れていただけなのに、一部のセッションがあなたの対応待ちとして表示されていました。

ターミナルとVS Code

  • エージェントビューで、終了直前にCtrl+Cで消した入力テキストが次回起動時に復元される問題と、空の ! 入力からCtrl+Dで終了するとシェルモードで再び開く問題を修正しました。
  • vimモードで、gj や gk のカウントが残りの行数より大きいとき、d、c、y がテキストを削除・コピーしていました。現在はVimと同じくカーソルを移動するだけです。
  • /verify が /help と / コマンドメニューに、短い説明ではなくClaude向けの長い説明を表示していました。
  • VS Code拡張からサインインした後、そのセッションの残りの間、管理設定と組織ポリシーが取得されていませんでした。
  • VS Codeで、組織の設定を起動時に読み込めなかった、または拒否された場合に、セッションが終了コードだけを残して終了していました。現在はタブに理由が表示され、Retry または Sign in again を選べます。

クラウドセッションとRemote Control

  • クラウドセッションでのWebFetchのエラーは、名前解決できないホストについて、許可されたネットワークドメインの外にある可能性があると説明するようになり、Claudeが許可すべきホストを示します。
  • Claudeがクラウドセッションにリポジトリを追加するときに表示されるステップを開くと、生のJSONではなく、何が起きたかを示す短い表が表示されるようになりました。
  • クラウドセッションで送信に失敗した後、変更していないメッセージを再送すると、2回実行されることがありました。
  • クラウド環境の作成に失敗すると、エラーが開いているダイアログの外にtoastとしてしか表示されませんでした。現在はダイアログ内に表示されます。
  • Routinesページでルーティンのメニューにある Edit が、編集ダイアログを開かずにルーティンのページへ移動していました。
  • アーカイブを解除したRemote Controlセッションが、コンピューターが再接続するまで作業中と表示されていました。現在はアイドルと表示されます。

Claude TagとCode Review

  • SlackでのClaude Tagの再試行通知が、汎用的なAPIエラーではなく、使用中のモデル名、またはレート制限に達したことを示すようになりました。
  • 古いプライベートSlackチャンネルが公開になって新しいIDを得ると、そのClaude Tagチャンネルのオン/オフスイッチとagent設定がワークスペースの既定値に戻っていました。
  • 環境のネットワークアクセスがNoneに設定されたチャンネルで、Claude in Slackが返信しない問題と、同じチャンネルの別スレッドで回答しているときにファイルを誤ったスレッドに投稿することがある問題を修正しました。
  • GitHubからのpushイベントが遅れて届くと、Code Reviewが古いcommitをレビューしたり、まったくレビューしなかったりしていました。現在はpull requestの現在のcommitをレビューします。

アップデート方法

  1. インストール済みのバージョンを確認:claude --version
  2. その場でアップデート:claude update

リンク