Claude Media
Claude Code v2.1.277 — AGENTS.mdに対応し空のテキストブロックによる全リクエスト失敗を修正

Claude Code v2.1.277 — AGENTS.mdに対応し空のテキストブロックによる全リクエスト失敗を修正

Claude Code v2.1.277は87項目の更新です。CLAUDE.mdが無い環境でAGENTS.mdを読み込めるようになり、フォワードプロキシ限定のゲートウェイにも対応しました。

Claude Code v2.1.277は87項目の更新です。内訳は新機能・設定追加4件、修正48件、改善10件、仕様変更5件、削除2件、VS Code拡張9件、Claude Code on the web 4件、Claude Tag(Slack連携)5件です。目玉は3つあります。CLAUDE.mdが無いプロジェクトでAGENTS.mdを読み込めるようになったこと、フォワードプロキシしか出口を持たないClaude apps gateway環境に対応したこと、そして空のテキストブロックが原因で全リクエストが失敗していた不具合の修正です。

CVEや資格情報漏出、データ損失への対応は含まれていません。直前のv2.1.276ANTHROPIC_BASE_URL回帰1件だけの単一項目リリースだったのに対し、v2.1.277は新機能・修正・仕様変更が幅広く入った通常規模の更新です。

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

CLAUDE.mdが無いプロジェクトでAGENTS.mdを読み込めるようになった

CLAUDE.mdが存在しないプロジェクトでは、Claude CodeがAGENTS.mdを代わりに読み込むようになりました。切り替えは/configの「Project instructions」から行います。Bedrock・Vertex・Foundryはまだ対象外です。AGENTS.mdとCLAUDE.mdを併用する運用パターンはAGENTS.mdとCLAUDE.mdで設定を統合する運用パターンにまとめています。

フォワードプロキシしか出口を持たないClaude apps gateway環境に対応した

アウトバウンド接続がフォワードプロキシ経由に限られるClaude apps gateway環境向けに、CLAUDE_GATEWAY_PROXY_IS_EGRESS_BOUNDARY=1が追加されました。有効にすると、すべての送信リクエストがホスト名の名前解決をローカルで行わず、プロキシへそのまま渡します。

export CLAUDE_GATEWAY_PROXY_IS_EGRESS_BOUNDARY=1

あわせて、gatewayのupstream設定にオプションのheaders:マップが加わり、プロバイダーの手前に自前で立てたプロキシへ固定ヘッダーを送れるようになりました。プロキシ設定時にNO_PROXYへ挙げたコレクターのホスト名・ドメインを、gatewayのテレメトリーリレーが無視していた不具合も直りました。gateway設定の全項目はClaude apps gateway設定の全項目で確認できます。

空のテキストブロックが原因で全リクエストが失敗する不具合が直った

それより前のアシスタントターンに、ほかのコンテンツと並んで空のテキストブロックが残っていると、以降のすべてのリクエストが「text content blocks must be non-empty」というエラーで失敗する不具合がありました。--resumeで再開した場合も同様です。v2.1.277ではこの不具合が修正され、該当するトランスクリプトを再開してもリクエストが通るようになっています。

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

CIやバッチでコストを集計しているチームには、実害に直結する2件の修正が入りました。claude -pやAgent SDKを使ったヘッドレス実行は、内部エラーのあとに結果を返さないままハングしていました。今はエラーを報告し、終了コード1で終了します。ヘッドレスresume(claude -p --resume、SDK、VS Code拡張のウィンドウリロード)も、セッションのコスト・トークン使用量の合計をゼロから始め直していました。今は終了時に合計が保存されます。集計スクリプトの数字が実行のたびに合わなかったなら、原因はこの2件のどちらかだった可能性があります。

MCPサーバーやサブエージェントを多用し、長時間セッションを--resumeで使い回す開発者ほど、次の一連の修正で恩恵を受けます。/clear後の再開(restart、--continue--resume)では、SessionStart hookが出力を出すと最初のメッセージの一部が欠落し、プロンプトキャッシュが丸ごとミスしていました。再開したサブエージェントやteammateは、読み込み済みのMCPツール定義を再度レンダリングしてしまい、そのエージェントのプロンプトキャッシュを壊していました。会話の早い段階で記録された添付ファイルも、再開や再起動のあとに再レンダリングされ、extended thinkingを失ってプロンプトキャッシュを外していました。いずれも直っています。

