Claude Code v2.1.274:メモリ逼迫時の警告、MCP起動待ちの制御、ゲートウェイ運用の改善
Claude Code v2.1.274では、メモリ逼迫時の警告、CLAUDE_CODE_MCP_STARTUP_WAIT_MS、新しいOpenTelemetryデータ、Claude apps gatewayのドレインとPostgresのオプションが加わり、tool_use_idエラーの無限再試行も修正されました。
Claude Code v2.1.274は、変更履歴に108項目が並ぶ大規模なリリースです。メモリ使用量が危機的な水準になった際の警告表示、非対話セッションがMCPサーバーを待つ時間の上限設定、新しいOpenTelemetryデータ、Claude apps gatewayの運用面の改善が加わりました。修正は、止まったままになるセッション、MCPのトランスポートとタイムアウト、/goal、Bashの権限チェックのほか、VS Code、Web版、Claude Tagの多数の問題に及びます。
新機能
メモリ逼迫時の警告
メモリ使用量が危機的な水準になると、メモリを解放する手順や安全に再起動する手順とともに、目に見える警告が表示されるようになりました。関連して、軽いメモリ負荷がかかっているマシンで、バックグラウンドコマンドが30分間アイドル状態になると停止される動作もなくなりました。停止されるのはメモリが危機的に不足した場合のみで、その理由はデバッグログに記録されます。
MCPの起動待ちとクライアントのデフォルト
CLAUDE_CODE_MCP_STARTUP_WAIT_MSで、最初の非対話ターンが接続中のMCPサーバーを待つ時間に上限を設けられます(0 = 待たない)。Bedrock、Vertex、Foundry、テレメトリーを無効にしたインストールでも、他のインストールと同じく、直接接続するHTTPサーバーに対してv2のMCPクライアントとMCP 2026-07-28のネゴシエーションをデフォルトで使うようになりました。MCP_SDK_GENERATION=v1またはMCP_PROTOCOL_NEGOTIATION=legacyでオプトアウトできます。また、インプロセスのサーバーを登録できるのはSDKのホストアプリケーションだけであるため、.mcp.json、設定、プラグイン、エージェントファイル内の"type": "sdk"のMCPエントリは警告付きでスキップされるようになりました。
OpenTelemetryの追加
claude_code.llm_requestのトレーススパンに、api_requestイベントと同じくeffort属性が追加されました。- 新しい
claude_code.managed_settings_resolvedイベントは、マネージド設定のソースとポリシーヘルパーの状態を報告します。OTEL_LOG_MANAGED_SETTINGS=1を設定すると、マスクされた設定とダイジェストも含まれます。 OTEL_LOG_RAW_API_BODIES=file:<dir>の出力にindex.jsonlと、各レスポンスをリクエストファイルやトランスクリプトのメッセージと結び付けるrequest_body_id/message.idのイベント属性が加わりました。
Claude apps gatewayの運用
store.connect_timeout_secondsでPostgresの接続タイムアウト(デフォルト5秒)を延長できます。データベースに到達できない場合の起動エラーはstore.postgres_urlと設定済みのタイムアウトを示すようになり、起動時は最初のPostgres接続を最大3回試みます。- SIGTERMを受けたゲートウェイは、開いているストリームをすべて切断するのではなく、処理中のリクエストが最大25秒で完了するのを待ってから終了します(
CLAUDE_GATEWAY_DRAIN_TIMEOUT_MS)。 - レプリカで開いているリクエストが、一度に上流へ送る256件を超えた場合に警告し、起動時のログにこの上限を表示します。
- Claude DesktopとCoworkがゲートウェイ経由で送るテレメトリーに、IdPのサブジェクトである
enduser.subが含まれるようになりました。 - 利用額上限のチェックはデータベースへの往復が4回から1回になり、サインインのレート制限エラーは
/loginとゲートウェイのログで理由が説明されるようになりました。
調整のないモデルでの軽量な/code-review
/code-reviewは、専用の調整設定を持たないすべてのモデルで、多数のレビュー用サブエージェントを起動する代わりに、より軽量なインラインのレビュープロンプトを使うようになりました。
プラグインのクローンとGit LFS
プラグインとマーケットプレイスのクローンでは、Git LFSのファイルをダウンロードせずポインターのまま残すようになりました。取得するには、チェックアウト内でgit lfs pullを実行します。
VS Code:リロード後の継続、MemoryとInstructions
VS Code拡張機能は、ウィンドウのリロードで中断されたステップをチャット上に表示したうえで継続するようになりました。この動作はClaude Code: Continue After Reload設定でオフにできます。Customizeメニューには、Memory(自動メモリのトグル、保存済みのメモリ、メモリフォルダー)とInstructions(CLAUDE.mdファイルの編集)の項目が追加され、新しいclaudeCode.lockEditorGroups設定で、Claudeが開いたエディターグループをロックしないようにできます。
修正と改善
- 止まったままのセッション:「unexpected tool_use_id」の400エラーをセッションが延々と再試行し続ける問題を修正しました。破損したトランスクリプトは可能な限り自動修復され、修復できない場合は明確なエラー(
/rewindの案内付き)でループが終わります。 - MCPのトランスポート:
httpとして設定されているものの旧来のHTTP+SSEしか話さないサーバーが、最初のリクエストに422などの4xxエラーで応答した場合でも接続できるようになりました。サーバーごとのtimeoutを長く設定していても、Streamable HTTPのツール呼び出しが約5分でタイムアウトする問題も修正されています。 - MCPのエラーと機密情報:403 insufficient_scopeで拒否されたツール呼び出しが、サインインの期限切れとして報告されなくなりました。不足している権限が示され、
/mcpでの再認証が案内されます。MCPの接続エラーとMCPログインツールの説明にも、${VAR}プレースホルダーから解決された機密値が表示されなくなりました。 /goal:リアクティブなコンパクションの後にコンテキストが再びあふれた場合、実行中の/goalなどフック駆動のセッションが「Prompt is too long」で終わらずにコンパクションするようになりました。コンパクション済みのセッションを再開した際に、実行中の/goalが失われることもなくなりました。- エージェントビュー:自動アップデート後の再起動で、
claude agentsが--model、--effort、--permission-mode、--allow-dangerously-skip-permissions、--agentを失わなくなりました。 - Bashの権限:特定の特殊なシェル変数をループで回したり代入したりするコマンドで、権限の確認が求められるようになりました。worktreeで分離されたセッションは、特定の入れ子のシェル展開を含むBashコマンドを拒否するようになり、マルチバイト文字を含むファイルでEditの権限プロンプトのプレビューが承認した編集と異なる位置を示すこともなくなりました。
- モデルの選択:Bedrock、Vertex、Foundryで、セッションのモデルのidから既知のモデルファミリーを判別できない場合に、
model: "opus"のサブエージェントがセッションのモデルから外れる問題を修正しました(ANTHROPIC_DEFAULT_OPUS_MODELを設定している場合を除く)。 - self-hosted runner:トークンの更新に何度か失敗した後、セッションが毎ターン401で失敗する問題を修正しました。runnerは再試行を続け、401を受けると新しいトークンを取得します。また、gitホストがアクセスチェックで拒否した読み取り専用のリポジトリは、セッションの開始を失敗させずにスキップするようになりました。
- パフォーマンス:言語サーバーが数千ファイル分のプロジェクト全体の診断を公開した場合に、ターンごとに処理が遅くなる問題を修正しました。Bashツールがプラグインの再読み込み後にシェルのプロファイルを読み直すのは、プラグインの
bin/ディレクトリが変わった場合だけになりました。プラグインのポリシーがリモートのマネージド設定から来る場合に、installed_plugins.jsonがほぼ毎回の起動で書き換えられることもなくなりました。 - ヘッドレスとSDK:キューに溜まったバックグラウンドタスクの完了通知には、タスクごとではなく1回のモデル呼び出しでまとめて応答するようになりました。
--input-format stream-jsonのセッションでは、ツール検索によってツールが遅延ロードされる接続中のMCPサーバーを、最初のターンで最大2秒待つこともなくなりました。 - 端末の出力:
file://URIを必要とするVS Codeなどの端末で、ローカルファイルパスへのリンクをクリックしても何も起きない問題を修正しました。トランスクリプトが自分のメッセージ内の番号付きリストを振り直すこともなくなりました。 - AskUserQuestion:プレビューのメモが、以前に選んだ選択肢ではなくハイライト中の選択肢に付くようになりました。Enterでメモを送信した際にハイライト中の選択肢が失われることもなくなりました。
- フック:Stopのプロンプトフックが、会話内でブロックするたびにプロンプト全体を再送しなくなりました。2回目以降のブロックでは、500文字のラベルで条件を示します。
- Monitorとアーティファクト:Monitorスクリプトの最終出力と終了が1つの通知で届くようになり、モデルのターンを1回節約できます。Artifactツールが、後で拒否する更新の承認を求めることはなくなりました。古いバージョンを基にした公開は送信前に止められ、ローカルセッションでは、他の場所で公開された新しいバージョンによってターンが始まることもなくなりました。
- Linux:CursorやVS Codeのターミナル内で実行した場合に、Wayland環境で起動時に空のエディターウィンドウが余分に開く問題を修正しました。
- VS Code:拡張機能による設定の書き込みが重なった場合に、
~/.claude/settings.jsonが解析できなくなったり設定が失われたりする問題を修正しました。スクリーンリーダーは各メッセージを「You」または「Claude」として読み上げるようになり、ハイコントラストテーマでもコードが読めるようになりました。Manage Pluginsの有効化トグルとMCP serversダイアログの行にも、キーボードで到達できるようになりました。 - Claude Code on the web:クラウドセッションの差分ビューに「Compare against」ブランチピッカーが追加されました。GitHubのトークン更新が一時的にエラーになった場合に、gitの操作が「service unavailable」で失敗する問題を修正しました。所有者のGitHub接続が見つからない場合、ルーティンは最初のチェック失敗でオフになるのではなく、その回の実行をスキップして最大72時間再試行するようになりました。
- Claude Tag:他のSlackアプリやボットが@メンションした場合にもClaudeが応答するようになりました。ブロッカーなどの遅れて届く続報は、黙って編集するのではなく通知される新しい返信として投稿されます。1つのチャンネル内でのSlack検索が失敗することもなくなり、Add channelとAdd workspaceのフォームにはGuests設定が追加されました。
- Code Review:起動時にGitHubや内部サービスが一時的に失敗した場合に、レビューがまれに「Code review encountered an error」で終わる問題を修正し、待機して再試行するようになりました。再レビューで、修正済みの検出結果のスレッドがまれに開いたまま残る問題も修正されています。
このリリースには合計108件の変更が含まれています。すべての項目は公式の変更履歴をご覧ください。
アップデート方法
- インストール済みのバージョンを確認:
claude --version - その場でアップデート:
claude update - Bedrock、Vertex、Foundry、またはテレメトリーを無効にしたインストールでは、直接接続するHTTPサーバーとのMCP接続がデフォルトでv2クライアントとMCP 2026-07-28のネゴシエーションを使うようになりました。オプトアウトするには
MCP_SDK_GENERATION=v1またはMCP_PROTOCOL_NEGOTIATION=legacyを設定してください。Git LFSのファイルに依存するプラグインがある場合は、そのチェックアウト内でgit lfs pullを実行してください。