はじめに
Claude Code v2.1.318 がリリースされました。新機能(Claude apps gateway の assume_role 対応など)に加え、運用中の環境を壊しうる破壊的変更が3件含まれています。さらに、共有ネットワークホームでの設定消失、セッション継続性、ヘッドレス実行で失敗が成功扱いになる問題など、重要なバグ修正も多数入っています。
この記事では、severity が高いものを中心に「何が変わったか」「誰が影響を受けるか」「何をすべきか」を整理します。
📌 影響を受ける人
- セルフホストランナーのログを監視・パースしている人
- IDE のターミナルから Claude Code を起動して拡張を自動導入していたチーム
deniedMcpServersで MCP サーバーを制限している管理者- 共有ネットワークホーム(NFS など)で Claude Code を使っている人
claude -p/ Agent SDK を CI や自動化に組み込んでいる人
変更の全体像
| 区分 | 件数 | 主な内容 |
|---|---|---|
| 破壊的変更 | 4 | ログ形式、IDE拡張、MCP拒否設定、サブエージェント挙動 |
| 新機能 | 5 | assume_role、mod 拡張、期限表示など |
| バグ修正・改善 | 多数 | ストレージ、継続性、ヘッドレス、安全性 |
変更内容
1. セルフホストランナー:ログ行フォーマット変更(critical)
オーケストレーターの ok session=… と nack session=… の形式と出力先が変わりました。
| 項目 | 変更前 | 変更後 |
|---|---|---|
ok session=… の出力先 |
debug レベルのときだけ stderr | どのログレベルでも stdout |
ok session=… の末尾 |
jti=… |
jti=… の後ろに reason=…
|
nack session=… の末尾 |
retryable=…: 形式 |
retryable=… の後ろに reason=… で終わる |
⚠️ Breaking Change
retryable=true:/retryable=false:に一致させているログ監視・パース用スクリプトは動作しなくなります。アラートが黙って発火しなくなるため、気づきにくい点が最も危険です。
2. IDE ターミナルからの拡張自動インストール廃止(high)
IDE のターミナルで Claude Code を起動しても、IDE 拡張の自動インストール・自動更新は行われなくなりました。拡張を入れるには次のいずれかが必要です。
- 外部のターミナルから
/ideを実行する - エディタの拡張機能ビューから入れる
3. deniedMcpServers の URL エントリ適用範囲拡大(high)
URL エントリが、upstream URL が一致する Anthropic 提供サーバーと、クラウドセッション・セルフホストランナーのコネクタにも適用されます。
⚠️ Breaking Change
これまで通っていたサーバーやコネクタが、既存の拒否設定でブロックされる可能性があります。
4. その他の挙動変更(medium)
- 「Switch models when a message is flagged」が「Ask each time」のとき、サブエージェントはモデルを切り替えず停止します。途中で止まるケースが出る可能性があります。
- 2.1.286 以前に始めた会話を再開すると、以前の thinking が破棄される場合があります(2.1.288 の修正の撤回)。
5. 主な新機能
| 機能 | 概要 |
|---|---|
gateway mantle upstream の assume_role
|
別 AWS アカウントのロールを使用可能。開発者ごとの AWS コスト配分にも利用可 |
$.model.fork の effort
|
セッションの effort と無関係に、軽いサイドジョブを low で実行可 |
| ログイン期限表示 |
claude auth status(loginExpiresAt)、claude -p の JSON(credential_expires_at)。期限10日前から stderr に警告 |
| クラウドセッション | 「No repository」オプション、Chrome 名(google-chrome、CHROME_PATH)の追加 |
CLAUDE_RUNNER_SPAWN_REASON |
spawn-runner フックに、起動理由(runner_lost、resumed など)を渡す |
mod については、prompt.submit で mod が添付した内容が、システムメッセージではなくユーザーのターン内に残るようになった点にも注意してください。
6. 重要なバグ修正(high)
-
共有ネットワークホーム:設定ファイルの更新に失敗しても
/logout、claude auth logout、claude mcp removeが成功と表示し、trust・同意・MCP 設定が知らせなく失われていました。ほかにも、別ホストの再サインインでNot logged inになる、claude mcp add/removeがロックを取らない、空き容量不足で保存済みログインが空ファイルになる、などが修正されています。なおclaude mcp add/removeは、別ジョブの保存で保存済みサーバーが置き換わる可能性が残ります。 -
~/.claude.json:非対話起動で、不正な JSON のファイルが既定値で上書きされていました(#87551)。今は起動を失敗させて復元方法を表示し、ファイルはそのまま残します。 -
セッション継続性:不正なツール呼び出しのリトライ尽き後に
--continueが会話を失う回帰(2.1.314)、アイドル中のコンパクションが要約ではない返答で置き換わる問題などを修正。 -
ヘッドレス/SDK:mod が
turn.stepをフックしていると、API エラーで返答が途切れてもclaude -pと Agent SDK が成功と報告していました。 - パーミッションプロンプト:メッセージ送信直後などの先行入力キーで回答されてしまう問題を修正(意図しない承認の防止)。
- 再起動後のシェルコマンド:セルフホストランナー/クラウドセッションの再起動後、承認済みシェルコマンドが指定フォルダではなくセッション開始フォルダで実行されていました。今はそのフォルダに入れなければ実行しません。
-
バイナリ削除:アップデートやクリーンアップで実行中バイナリが消え、
claude remote-controlホストやランナーがspawn ENOENTで新セッションを起動できなくなる問題を修正。
影響と対応
| 対象 | アクション |
|---|---|
| ランナー運用者 | ログ監視パターンの修正、stdout の収集確認 |
| チーム管理者 | オンボーディング手順の更新(IDE 拡張の導入方法) |
| MCP 管理者 |
deniedMcpServers の URL エントリの棚卸しと動作確認 |
| 共有ホーム利用者 | アップデート後に ~/.claude.json や認証状態を確認 |
| CI/自動化担当 |
credential_expires_at による期限監視の導入 |
💡 Tips
「Ask each time」でサブエージェントが止まる場合は、設定を見直すか、停止しても問題ない運用か確認しましょう。--release-idle-session-minが値なしで最後の引数、または空白のみの場合は、起動時に警告が出るようになりました。
コード例
ランナーのログ監視(概念例)
retryable=true: のようにコロン付きで一致させていた場合は、末尾が reason=… に変わる点に対応します。実際のログ全文はデータに含まれないため、正規表現は自環境のログで確認してください。
# Before: コロン付きで一致(v2.1.318 以降は一致しなくなる)
grep -E 'nack session=.*retryable=(true|false):' runner.log
# After: コロンに依存せず retryable の値だけを見る
grep -E 'nack session=.*retryable=(true|false)' runner.log
また、ok session=… は stdout に出るようになったため、stderr のみ収集している構成では見え方が変わります。
ログイン期限の監視(CI 向け)
# 期限の確認(loginExpiresAt が含まれる)
claude auth status
# JSON 出力で credential_expires_at を取得して判定に利用
claude -p "ping" --output-format json
期限切れ時は claude auth login か claude setup-token で再認証します。
deniedMcpServers の確認
{
"deniedMcpServers": [
{ "serverUrl": "https://example.com/mcp" }
]
}
上記のような URL エントリは、クラウドセッション・セルフホストランナーではコネクタにも効きます。それ以外の環境では名前で拒否されます。設定キーの正確な書式は公式ドキュメントで確認してください。
まとめ
-
最優先:セルフホストランナーのログ形式変更(
okの出力先とreason=追加、nackの末尾変更)。監視スクリプトが無音で壊れます。 -
セットアップ手順の見直し:IDE ターミナルでの拡張自動導入は廃止。
/ideか拡張機能ビューを使います。 -
MCP 拒否設定の再点検:
deniedMcpServersの URL エントリが Anthropic 提供サーバーやクラウド/ランナーのコネクタに及びます。 -
安心材料:共有ネットワークホームの設定消失、
~/.claude.json上書き、--continueの回帰、ヘッドレスの誤成功報告、先行入力による誤承認など、重大な不具合が多数修正されました。 -
新機能:
assume_role、fork のeffort指定、ログイン期限の可視化は、エンタープライズや CI 運用で役立ちます。
アップデート前に、上のフローチャートで自分の環境が該当するかを確認してから適用することをおすすめします。