/tasksなどのパネルを開いている最中にバックグラウンドタスクが完了した場合、更新が待機中であることを知らせる行が表示されるようになりました。

プラグイン・マーケットプレイスを運用する組織では、次の修正が実害に直結します。

  • セッションや別プログラムが使用中のプラグインバージョンを再インストールすると、インストール自体が失敗し、インストール済みのコピーまで壊れることがある不具合が直り、今は変更されずに残ります。
  • strictKnownMarketplacesまたはblockedMarketplacesの1エントリが壊れているだけでenterpriseマーケットプレイスポリシー全体が無効化されてしまう不具合が直りました。
  • 自動更新に失敗したときに~/.cache/claude/stagingへ残り続けていた大きなステージング済みダウンロードが、クリーンアップされるようになりました。
  • 公式マーケットプレイスのプラグインがinstalled_plugins.jsonにコミットを記録されずに残ってしまう不具合、pinned-commitプラグインを更新した後も古いコミットを保持し続ける不具合が直りました。
  • プラグインのreloadプレビューが、終了までプレビューしたアーカイブの展開済みコピーを残していた不具合、ダウンロード失敗時のフォールバック先--plugin-urlのキャッシュ済みアーカイブを上書きしてしまう不具合が直りました。
  • /pluginのInstalledタブで、失敗したプラグイン更新のエラーなどからターミナル制御文字が取り除かれずそのまま表示される不具合が直りました。
  • constructortoStringのようなビルトインのObjectプロパティと同名のスキル・legacyコマンドがあると、/plugin → Installedと/skillsがクラッシュしていた不具合が直りました。
  • マルチセレクトでのインストールが全件失敗したとき、/pluginが何も表示せず閉じていた不具合が直りました。
  • アンインストール済みのプラグインが「failed to load」行として/plugin Installedに再出現し、Removeでも消えなかった不具合が直りました。

主な変更点

削除された機能

非推奨だったTaskOutputツールが削除されました。バックグラウンドタスクの出力は今後Readツールでファイルから読みます。taskOutputMaxChars設定とTASK_MAX_OUTPUT_LENGTH環境変数は、これまで通り指定はできますが、もう効果を持ちません。TaskOutputはv2.1.83で非推奨になってから今回まで存続していました。廃止機能の一覧はClaude Code廃止機能の一覧にまとめています。SDKやIDE拡張の外から起動したclaude -p実行で送られていたバックグラウンドのHaikuによる自動タイトル生成リクエストも削除されました。

修正

起動・更新まわりの信頼性も上がりました。

  • 同じマシン上でIDE拡張が同梱する古いビルドのClaude Codeが動くと、現在のセッションが意図せずログアウトさせられる不具合が直りました。
  • ~/.claude.jsoncustomApiKeyResponsesが壊れていると、ANTHROPIC_API_KEY利用者の対話起動がハングまたはエラー表示になっていた不具合が直りました。
  • プロキシが不正なバージョン文字列を返すと更新チェックが30分ごとにエラーを出し、最小・最大バージョンを設定しているとclaude updateがハングする不具合が直りました。壊れたminimumVersionは今は無視されます。
  • wingetまたはapk管理のインストールで、バージョン確認が失敗するとclaude updateが「up to date」と誤報告する不具合が直りました。

ファイル編集系のツールにも複数の修正が入りました。

  • Editツールが、エスケープされたバックスラッシュに続くuXXXXテキストを\uXXXXエスケープとして扱ってしまい、非ASCII文字の編集がエスケープ済みバックスラッシュの並びを書き換えてしまう不具合が直りました。
  • 非ASCIIテキストを含む大きな編集がファイルと一致しないとき、「String not found in file」でなく「Invalid regular expression: regular expression too large」と報告していた不具合が直りました。
  • ツール呼び出しのファイルパスに\u0000がエスケープシーケンスとして含まれると、「Path contains null bytes」でターンが早期終了する不具合が直りました。エスケープされた制御文字は今はリテラルなテキストとして扱われます。
  • Writeツールが、対象パスが既存のディレクトリのとき権限拒否のエラーを出さずにターンを終えていた不具合が直り、今は明確なエラーを報告します。
  • GrepとGlobは、プロセス・メモリー・ファイルハンドルが枯渇して検索を開始できないとき、以前は「no matches」を返していましたが、今はその旨のエラーを返します。

