Claude Code v2.1.317:メールアドレス送信前の確認とコスト報告
Claude Code v2.1.317は、Webやシェルのツール呼び出しがアカウントのメールアドレスを送る前に確認を求め、Claude apps gatewayにコストレポートを追加。書き込みを失ったclaude -pは1で終了します。
Claude Code v2.1.317の変更履歴は87項目で、修正62件、追加10件、改善8件、挙動変更6件、削除1件です。主な追加は、Webまたはシェルのツール呼び出しがアカウントのメールアドレスをネットワークへ送る前の確認、Agent SDKのhook callback向けの onFailure: "block"、Claude apps gatewayのコストレポート、そして4つの新しいOpenTelemetry属性です。修正は広範囲にわたり、ヘッドレスの claude -p 実行とセルフホストrunner、プロキシ経由のOpenTelemetryエクスポート、エージェントチーム、VS Code拡張に多く見られます。サブエージェントが使うeffortレベルや、変更のないファイルに対してReadツールが返す内容など、既存の挙動を変える項目もいくつかあるため、アップデート前に「注意すべき挙動の変更」を確認してください。
新機能
アカウントのメールアドレスを送る前の確認。 Webまたはシェルのツール呼び出しがアカウントのメールアドレスをネットワークへ送信する前に、Claude Codeが確認を求めるようになりました。
Agent SDKのhook callbackに onFailure: "block"。 このオプションを設定すると、Agent SDKのhook callbackが失敗したとき、アクションをそのまま実行させずにブロックします。ガードとして頼っているcallbackは、フェイルクローズで動くようになります。command hookとHTTP hookでは v2.1.295 から onFailure: "block" が使えており、今回それがSDKのcallbackにも広がりました。
新しい通知と警告。
- autoモードのチェックがサブエージェントのツール呼び出しに答えを出せなかったとき、通知が表示されるようになりました。以前はメインビューに何も表示されませんでした。
- 組織のリモート管理設定がそのセッションでまだ読み込まれていないとき、Claude DesktopのCodeタブに通知が表示され、読み込まれると別の通知が表示されます。
- 新しいクラウドのスケジュールタスクに、頼んでいないコネクタが付いたとき、
/scheduleが警告し、削除方法も示します。 - MCPサーバーがリンクへのアクセスを求めたとき、クラウドセッションにリンクカードが表示され、開くか断るかを選べます。以前は、その要求に気付かないままになっていました。
注意すべき挙動の変更
- 別モデルのサブエージェントとチームメイトは、そのモデルのeffortを使用。 メインの会話と異なるモデルで動くサブエージェントやエージェントチームのチームメイトは、セッションのeffortレベルではなく、そのモデルの保存済みeffortレベル、またはそのモデルのデフォルトを使うようになりました。セッションのeffortを上げても、別モデルに任せた作業には引き継がれません。effortを設定するその他の方法は、effortレベルのガイドをご覧ください。
- SendMessageが実行中のバックグラウンドエージェントに早く届くように。 実行中のバックグラウンドエージェントへSendMessageで送ったメッセージが、より早く届くようになりました。エージェントが実行中のコマンドは、停止されずにバックグラウンドへ移ります。
- プラグインのmonitorは終了時の確認対象外に。 終了するとき、プラグインのmonitorについて「Background work is running」の確認が表示されなくなりました。
- Readツールの「未変更」スタブを削除。 変更されていないファイルを再度読み込むと、その内容が返るようになりました。以前のReadは「file unchanged since your last Read」というスタブを返していました。
plugin-authoringがmodの共有を提案。 自作のmodが動作した後、組み込みのplugin-authoringskillが一度だけ、共有の手伝いを申し出るようになりました。claude -pの終了コードとセッションID。 次のセクションにある2つの修正で、スクリプトから見える結果が変わります。textとjsonの出力では、書き込みが失われたときにclaude -pが1で終了するようになり、クラウドまたはセルフホストrunnerのセッション内で実行したclaude -pは、そのセッションのIDを共有しなくなりました。
ヘッドレス実行とセルフホストrunner
書き込みの喪失で実行が失敗扱いに。 ディスクやクォータがいっぱいでトランスクリプトや ~/.claude.json への書き込みが失われても、claude -p は0で終了していました。現在はエラーを表示し、textとjsonの出力では1で終了します。なお変更履歴によると、NFSのエクスポートがいっぱいの場合は検出されないことがあります。
ネストした実行がセッションのIDを共有しなくなりました。 クラウドまたはセルフホストrunnerのセッション内で実行した claude -p は、そのセッションのIDを共有していました。そのためセッションのトランスクリプトに書き込み、再起動時に誤った会話を再開することがありました。また独自のタイトルを生成し、そのセッションに送っていました。どちらも修正されています。セルフホストrunnerの構成が以前の挙動に依存している場合は、runnerで CLAUDE_CODE_DISABLE_NESTED_SESSION_ID=1 を設定すると、セッション内で実行した claude -p が以前のバージョンと同じく、そのセッションのIDとトランスクリプトを使います。
無人実行に関するその他の修正:
- コマンドを登録するプラグインが多いヘッドレスセッションで、メモリ使用量が多く起動が遅くなる問題を修正しました。
- プランが承認待ちの間に再起動したセルフホストrunnerのセッションが、直近のターンや会話全体を失わなくなりました。
- セッションが新しいrunnerへ移り、そのターンが
CLAUDE_CODE_RESUME_INTERRUPTED_TURN_MAX_AGE_MSより古い場合でも、Claudeが中断されたツール呼び出しを把握できるようになりました。 - オフにしたMCPサーバーが、セッションが新しいマシンへ移った後に再びオンになる問題を修正しました。セッションサービスがその切り替えの保存を拒否していた場合に起きていたものです。
- 3つの改善で、runnerとそのセッションが接続の失敗から回復する方法が変わりました。501と529以外の5xxの後は、runnerの次のポーリングとセッション自体が、失敗した接続を再利用せずに新しい接続を開きます。ハートビートに応答がなかった後は、セッションがアイドル状態の接続を1つずつ試すのではなく、新しい接続を開きます。
Claude apps gateway
- 管理APIのコストレポート。
GET /v1/organizations/analytics/costで、指定した期間の過去の支出を、合計、開発者別、日別、IdPグループ別に取得できます。 - IdPグループの日次記録。
admin:を設定したgatewayは、各開発者のIdPグループを毎日記録し、admin.identity_retention_daysの期間保持するようになりました。コストレポートはこの記録でグループ分けします。 - 共有予算。 グループの共有予算を使い切った後に、ステータスラインと
/usageが開発者自身の支出上限を100%使用済みと表示する問題を修正しました。 - Bedrockの「Input is too long.」。 gatewayがこのAmazon Bedrockのエラーを隠さなくなりました。隠されていたため、セッションはコンパクションせずに、毎ターン「upstream rejected the request」で失敗していました。
- わかりやすい起動時エラー。 必須のgatewayに到達できないとき、起動時のエラーはサインインではなくネットワークを示し、gatewayのTLS証明書を検証できない場合はそう伝えるようになりました。
OpenTelemetry
- 4つの新しい属性。 OTelのメトリクス、イベント、スパンに、
anthropic.plan、anthropic.seat_type、anthropic.provider、anthropic.custom_base_urlが付くようになりました。 - プロキシ経由で
https://エンドポイントへ送るエクスポートが、別のエクスポートの実行中に始まると一切送信されない問題を修正しました。 http://エンドポイントへのエクスポートをブロック(HTTP 403)するプロキシに、大量の接続試行が送られなくなりました。- 応答しないプロキシの背後で、エクスポートが無期限に止まらなくなりました。10秒で、または
OTEL_EXPORTER_OTLP_TIMEOUTの値で(最大30秒)タイムアウトします。
その他の修正と改善
セッションとコンパクション
- 非常に大きなCLAUDE.mdが前回の送信後に変更されたセッションで、自動コンパクションの後に「Prompt is too long」にならなくなりました。
- コンパクションが自身のリクエストを短くする必要があった場合でも、非常に長い会話が以前の要約を失わなくなりました。
- 再開したセッションが、Claudeがすでに知っているファイルの変更を改めて伝えなくなりました。
- 再開したセッションで、ツールがオフだったために以前の呼び出しが失敗した後、Claudeがその組み込みツールを使わなくなることがある問題を修正しました。
- 終了時に表示される「Resume this session with」のヒントが、起動時に指定したフラグ(例:
--chrome --debug)を--resumeの前に含めるようになりました。 - セッションが多いプロジェクトで、リンクされたセッションが最初のページより古い場合に、
claude --from-prが「No conversations found」と報告しなくなりました。 - クラウドとSDKのセッションで、タイトルの生成中に新しいメッセージやStopが届いても、セッションのタイトルが失われなくなりました。
- 一部の実行がクリーンアップを省略するマシン(
--setting-sourcesを使う実行など)でも、古いトランスクリプトが削除されるようになりました。
ファイル、検索、設定
- 検索が時間制限に達したとき、ClaudeがGrepとGlobの部分的な結果を完全なものとして扱わなくなりました。
- PDF自体のメタデータによって、Readと@メンションがページ数を少なく数えることがなくなりました。
- 起動後およそ1秒以内に行った設定ファイルの編集が、設定ファイルが再び変更されるのを待たずに反映されるようになりました。
- プロジェクトの
effortLevel設定が、アプリが事前に起動してからプロジェクトで開くセッション(デスクトップアプリのCodeタブの新しいセッションなど)にも適用されるようになりました。 DISABLE_PROMPT_CACHING_OPUSとDISABLE_PROMPT_CACHING_SONNETが、デフォルトモデルの[1m]、他リージョン、日付なしの表記にも効くようになりました。
エージェントチーム、バックグラウンド処理、権限
- 削除したエージェントチームの受信箱が、チームメイトから遅れて届いたメッセージで再作成されなくなりました。また、再作成したチームメイトが、以前のシャットダウン承認によってチームから外されなくなりました。
- リードセッションがmanualモードのとき、tmuxやiTerm2のペインにいるチームメイトがautoモードで起動しなくなりました。
- バックグラウンドセッションがアップグレードまたは退役(retire)されるときに、直前に変更した権限モードが失われることがある問題を修正しました。
- プロンプトで入力中のテキストを消すためにCtrl+Cを押しても、実行中のバックグラウンドエージェントがすべて停止することはなくなりました。
- 停止したシェルコマンドの子プロセスにSIGTERMが2回送られることがある問題を修正しました。一部のプログラムがクリーンアップを省略する原因になっていました。
- base URLに設定したLLM gatewayが、autoモードのサーバー側の安全性チェックに403または422で応答したとき、autoモードが毎ターン失敗しなくなりました。
apiKeyHelper使用時の403の扱いは変わりません。 - クラウドセッションで、Artifactツールがアップロード、データベースへの書き込み、outputsフォルダ経由のファイル保存を行うときに、autoモードが承認待ちで止まらなくなりました。
- claude.aiとモバイルアプリで、同時に出た2つの権限プロンプトのうち2つ目にも、ファイルパスやコマンドが表示されるようになりました。
- Remote ControlとSDKのホストが、modのツール呼び出しに「don’t ask again」を提示しなくなりました。
- スクリーンリーダーモードで、実行中のサブエージェントの経過時間とトークン数が、変化のたびに読み上げられなくなりました。
サインイン、プロキシ、プロバイダー
- リージョンやネットワークによるブロック(HTTP 403)がサインインの失敗として表示されなくなり、エラーでブロックについて説明するようになりました。
- 時間のかかるトークンの更新が保存される前に
claude auth statusが終了しなくなりました。次回の実行でサインアウトされる原因になることがありました。 - ルート証明書の更新後、一部のTLS検査プロキシの背後で、APIリクエストが「unable to get local issuer certificate」で失敗しなくなりました。
- Microsoft FoundryでAzureの認証情報を読み込めないときのエラーが、認証情報の確認または更新を促し、
cloud_credential_errorとして報告されるようになりました。 - stdio MCPサーバーのenv設定で
AWS_BEARER_TOKEN_BEDROCKを空にした場合、空の値を渡すのではなく変数を未設定にするようになりました。サーバーはマシン自体のAWS認証情報を使えます。
MCP、skill、コマンド
- 一部のClaude Desktopセッションで、projectとlocalのMCPサーバーが最初のターンの後に切断されなくなりました。
- クラウドセッションで、同期したプラグインに同じサーバーが含まれているとき、正常に動いているclaude.aiのコネクタについて、認証が必要だ、あるいは失敗したとClaudeが伝えることはなくなりました。
- claude.aiから同期したskillが、ディスクに書き込めない場合に失われたり、10分ごとに再ダウンロードされたりしなくなりました。
/team-onboarding:どれかを指定せずにガイドの削除を頼まれたとき、Claudeが最後に更新したガイドを削除しなくなりました。また、サーバーが削除を拒否したのに削除したと伝えることもなくなりました。- 自分のartifactが200個以上あるとき、
/artifactsとArtifactツールの共有リストに共有されたartifactが表示されるようになりました。 /remote-controlが「Unknown command」と答えるのではなく、disableRemoteControl設定でRemote Controlがオフになっていると伝えるようになりました。/design-syncは、デザインシステムがClaudeへ移行済みの場合に最初にそう伝え、アップロード時に失敗するのではなくビルド前に停止するようになりました。- レポートの送信中に、
/feedbackが「Enter to confirm」を表示しなくなりました。
スケジュールタスク
/scheduleでクラウドのスケジュールタスクを作成または更新した後、結果に次回の実行時刻とリンクが含まれるようになりました。- スケジュールタスクをオフにした後でも、保存済みのスケジュールタスクを一覧表示・削除できるようになりました。
- Claudeがリクエストのフィールドを省いた場合に、セルフペースの
/loopのウェイクアップがスケジュールされないことがある問題を修正しました。 - クラウドセッションで、新しいスケジュールタスクのフォームが、Anthropicがホストするデフォルトではなく、管理者が組織のデフォルトとして選んだ環境から始まるようになりました。
Windows
- ネイティブのパス解決が失敗する一部のボリュームで、すべてのツール呼び出しが拒否されていました。作業ディレクトリのチェックは、フォルダーの同一性(identity)を比較するようになりました。
- Claude Desktop以外から開始したセッションで、セッションのスクラッチパッドやその他の一時パスが、プロジェクトのパスの長さに応じて長くならなくなりました。以前は、そこにcloneしたリポジトリが260文字のパス長制限に達していました。
VS Code
- フォークした会話でメッセージが失われなくなりました。以前は、Claudeが並列で実行したツール呼び出しのうち1つしか残らず、コンパクションが残した最後のメッセージも失われ、Claudeの回答から対応する質問が抜け落ちることがありました。
- Claudeの起動が時間内に完了しないとメッセージが失われていました。拡張は、エラーを表示する前にClaudeをもう一度起動するようになりました。
- リクエストがリージョンやネットワークによってブロックされたとき、サインイン画面が開かなくなりました。
- Claudeタブのファイルリンクが、チャットの上ではなく別のエディターグループで開くようになりました。
chat.fontSizeを大きくしたとき、Claudeパネル内の添付ファイルのチップ、メニュー、バナー、ダイアログが小さいままにならなくなりました。- テレメトリがオフでも、
ultrathinkがそのターンのeffortを上げ、レインボー表示も出るようになりました。 - Accountパネルで、プラン名の2語目が小文字で表示されなくなりました。
クラウドセッション、Remote Control、Claude Tag
- クラウドセッション: すでにネットワークシークレットがあるホストにシークレットを追加しても、黙って置き換えられなくなりました。Add secretフォームは追加を拒否し、既存のシークレットを案内します。管理設定の組織環境ダイアログは、個人用ダイアログと同じ短いレイアウトになりました。各セクションは行から開き、未保存の入力がある場合は閉じる前に確認します。
- Remote Control:
claude remote-controlを再起動した後、前のメッセージから1分以内にアイドル状態のセッションへ送った次のメッセージが、応答されないままになる問題を修正しました。アプリがフォーク名を設定しない場合、長い名前でも末尾の「(fork)」が残り、claude remote-controlで開始したセッションでは「Name (fork)」のフォークが「Name (fork 2)」になります。 - Claude Tag: Slackに新たに貼り付けたartifactリンクは、Slackのサイドパネルではなく、Claudeでartifactを開くOpenボタン付きのシンプルなカードで表示されます。
87項目すべての原文は公式の変更履歴をご覧ください。
アップデート方法
- インストール済みのバージョンを確認:
claude --version - その場でアップデート:
claude update - セルフホストrunnerで、セッション内の
claude -pにそのセッションのIDとトランスクリプトを使い続けさせたい場合は、CLAUDE_CODE_DISABLE_NESTED_SESSION_ID=1を設定してください。