Claude Code v2.1.318:サインイン期限の表示と共有ホームの修正
Claude Code v2.1.318は、claude auth statusとclaude -pでclaude.aiサインインの終了日を示し、10日前から警告します。共有ホームの~/.claude.jsonを守り、IDE拡張のインストールとdeniedMcpServersの挙動も変わります。
Claude Code v2.1.318の変更履歴は84項目で、修正47件、改善15件、追加11件、挙動変更10件、削除1件です。無人実行で、保存されたclaude.aiサインインがいつ終了するかを事前に確認できるようになり、~/.claude.json、設定ファイル、保存されたログイン情報を守る修正と改善がまとまって入りました。特に共有ホームディレクトリやネットワーク上のホームディレクトリに関わるものです。modの $.model.fork には effort オプションが、Claude apps gatewayの mantle アップストリームには assume_role が加わりました。IDE拡張のインストール、deniedMcpServers のURLエントリ、セルフホストrunnerのorchestratorのログ行など、スクリプトや管理者が依存する挙動の変更もあり、下の「注意すべき挙動の変更」にまとめています。
新機能
保存されたclaude.aiサインインの終了日がわかるように
保存されたclaude.aiサインインの終了を、ジョブが止まる前に把握するための追加が2件あります。
claude auth statusにサインインの終了日がloginExpiresAtとして表示され、claude -pのJSON結果にも同じ日付がcredential_expires_atとして含まれるようになりました。claude -pのテキスト出力では、サインインが終了する10日前から、stderrに1行の警告が出ます。
保存されたclaude.aiログインが実際に期限に達したときのサインイン失敗は、そのことを明示するようになり、claude -p では claude auth login と claude setup-token を示します。claude.aiのサインインで claude -p を定期実行しているなら、実行が失敗してから気づくのではなく、事前に日付を確認できます。
modとClaude apps gateway
$.model.forkのeffort。 modの$.model.forkがeffortオプションを受け付けるようになり、セッションがどのeffortを使っていても、ちょっとした副次的な処理をlowで実行できます。結果には送信されたeffortが示されます。mantleアップストリームのassume_role。 Claude apps gatewayのmantleアップストリームでassume_roleが使えるようになりました。別のAWSアカウントのロールを使う場合や、開発者ごとのAWSコスト配分のためのものです。- Claudeが書いたmodへの回答を記録。 セッション中に自分で書いたmodを有効にするかClaude Codeが尋ねたとき、あなたの回答の記録が残るようになりました。
クラウドセッション
- No repositoryオプション。 Anthropicがホストする環境のクラウドセッションを、リポジトリを選ばずに開始できるようになりました。
- 一般的なChromeの名前。 クラウドセッションに一般的なChromeの名前が用意され、Playwright以外のツールも
google-chromeとCHROME_PATHから組み込みのChromiumを見つけられるようになりました。 - New sessionボタン。 クラウドセッションの環境が削除されたときに表示されるカード(メッセージ欄が隠れている状態)に、New sessionボタンが加わりました。
共有ホームディレクトリと ~/.claude.json
10項目(修正7件、改善3件)が、Claude Codeによる ~/.claude.json、設定ファイル、保存されたログイン情報の保存と復旧を扱っています。
共有ホームとネットワーク上のホームディレクトリ
- 誤った成功報告がなくなりました。 共有ネットワークホームディレクトリで設定ファイルを更新できないとき、
/logout、claude auth logout、claude mcp removeが成功と報告し、信頼、同意、MCP設定への変更が何も告げられずに失われていました。 - 保存に強くなりました。 共有ネットワークホームディレクトリで保存する際に、
~/.claude.json、設定ファイル、保存されたログイン情報が削除されたり、一時的に空になったり、ほぼ空のコピーや古いコピーに置き換えられたりすることが減りました。 - もう一度確認します。 ネットワークファイルシステム上で設定ファイルが誤って存在しないと報告された場合に、セッションが再確認するようになり、MCPサーバーや信頼済みフォルダなしで起動することが減りました。
- ログイン情報が空ファイルになりません。 ネットワークホームディレクトリにデータ用の空き容量がなく、新しいファイルは作成できる状態のときに、保存されたログイン情報が空のファイルに置き換えられていました。
破損したファイル、バックアップ、ロック
- 不正なJSONはそのまま残ります。 非対話型の起動で、有効なJSONではない
~/.claude.jsonがデフォルト値に置き換えられていました。現在は起動が失敗し、ファイルの復元方法を示したうえで、ファイルをそのまま残します(anthropics/claude-code#87551)。 - 空のファイルは破損扱いされません。 バックアップのない空の
~/.claude.jsonが破損と報告されていました。現在は、ファイルがない場合と同じように起動します。 - 復元コマンド。 破損または欠落した
~/.claude.jsonに対して表示される復元コマンドが、空や途中で切れたバックアップを指定したり、読み取り専用ファイルで失敗したりしなくなりました。 - 保持期間のクリーンアップでもバックアップを残します。
claude -pしか実行しないホームで、保持期間のクリーンアップ後に~/.claude.jsonのバックアップが残らないことがありました。現在は最後の正常なバックアップを削除する前に、新しいバックアップを取ります。 claude mcp addとremoveがロックを取ります。 これらはロックなしで設定を書き込んでいました。現在はロックを待つか、exit 1で終了します。ただし変更履歴によれば、別のジョブの保存が保存済みのサーバーを置き換える可能性は残っています。- 書き換えが減りました。 無人実行(
claude -p、SDKアプリ)は、~/.claude.jsonの内容に変化がなければ、実行のたびに書き換えなくなりました。
注意すべき挙動の変更
- IDEターミナルからは拡張をインストールしません。 IDEのターミナルで起動したClaude Codeは、IDE拡張のインストールや更新を行わなくなりました。エディタ外のターミナルから
/ideを使うか、エディタの拡張機能ビューを使ってください。 - バックグラウンドsubagentは長いシェルコマンドをバックグラウンドへ。 すべてのプロバイダーで、バックグラウンドsubagentはシェルコマンドを3分後にバックグラウンドへ移すようになりました。実行中にプロンプトキャッシュが期限切れにならないようにするためです。
deniedMcpServersのURLエントリの対象が広がりました。 URLエントリは、上流URLが一致するAnthropic提供のサーバーと、クラウドセッションおよびセルフホストrunner上のconnector(セッションにconnector自身のURLが渡される環境)もブロックするようになりました。それ以外の環境では、connectorは名前で拒否してください。URLでサーバーを拒否している場合は、エントリが新たに何に一致するかを確認してください。- Managed Agentsのオンボーディングは既定で
auto。/claude-api managed-agents-onboardは、新しいagentの組み込みツールと、quickstartテンプレートのMCPツールに、既定でauto権限ポリシー(“Judge risky actions”)を与えるようになりました。Claude Consoleと同じ挙動です。オプトアウトするには「run without asking」と伝えます。 - セルフホストrunnerのorchestratorのログ行。
ok session=…はすべてのログレベルでstdoutに出力されるようになり(以前はdebugのみで、出力先はstderr)、jti=…の後にreason=…が付きます。nack session=…は、retryable=…の後に続くreason=…でフィールドが終わるようになりました。retryable=true:やretryable=false:に一致させているスクリプトは更新してください。 - 2.1.288の思考保持の修正を削除。 v2.1.288 では、2.1.286以前に開始した会話を再開したときに、モデルの以前の思考が保持されるよう修正されていました。この修正が削除され、その思考は破棄される場合があります。
ほかに、スクリプトから見える結果が変わる項目が3件あります。
~/.claude.jsonが有効なJSONでない場合、非対話型の起動は、ファイルをデフォルト値に置き換えるのではなく、起動時に失敗するようになりました。claude mcp addとclaude mcp removeは、設定のロックを待つか、exit 1で終了するようになりました。- 保存されたclaude.aiサインインが終了する前の10日間は、
claude -pのテキスト出力に1行のstderr警告が加わることがあります。
残り5件の挙動変更:
- 「Switch models when a message is flagged」が「Ask each time」に設定されている場合、subagentはモデルを切り替えずに停止するようになりました。
- Bedrock、Vertex、Foundry上、またはテレメトリをオフにしている場合、プロンプトキャッシュがコールドなら、subagentの進捗サマリーがsubagentの保留中の応答を最大5分待つことがあります。
- modが
prompt.submitで添付する内容は、システムメッセージとして送られるのではなく、ユーザーのターン内にとどまるようになりました。 /permissionsのルール詳細、組み込みルール、削除確認の画面が標準のダイアログになり、そこでCtrl+Cを2回押すと、終了せずに戻るかキャンセルするようになりました。- クラウドセッションでは、connector検索の結果が、検索対象はconnectorディレクトリの一部だけだとClaudeに伝えるようになりました。
サインインとアカウントの修正
- 別の場所での再サインイン後の
Not logged in。 別のターミナルやホストが、同じホームで同じアカウントと組織に再サインインすると、ジョブがNot logged inで終了していました。 - プラグインコマンドとトークン更新。
claude pluginコマンドが、時間のかかるトークン更新の保存前に終了することがあり、次回の実行でサインアウトされる可能性がありました。 - 別のログインが保存した
allowedProviders。 同じマシン上の別のログインが保存したallowedProvidersリストによって、セッションが起動時に拒否されていました。 setup-tokenとforceLoginOrgUUID。forceLoginOrgUUIDが設定されたマシンで、許可された組織のトークンであっても、setup-tokenのトークンが起動時に拒否されていました。
セッション、subagent、headless実行
--continueが、不正な形式のツール呼び出しの再試行を使い切った後に、以前の会話を失うことがありました(2.1.314でのリグレッション)。- アイドル時のコンパクト化が、会話を要約ではない返答に置き換えることがありました。
- 再起動したセッションが、APIエラーで失敗したメッセージを、後ろで待っている新しいメッセージより先に再送しなくなりました。また、Claudeが大きな画像を読んだ直後やツール呼び出しを再試行した直後に再起動した場合に、中断されたターンを失うこともなくなりました。
- headlessセッションでのStopは、モデル変更直後に送られたメッセージを、キュー内のメッセージと同じようにキャンセルまたは停止するようになりました。以前はStop後も実行が続いていました。
- headless実行での見かけ上の成功。 modが
turn.stepをフックしている間にAPIエラーで返答が途切れても、claude -pとAgent SDKのセッションが成功と報告していました。また、modのturn.stepフックによって、停止した返答が成功として終わることがありました。 - カスタムスラッシュコマンドが、失敗した場合やClaudeだけが呼び出せる場合に、
claude -pとSDKセッションで何も出力しませんでした。 - 削除したセッションのトランスクリプトが、アイドル状態の非対話型セッションの終了時に、最後のプロンプトとともに再作成されていました。
- ワークフローを利用上限の後に再開すると、完了済みのagentが再実行されていました。
- 「Now using usage credits」の通知が、バックグラウンドsubagentの実行中、約30秒ごとに再表示されていました。
MCP、プラグイン、ターミナル
- バージョンプローブで終了するstdio MCPサーバーが、起動のたびに再プローブされなくなりました。自らの理由で3秒未満で終了するサーバーは、7日間レガシーのハンドシェイクに固定されます。
- MCPツールのエラー:ツールの読み込み前に行われた呼び出しは、そのツールの入力スキーマを返すようになりました。
claude plugin validateが、claude plugin marketplace addでは拒否されるカスタム名のmarketplaceファイルを通していました。- 権限プロンプトが、メッセージ送信直後に入力したキーや、遅れて表示されるプロンプトの前に入力したキーで応答されてしまうことがありました。
- macOSのセッションで、多数のBashコマンドが実行中のときに、メモリが増え続けながら停滞していました。
- macOS組み込みの
/bin/bash:Bashツールがこれを使う場合の、gitのコミットとプルリクエスト作成の信頼性が向上しました。 NODE_EXTRA_CA_CERTS:ファイルが空、PEMではない、または破損した証明書で始まる場合に、すべての接続が失敗していました。現在は読み取れる証明書を使い、stderrに警告を出します。- 自動アップデート:リリースの検証中に短いネットワーク障害が起きても、次のチェックを待たずにすぐ再試行するようになりました。
- 細かな修正と改善:20枚を超える画像を含むリクエストで画像が大きすぎる場合のエラーが、常に2000pxと示すのではなく、APIの上限を示すようになりました。バックグラウンドシェルの詳細では、ダイアログを開いている間も実行時間が更新されます。ClaudeがPushNotificationの呼び出しでstatusフィールドを省いたときに、通知が重複しなくなりました。
/design revokeが、リクエストが404で失敗したのに成功と報告することもなくなりました。利用上限メニューの「Ask your admin for more usage」は1ステップでリクエストを送ります。You should knowのトーストは、ターミナルでしか使えない「press 2」ではなく「try again」と案内するようになりました。
クラウドセッション、Remote Control、セルフホストrunner
- 承認したコマンドは依頼されたフォルダで実行。 セルフホストrunnerやクラウドセッションの再起動後に承認したシェルコマンドが、依頼されたフォルダではなく、セッションの開始フォルダで実行されていました。現在は、依頼されたフォルダに入れない場合はコマンドを実行しません。
- 実行中のプロセスのバイナリ。 アップデートやバージョンのクリーンアップが、まだ実行中のプロセスのバイナリを削除した後、
claude remote-controlのホスト、バックグラウンドdaemon、セルフホストrunnerが新しいセッションを開始できなくなっていました(spawn ENOENT)。また、別のユーザーが所有する実行中のClaude Codeプロセス(たとえばsudo claudeで残ったもの)を、バージョンのクリーンアップが終了済みとみなし、そのバイナリを削除するおそれがありました。 - クラウドセッションの再起動。 クラウドセッションの再起動後に承認済みのconnectorツールが使えない場合、Claudeに伝えられるようになりました。また、サービスが数分間アップロードを拒否したときに、クラウドセッションがターンの途中で停止されることもなくなりました。
Setuphook:SetuphookがCLAUDE_ENV_FILEに書き込んだ変数が、一部のクラウドセッションでBashツールに届いていませんでした。- iPhoneアプリ:応答がツール呼び出しの時点で途切れた後や、拒否された画像・文書が取り除かれた後に、クラウドセッションのターンが実行中にもかかわらず終了済みと表示されていました。
- GitHub Actionsのログ:クラウドセッションの
gh run view --logとgh apiのログリクエストが、到達できないリダイレクトではなく、ほとんどの環境でログそのものを取得できるようになりました。 - Create PRの失敗:クラウドとRemote Controlのセッションで、ほとんどの失敗メッセージが、Try againではなく、理由かGitHubへのリンクを示すようになりました。
- クラウドセッションの
/mcpが、モデルが使えないツールまで数えていました。現在は各サーバーの行に、そのサーバーで使えるツールの数が表示されます。 - Remote Control:
/remote-controlが接続失敗後にセッションを利用可能と表示しなくなりました。作業フォルダがない場合のエラーは、紛らわしい「spawn error: ENOENT」ではなく、そのフォルダを示します。同じリポジトリを並べてチェックアウトした場合も、環境メニューのRemote Controlの行にそれぞれのフォルダ名が表示されます。アプリがタイトルを設定しない場合、ターミナルのforkのforkは「Name (fork 2)」というタイトルで作成されます。リモートセッションは、一時停止やスリープの後の再接続も速くなりました。 - セルフホストrunner:orchestratorのspawn-runner hookの環境に
CLAUDE_RUNNER_SPAWN_REASONが加わり、Anthropicがリクエストを送った理由(例:runner_lost、resumed)を示します。リクエストが送られていない場合は未設定です。--release-idle-session-minが値のない最後の引数である場合(引き続き無視されます)や、値が空白だけの場合(引き続き0として読まれます)には、起動時に警告が出ます。
Gateway、VS Code、Claude Tag、Code Review
- Gateway:federation(
external_account)の認証情報ファイルから得たGoogleのアクセストークンが期限切れ間近になると、ログに警告が出るようになりました。listen.trusted_proxiesに関するログのヒントは、接続元アドレスを自らX-Forwarded-Forに追加するプロキシだけを列挙するよう案内します。Amazon BedrockでAWS CountTokensが失敗したときの警告は、501の後はgatewayではなくClaude Codeがカウントすることを示し、AWSがアクセスを拒否した場合にのみIAMを指摘するようになりました。 - VS Code:組織の設定によってサインインが拒否されるウィンドウが、1分ごとにバックグラウンドで新しいClaude Codeプロセスを起動しなくなりました。サインイン画面には、サインイン状態のチェックに失敗したときにClaude Codeが出力した内容が表示されます。チャットパネルのエラーバナー内の長い単語が、閉じるボタンを画面外に押し出すこともなくなりました。
- Claude Tag:Claude Tagの管理者セットアップでのキーボードフォーカスとスクリーンリーダーの読み上げが修正され、接続フォームでEscapeを押してもAddダイアログまで閉じなくなりました。
- Code Review:Code Reviewの分析ページが、サーバーやネットワークの障害の後に1回再試行し、その後は空のカードではなくTry againバナーを表示するようになりました。
アップデート方法
- インストール済みのバージョンを確認:
claude --version - その場でアップデート:
claude update - セルフホストrunnerのorchestratorの
nack session=…行を解析するスクリプトがある場合は、retryable=true:やretryable=false:への一致を更新してください。