クラッシュ・強制終了に関する修正も多数入りました。

  • /mcp/plugin manageを、~/.claude.jsonclaudeAiMcpEverConnectedが壊れた状態で開くと発生していたクラッシュが直りました。
  • themeの値が壊れていると起動時に発生していたクラッシュが直りました。
  • ターミナルの色コード(履歴からの呼び出しや外部エディタからの読み込みなど)を含むプロンプトで発生していたクラッシュが直りました。
  • 保存された履歴がプレーンな文字列としてアシスタントメッセージを保持しているセッションを再開したときのクラッシュが直りました。
  • stop hookのサマリーが不完全なhookリストを伴うトランスクリプトを再開したときのクラッシュが直りました。
  • 低速・高負荷なマシンで、最初のスピナーが表示されるタイミングで「unrecoverable interface error」により終了してしまう不具合が直りました。
  • 内部的なレンダリングエラーのあと、画面がセッション終了まで更新されなくなる不具合が直りました。
  • Windowsで返信の直後に「Out of memory」などのエラーでターンが止まり、その返信のツール呼び出しが実行されないまま終わる不具合が直りました。

サンドボックスとバックグラウンド実行まわりの不具合も直りました。

  • sandbox.excludedCommandsのglobが、複合Bashコマンドの一部だけが一致した場合でもコマンド全体をサンドボックスから除外してしまう不具合が直りました。今はすべての部分が一致して初めて除外されます。設定の詳細はsandbox.excludedCommandsでdockerなど非対応コマンドを対象外にするを参照してください。
  • プラグインのLSPサーバーが終了するかstdinを閉じると、バックグラウンドセッション(claude --bg)ごと終了してしまう不具合が直りました。
  • サンドボックスの外で動くBashコマンドで、サンドボックス有効時に$TMPDIRが空に展開されてしまう不具合も解消しています。

そのほか、細かな表示・操作の不具合も直っています。

  • メインリポジトリのプロジェクトスキルが、.claude/skillsがuntrackedの状態だと--worktreeセッションで読み込まれない不具合が直りました。
  • 作業中にClaudeへ送ったメッセージが、まれにモデルに無視されてしまう不具合が修正されています。
  • サブエージェントのSendMessageのようにターンの途中で届いた他エージェントからのメッセージが、「Ran N shell commands」の行の下に紛れ込んで表示される不具合が直りました。
  • フルスクリーンの/resumeピッカーなどプロンプト領域を覆うパネルでドラッグ選択したテキストをコピーしても「copied」の通知が出ない不具合も直りました。

VS Code拡張にも9件の変更が入りました。

  • パネルメニューにSign out行が追加され、タイプコマンドの/logoutにも対応しました。
  • バックグラウンドシェルや実行中タスクがagent mapに表示されるようになり、それぞれにStopボタンが付き、タイプコマンドの/tasksから開けます。
  • 応答にCopy responseボタンとタイプコマンドの/copyが加わりました。
  • 非アクティブセッションが自動アーカイブされる際の一度きりの通知と、Archived sessionsグループの「Unarchive all」が追加されました。
  • プラン上限が適用されないVertex・Bedrock・Foundry・APIキー利用では、Account & usageダイアログとセッションマネージャーにコスト・トークン使用量が表示されるようになりました。
  • 「General config」メニュー行が設定を開かず使用方法のテキストを表示していた不具合が直りました。あわせて、タイプコマンドの/mcp/hooks/memory/rewindなども、それぞれのダイアログを開くようになりました。
  • /effortで保存したレベルが同じモデルの後続セッションに引き継がれない不具合が直りました。
  • モデル設定が"Sonnet"のような大文字小文字違いのエイリアスだと、既存パネルの会話でAutoがモード選択肢から消える不具合が直りました。
  • /fastがfast modeを既定として保存せず、拡張機能の再起動で失われる不具合が直りました。

Claude Code on the webでも4つの変更がありました。

  • Team・Enterpriseプランの環境ピッカーにPersonalとOrganizationのセクションが追加され、管理者は個人環境を組織へ共有できるようになりました。組織環境は、Codeタブからは読み取り専用のサマリーとして開き、編集はAdmin設定→Cloud environmentsで行います。
  • Custom network accessでドメインを1つも指定せずに保存すると通知なくTrustedへ戻ってしまう不具合が直り、ダイアログは今は最低1つのドメインを求めます。
  • admin設定の「Web」という表記が「Cloud sessions」に変わりました。
  • その下にあった読み取り専用のMobile行は、冗長として削除されました。

