Claude Code v2.1.229 — SSE keepaliveでVertex/Bedrockの接続断を防止
Claude Code v2.1.229は32項目の更新です。Vertex/Bedrock接続のタイムアウト切断をSSE keepaliveで防ぎ、command sourceも加わりました。
Claude Code v2.1.229は、32項目からなる整備リリースです。もっとも実務への影響が大きいのは、Vertex AIやAmazon Bedrockを上流に持つゲートウェイ接続で、長い拡張思考の間に起きていた強制切断がSSE keepalive pingで防げるようになった点です。本稿ではこの修正を軸に、dynamic workflowsやplugin marketplaceの変更、Windowsのself-hosted runnerで実質必須になった設定変更まで扱います。
このリリースで何ができるようになるか
変化の中心は3つです。Vertex AIやAmazon Bedrockを上流に持つゲートウェイでは、長い拡張思考が続く間もSSE keepalive pingで接続を維持できるようになりました。dynamic workflowsのfan-outでは、同一プレフィックスを持つ兄弟エージェントの起動タイミングをずらし、後発のエージェントがキャッシュ済みプロンプトを読めるようになっています。plugin marketplaceには、ローカルコマンドがプラグインの配置先を都度出力するcommand sourceが加わりました。
このほか、claude remote-control --continueが公式docsで文書化され、ListAgentsは切断中のRemote Controlセッションをoffline、クラウドセッションをcloudと表示するようになりました。
あなたの開発フローはどう変わるか
Vertex AI・Bedrockゲートウェイの運用
長い拡張思考(extended thinking)の最中は、応答のストリームに実質的なデータが流れない時間が続きます。Vertex AIやAmazon Bedrockを上流に持つ構成では、この無通信がアイドルタイムアウトと判定され、接続が切れることがありました。v2.1.229が改善したのはここです。この間もSSE(Server-Sent Events)のkeepalive pingを送り、アイドルタイムアウトによる切断を防げるようになりました。
Vertex・Bedrock経由で長い拡張思考を伴うタスクを回すほど、今回の修正の効果を実感できます。
dynamic workflowsのfan-outでプロンプトキャッシュを使い切る
dynamic workflowsがfan-outで複数のエージェントを同時に起動するとき、同じプロンプトプレフィックスを持つ兄弟エージェント同士が生まれます。従来はこれらが同時に起動するため、プレフィックスのキャッシュが書き込まれる前に複数のエージェントが並行してリクエストを送っていました。v2.1.229では、起動タイミングを意図的にずらす(prefix stagger)ようになりました。後から起動するエージェントは、キャッシュ済みのプレフィックスを読めます。
この挙動はCLAUDE_CODE_WORKFLOW_PREFIX_STAGGER_MS=0で無効化できます。同一プレフィックスのエージェントを大量にfan-outさせる設計ほど、キャッシュの読み直しコストは積み上がるため、今回の変更の効きも大きくなります。dynamic workflowsの基本的な仕組みはClaude Code dynamic workflowsとは、プロンプトキャッシュの原理はプロンプトキャッシュの仕組みで扱っています。
dynamic workflows自体もv2.1.154の導入以降、キャッシュ効率に関わる変更を重ねてきました。バージョンで並べると、次のようになります。
| バージョン | dynamic workflowsの変更 |
|---|---|
| v2.1.154 | dynamic workflowsの変更dynamic workflowsを導入 |
| v2.1.202 | dynamic workflowsの変更size guidelineの設定を追加 |
| v2.1.203 | dynamic workflowsの変更--effort ultracodeでの起動に対応。25エージェントを超えると警告 |
| v2.1.219 | dynamic workflowsの変更size guidelineの既定値がmediumに |
| v2.1.229 | dynamic workflowsの変更fan-outのprompt prefix staggerを追加。CPU制限のあるコンテナでコア数を誤検出する問題も修正 |
size guidelineの既定値変更やエージェント数警告は、起動する規模そのものを制御する仕組みです。今回のprefix staggerは規模制御とは別に、同時実行のタイミングに踏み込んだ変更にあたります。
plugin marketplaceにcommand sourceが加わった
plugin marketplaceのsource種別にcommandが加わりました。IDEなどのローカルコマンドがプラグインの配置ディレクトリを出力し、Claude Codeはそのコマンドをセッションごとに再実行してディレクトリを再解決します。再起動は不要です。mode: "link"を指定すると、出力されたディレクトリをその場で使う設定になります。
プラグインシステム自体はv2.0.12で公開されています。HTTPS経由のzipを扱うarchive sourceがv2.1.224で加わり、v2.1.229ではcommandが新しいsource種別として加わりました。ローカルコマンドの出力をセッションごとに再解決する設計は、ローカルで開発中のプラグインを配布せずにそのまま読み込ませる用途に向きます。plugin marketplaceの設定方法全般はClaude Codeプラグインmarketplaceガイドにまとめています。
self-hosted runnerをWindowsで動かす管理者
self-hosted runnerをWindowsで動かしている場合、--base-dirの明示指定が必須になりました。LinuxやmacOSでは省略時に/workspaceが既定のチェックアウトディレクトリとして使われます。Windowsにはそれに相当する既定のディレクトリがありません。省略したまま起動すると、Windows環境では起動できなくなります。self-hosted runnerの基本的な仕組みはClaude Code self-hosted-runnerとはにまとめています。
/commit-push-prで危険フラグを使う自動化
/commit-push-prが使うgit・ghコマンドのうち、--force・--amend・--no-verifyなどの危険なフラグを含むものが、自動承認の対象から外れました。無人実行を前提にした自動化パイプラインでこれらのフラグを使っている場合、自動承認されなくなり、通常の権限判定を経る形になります。フラグを使わない通常のコミット・プッシュ・PR作成フローには影響ありません。
厳格な認可サーバーのMCPサーバーに接続する運用
MCPサーバーのOAuth認証で使うredirect URIが、localhostから127.0.0.1に変わりました。ホスト名としてのlocalhostを受け付けず、IPリテラルだけを許可する厳格な認可サーバーへの接続で問題が起きていたケースへの対応です。
32MBを超える巨大な会話を扱う運用
メッセージだけでAPIのリクエスト上限である32MBを超え、しかも画像やドキュメントを取り除いてもサイズを削れない会話は、これまでコンパクションのリトライを繰り返していました。v2.1.229では、この状態を検知すると1回で失敗するようになり、原因が分かるメッセージとともに止まります。あわせて「prompt is too long」エラーも、/compactを促すだけでなく、自動コンパクションがなぜ回復できなかったかを説明するようになりました。
通常利用
該当する構成や設定を使っていない場合、体感できる変化は薄めです。狭いターミナルでのRangeErrorクラッシュや、Windowsの\\?\形式・UNCパスを扱うときのクラッシュなど、ターミナル関連の安定性向上が薄く効きます。
利用形態別の影響早見表
| 利用形態 | 影響度 | 効く理由 |
|---|---|---|
| Vertex AI・Bedrock経由のゲートウェイで長い拡張思考を伴うタスクを回す | 影響度明確な恩恵あり | 効く理由SSE keepalive pingでアイドルタイムアウト切断を防げる |
| dynamic workflowsでfan-outを多用する | 影響度明確な恩恵あり | 効く理由同一プレフィックスの兄弟エージェントがキャッシュ済みプロンプトを読める |
| ローカルコマンド経由でplugin marketplaceを配布・運用する | 影響度条件次第 | 効く理由command sourceで再起動なしの切り替えが可能。他のsourceを使うなら変更なし |
| self-hosted runnerをWindowsで運用する | 影響度条件次第 | 効く理由--base-dir省略で起動できなくなる。明示指定していれば影響なし |
/commit-push-prで--force等の危険フラグを使う自動化 | 影響度条件次第 | 効く理由自動承認が外れ、通常の権限判定を経る。フラグを使わない運用は影響なし |
| 厳格な認可サーバーのMCPサーバーに接続する | 影響度条件次第 | 効く理由127.0.0.1のredirect URIで接続できるようになる。緩いサーバーでは影響なし |
| ローカルCLIで短い対話が中心 | 影響度ほぼ影響なし | 効く理由ターミナル関連のクラッシュ修正が薄く効く程度 |
主な変更点
self-hosted runnerの残り3件の変更
Windows対応以外にも3件の変更が入りました。managed-mcp.jsonが配備された環境では、サーバー側から供給されるMCPサーバーが原因で、これまで起動直後にセッションが終了していました。v2.1.229ではこの挙動が直り、該当のMCPサーバーは警告付きでスキップされます。リポジトリ準備でGit Credential Managerのプロンプトにハングしていた問題も改善し、資格情報が不足していればgitがすぐに失敗するようになりました。サーバー側から供給されるhookのサポートも加わり、管理されている環境と同じ挙動をself-hosted runnerのセッションでも再現できます。
self-hosted runnerまわりは、v2.1.224での追加以降、次のように動いています。
| バージョン | 内容 |
|---|---|
| v2.1.224 | 内容self-hosted environments追加(Team・Enterpriseパブリックベータ) |
| v2.1.225 | 内容--base-dirの作成・書き込みに失敗すると起動時エラーになるよう変更 |
| v2.1.228 | 内容checkout hookの失敗時に、セッションがpushしないリポジトリだけをスキップする挙動に変更。background task終了直後にセッションが終了する不具合も修正 |
| v2.1.229 | 内容managed-mcp.json配備時の起動時終了を警告付きスキップに変更。Git Credential Managerでのハングを修正。Windows起動で--base-dirを必須化。サーバー供給hookのサポートを追加 |
v2.1.225は起動時の失敗を早期に検知する変更、v2.1.228はcheckout hookの失敗を該当リポジトリだけに閉じ込める変更でした。v2.1.229の--base-dir必須化は、その手前の起動条件そのものを明示する変更です。落ちる前に止める、という流れがv2.1.225以降ずっと続いています。
ListAgentsの表示改善
ListAgentsは、切断中のRemote Controlセッションをoffline、クラウドセッションをcloudというラベルで表示するようになりました。クロスセッションでのメッセージングとListAgents自体はv2.1.224でSendMessageとともに導入されました(macOSとLinuxが対象)。v2.1.225ではSendMessageが名前指定で他マシンのRemote Controlセッションとの会話も開始できるようになり、ListAgentsはそれらをname [ref]として表示するようになりました。その後v2.1.228で送信者名と本文のインライン表示が加わりました。あわせて、インストール・アップグレード後の最初のセッションで、クロスセッションメッセージングがinboxを持たずに始まることがある不具合も修正されています。今回のoffline/cloudラベルは、この系譜の最新の表示面改善です。
ターミナル・IDE・SDKまわりの修正
Fixedは18件で、このリリースの過半を占めます。ターミナル・ストリーミング関連が目立ちます。
- 長い応答がストリーミング中に一部消えたり、ターミナルに二重表示されたりする問題
glob・file_path・commandに文字列でない値が渡されたときのエラー画面クラッシュ(該当セッションの--resumeでも再発する)- 狭いターミナルウィンドウでプログレスバーやMarkdownの表を描画したときのRangeErrorクラッシュ(
claude --continue・--resumeの起動時にも発生しうる) - Windowsで拡張長パス(
\\?\)やUNCパスをファイル参照に使ったときのクラッシュ CLAUDE_CODE_ATTRIBUTION_HEADERでattribution headerを無効化しているユーザー(Anthropic APIへの直接接続)で、auto modeがすべてのtool callで失敗する問題- claude.ai購読者がカスタムの
ANTHROPIC_BASE_URLゲートウェイを使う場合に、/modelがSonnet・Opus 1Mを拒否する問題 - Remote Controlクライアントで、ラップトップのターミナルに入力したスラッシュコマンドのあとに作業中スピナーが固まったまま残る問題
/install-github-appが生成するClaude Code Reviewワークフローが、プルリクエストにレビューを投稿せずに完了してしまう問題- IDE拡張が接続された状態で数千件のIDE診断があるファイルを編集すると、数秒間UIが止まる問題
- 単発の
claude pluginコマンドが不要なliveness fileを残し、古いプラグインバージョンの削除を妨げる問題 - CPU制限のあるコンテナ内でdynamic workflowsがホストマシンのコア数を誤って使ってしまう問題
- アトミックなファイル置き換え後のfile-watcherハンドルリーク、およびWindowsでscheduled-tasks watcherがネットワークドライブや仮想ファイルシステムで失敗したときの未捕捉エラー
- SDKや
--input-format stream-jsonのセッションで、空白文字だけのメッセージを送信すると400エラーになる問題 - Claude DesktopセッションからのOpenTelemetryエクスポートが、Desktop管理下のゲートウェイがテレメトリのエンドポイントも兼ねている場合に拒否される問題
sandboxのIPv6表記と/loginの警告表示
sandboxのネットワークdomainリストでは、IPv6リテラルが[::1]:443のようにブラケット付きで扱われるようになりました。あいまいな表記はfail-closedで拒否され、/doctorが検出します。/loginは、ログイン成功後にもCLAUDE_CODE_OAUTH_TOKENによるオーバーライド警告を再表示するよう変わっています。
VS Code拡張の変更3件
VS Code拡張には3件の変更が入りました。「Report a problem」と/bugは、廃止されたアンケートへのリンクの代わりに、拡張機能に組み込まれたフィードバックダイアログを開くようになりました。/btwのサイドパネルは境界をドラッグしてリサイズできるようになり、サイドドック・スタックのどちらのレイアウトでも機能します。サイドバーにはセッショングループが加わり、右クリックでの作成・リネーム・削除、Cmd/Ctrl・Shiftクリックでの複数セッション同時移動に対応しました。
更新はclaude updateで取得できます。
claude update
claude --version更新後のバージョンが2.1.229以上になっていれば適用は完了です。
remote-control --continueはv2.1.200から文書化されないまま動いていた
claude remote-control --continueは、ディレクトリ単位で直近のRemote Controlセッションを再利用し、新規セッションを作らずに再開するフラグです。公式docsのflags表には、次のように明記されています。
Requires Claude Code v2.1.200 or later; earlier versions reject the flag as an unknown argument.
--continueは--session-id・--spawn・--capacity・--create-session-in-dirのいずれとも組み合わせられません。動作にはv2.1.200以降が必要で、それより前のバージョンでは未知の引数として拒否されます。
このフラグ自体はv2.1.200から動作しており、v2.1.229で新しく実装されたわけではありません。changelogに載ったのは今回が初めてで、v2.1.200での実装からv2.1.229の文書化まで、changelogに載らないまま動いていたことになります。
Claude Codeのchangelogは新機能・修正・改善をそのつど書き足す形式で、既に動いているフラグへの文書化だけを目的にした追記は珍しい部類です。文書化の遅れは、フラグの信頼性そのものには関係ありません。v2.1.200以降の運用実績があるという意味では、むしろ枯れた機能です。今回のような「実装済みだが未文書化」のフラグが、ほかにも残っている可能性があります。
まとめ
Claude Code v2.1.229は、Fixed 18件を中心とする32項目の整備リリースです。中でも利用形態を左右するのは、Vertex AI・Amazon Bedrockのゲートウェイ接続を安定させたSSE keepalive ping、dynamic workflowsのfan-outを効率化したprompt prefix stagger、plugin marketplaceに加わったcommand sourceの3つです。
Windowsでself-hosted runnerを動かしている場合は、--base-dirの明示指定が必須になった点に注意が必要です。/commit-push-prで危険フラグを使う自動化パイプラインも、自動承認されなくなり、通常の権限判定を経る形に変わります。CVEや資格情報漏出、データ損失につながる不具合は含まれていません。自分の利用形態が早見表のどこに当たるかを見てから、更新の要否を判断できます。
関連ガイド
Claude Code全体の中でのv2.1.229の位置づけはClaude Code完全ガイドで確認できます。記事化された直前の更新はv2.1.228で、クロスセッションメッセージのインライン表示とclaude.ai同期スキルのハードニングを扱っています。self-hosted environmentsとSendMessageのクロスセッション連携が最初に加わったv2.1.224については、本文のListAgentsの節で触れた通りです。今回のself-hosted runner関連修正とListAgentsの表示改善は、ここが出発点にあたります。
関連する記事
Claude Code をもっと見る →Claude Code(クロードコード)とは — CLI起点のエージェント型開発ツール
Claude Code v2.1.224 — 別マシンのセッションがSendMessageで直接連携
Claude Code v2.1.228 — 同期Skillsがローカルコマンドを覆い隠さない設計に
Claude Code v2.1.225 — Claude appsゲートウェイの利用上限が警告メッセージに反映
Claude Code v2.1.158 — Auto modeがBedrock・Vertex・Foundryに対応
Claude Code v2.1.85 — フック条件分岐・AskUserQuestion・MCP RFC9728