Claude Tag(Slack連携)向けの変更は次の5件です。

  • Enterprise Gridの組織全体インストールでSlackチャンネルに作られたルーチンが、実行時に同じワークスペースの他の公開チャンネルを読み取れない不具合が直りました。
  • アクセスバンドルの資格情報プリセットにある「Learn more」リンクが、汎用的なAPIリファレンスでなく各ベンダーの資格情報設定ページを開くようになりました。
  • PylonクレデンシャルプリセットはEUホストを指定できるようになりました。
  • Google Cloudの資格情報フォームは、キーファイルが拒否されたときに理由を示し、サイトとスコープは編集をロックし、拒否されたローテーションでは貼り付け済みのキーを保持するようになりました。
  • AWS署名・クライアント証明書・カスタムCAを使う接続経由のリクエストで、ネットワークイベントログにレスポンスのステータスが表示されない不具合も直りました。

仕様変更

モデル表示やサブエージェントの扱いなど、複数の挙動が変わりました。

  • AnthropicのAPIでは、Fableが/modelに常に表示されるようになりました。organizationの設定で無効化されている場合だけグレーアウトします。
  • Bedrock・Vertex・Foundry向けのBashサンドボックスの説明文が、サンドボックスをタスクに与えられた境界として位置づける、ファーストパーティ版の文言に変わりました。
  • /ultrareviewは非対話セッションで、リポジトリにベースブランチや共有履歴が無い場合は拒否するようになりました。
  • サブエージェントの結果は、メインエージェントに届く際、サブエージェントの出力であることを示すヘッダーの下にインデントして表示されるようになり、結果内のテキストがセッション自身の指示として通用しなくなりました。
  • Bedrock・Vertex・Foundryでは、ワークフロースクリプトが計算するagent()のプロンプトも、スクリプトが書いたテキストとしてサブエージェントに届くようになり、安全分類器がユーザー発話として読まないようにしています。

改善

改善も10件入りました。

  • SDK・ヘッドレス(-p)利用のセッション起動が速くなりました。最初のターンがディレクトリごとのCLAUDE.md探索を待たなくなっています。
  • Claude apps gatewayのループバックエラーメッセージは、CLAUDE_GATEWAY_ALLOW_LOOPBACKという設定名を明示するようになりました。
  • /pluginのInstalledでは、プラグインと別に表示されるMCPサーバーが、どのプラグインに属するかを示すようになっています。
  • claude plugin installをすでにインストール済みのプラグインに対して実行すると、マーケットプレイスがより新しいバージョンを提供していることとclaude plugin updateコマンドを案内するようになりました。
  • ロゴ下の起動通知のオーバーフロー行は、「+N more · /status」でなく「N more notices hidden」という表記に変わっています。
  • プロンプトの扱いも変わり、見えないUnicodeの書式・タグ文字は取り除かれ、送信前にクリーンなプロンプトが確認用に表示されるようになりました。
  • /ultrareviewは、レビュー対象が無い場合にどのケースに該当するかをメッセージで示し、最新コミットをレビューするコマンドを提示するようになりました。新しいリポジトリの最初のコミットは全文レビューされます。
  • claude.aiのartifactリンクは、WebFetchでなくArtifactツールが使える場合はArtifactツールで読むようになりました。
  • 危険なrmコマンドの権限プロンプトは、フラグされたrmコマンドを名指しし、${VAR:?}ガードを提案するようになり、ヘッドレス実行でも復旧しやすくなっています。
  • Artifactツールの権限プロンプトは、短い文、タイトルまたはファイル名でのページ・artifact表示、リンクを文の後ろに並べる形に整理されました。

サブエージェント出力の区分けは安全分類器連携の延長線にある

サブエージェントの結果は、これまでもメインエージェントにそのまま渡っていました。v2.1.277では、結果が「サブエージェントの出力」だと分かるヘッダー付きでインデント表示されるようになり、結果内のテキストがセッション自身の指示として通用しなくなります。同時に、Bedrock・Vertex・Foundryでは、ワークフロースクリプトが計算するagent()プロンプトも「スクリプトが書いたテキスト」として届くようになり、安全分類器がそれをユーザーの発話として読まなくなりました。

この方向自体は今回が初めてではありません。v2.1.271では、auto modeでサブエージェントが呼び出し元へ結果を返す経路が変わり、最後のメッセージを事後にレビューするのでなく、安全分類器が確認する専用のhand-back呼び出しを通るようになっています。

バージョン変更対象
v2.1.271変更サブエージェントの結果がauto modeの安全分類器レビューを通る専用hand-back呼び出しを経由するようになった対象auto modeでの権限判定
v2.1.277変更サブエージェントの結果とワークフロースクリプトのagent()プロンプトが、それぞれ「サブエージェントの出力」「スクリプトが書いたテキスト」として区分され、ユーザーの指示・発話と混同されなくなった対象メインエージェントへの結果受け渡しと安全分類器の判定入力

v2.1.271はauto modeの権限判定の経路を変えるものでした。v2.1.277はそれとは別に、サブエージェントやワークフロースクリプトが生成したテキストを、メインエージェントや安全分類器が読む時点で「誰が書いたか」ごとに分けて渡す変更です。サブエージェントの結果をツールの出力として信頼しすぎない設計は、間接プロンプトインジェクション対策の基本形としてClaudeが間接プロンプトインジェクションを拒否する理由と対策でも扱っています。

AGENTS.md対応を軸に、v2.1.277の恩恵は利用形態でどう分かれるか

利用形態影響度具体的に変わること
CLAUDE.mdの代わりにAGENTS.mdを使いたいチーム影響度明確な恩恵あり具体的に変わることCLAUDE.mdが無いプロジェクトでAGENTS.mdが自動的に読み込まれる(Bedrock・Vertex・Foundryは対象外)
フォワードプロキシ経由でしか外部に出られないClaude apps gateway運用者影響度明確な恩恵あり具体的に変わることCLAUDE_GATEWAY_PROXY_IS_EGRESS_BOUNDARYheaders:マップでプロキシ前提の構成に対応でき、NO_PROXY指定を無視していたテレメトリーリレーの不具合も直る
claude -p・Agent SDKでヘッドレス実行する開発者影響度明確な恩恵あり具体的に変わること内部エラー後のハングが解消し、コスト・使用量の合計もゼロ落ちしなくなる
MCPサーバーやサブエージェントを多用し--resumeを使い回す開発者影響度明確な恩恵あり具体的に変わることプロンプトキャッシュを外していた複数の不具合が直り、キャッシュヒット率が上がりやすい
プラグイン・マーケットプレイスを運用する組織影響度条件次第具体的に変わることポリシー無効化・再インストール破損・コミット記録の不整合など実害の大きい不具合は直る。効き方は使っているマーケットプレイス次第
VS Code拡張・Claude Code on the web・Claude Tagを常用する人影響度明確な恩恵あり具体的に変わることagent mapへのタスク表示、環境ピッカーの整理、Slack応答漏れの修正など体感に直結する変更が多い
TaskOutputツールやtaskOutputMaxChars設定に依存したスクリプト・運用影響度条件次第具体的に変わることツールが削除され設定も効果を失う。依存箇所があればReadベースの読み取りへの移行が必要
ローカルの短時間セッションだけを使う個人利用影響度ほぼ影響なし具体的に変わること今回の追加・修正はgateway・プラグイン・組織連携・ヘッドレス実行が中心

まとめ

v2.1.277は87項目の更新です。CLAUDE.mdが無いプロジェクトでAGENTS.mdを読み込めるようになったこと、フォワードプロキシ限定のClaude apps gateway環境への対応、空のテキストブロックによる全リクエスト失敗の修正が目玉です。TaskOutputツールの完全削除、サブエージェント結果とワークフロースクリプト出力の区分けという仕様変更も入りました。CVEはありません

恩恵が大きいのは、AGENTS.mdへの統一を進めたいチーム、プロキシ限定環境でgatewayを運用するチーム、claude -p・Agent SDKでヘッドレス実行する開発者、MCPやサブエージェントを多用しながら--resumeでセッションを使い回す開発者です。TaskOutputツールや関連設定に依存している場合は、削除前に依存箇所を確認しておく価値があります。

更新方法はインストール手段で決まります。ネイティブインストールなら更新はバックグラウンドで適用され、次回起動時から有効になります。

claude --version

Homebrewの場合はインストールしたcaskに応じてbrew upgrade claude-codeまたはbrew upgrade claude-code@latest、WinGetの場合はwinget upgrade Anthropic.ClaudeCodeで更新します。

関連ガイド

このバージョン単体の位置づけや前後の版とのつながりは、Claude Code(クロードコード)の解説でまとめて確認できます。

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