1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Claude Code v2.1.318——無人実行とネットワークホームの安定性が上がった5つの修正

1
Posted at

深夜に動かしている無人実行のログを見ていると、idle compaction が走ったターンの直後で会話が壊れていたことがある。スクリプト自体は「成功」と返していたが、翌朝のアウトプットが意味をなしていない。v2.1.318 を見たら、これが修正された項目のひとつだった。

この記事で分かること:

  • v2.1.318(2026-11-04 リリース)で修正された項目のうち、無人バッチ・ネットワーク共有環境に直結する5か所
  • claude auth status に追加された loginExpiresAt(有効期限の事前確認が楽になった)
  • 2.1.314 で入った --continue の regression の確認手順

今回のリリース v2.1.318 は Added 4件・Fixed 35件超・Improved 10件超の大型パッチだ。全変更は公式リリースページで確認できる(https://github.com/anthropics/claude-code/releases/tag/v2.1.318)。量が多いので、大企業内で Claude Code を無人実行・ネットワーク共有環境で動かしている立場から、特に気になった5か所に絞って整理する。

1. idle compaction が会話の中身を壊していた(Fixed)

修正内容:Fixed idle compaction replacing a conversation with a reply that was not a summary

idle compaction は、コンテキストウィンドウが長くなったとき Claude Code がバックグラウンドで自動的に会話を要約・圧縮する仕組みだ。長時間のセッションや、無人実行で繰り返し --continue を使う場面では必須の機能になっている。

問題は、compaction が「要約(summary)ではない返答」で会話全体を置き換えることがあった点。要約の代わりに、たとえば直前のターンの返答がそのまま挿入されてしまい、見かけ上は会話が継続しているが中身がおかしい状態になっていた。

無人実行では人間がリアルタイムで確認しない。compaction が走るタイミングは制御できないため、この問題が発生しても「ログを読むまで気づかない」ことになる。正直、これを最初に踏んだときは原因の特定に時間がかかった。

v2.1.318 以降は、compaction の際に適切な要約が入るよう修正されている。

確認手順:claude -p のJSON出力でセッションの整合性を確認するとき、会話の流れが突然おかしくなるターンがあった場合は、直前の compaction ログと照らし合わせると良い。

2. --continue でセッションが消えることがあった(2.1.314 regression)

修正内容:Fixed --continue sometimes losing the earlier conversation after a malformed tool call's retries ran out (regression in 2.1.314)

v2.1.314 で入った regression だった。ツールコールが不正な形(malformed)だった場合、リトライが上限に達したあとに --continue で再開しようとすると以前の会話が失われることがあった。

無人実行のスクリプトではエラーリトライを組んでいるケースが多い。ツールコールのエラーが続いてリトライ上限に当たった後に --continue を使うと、その回の会話がすっかり消える、という挙動だった。

v2.1.313 以前を使っていた場合や、2.1.314〜2.1.317 の間でこの問題に当たっていた場合は、v2.1.318 へのアップデートで修正される。

確認手順:ツールコールのリトライが多発しているセッションを --continue で再開して、会話の履歴が残っているかを確認する。

3. ネットワークホームの設定ファイルが失われやすかった(Fixed / Improved)

修正・改善内容(主なもの):

  • Fixed jobs exiting with Not logged in when another terminal or host signs in again to the same account
  • Fixed sessions being refused at startup by an allowedProviders list that another login had stored
  • Improved how ~/.claude.json, settings files and the stored login survive saves on shared network home directories
  • Improved sessions on network file systems to look again when the configuration file is wrongly reported as missing

企業環境では複数マシンや複数ユーザーが同じネットワークホームディレクトリを参照していることがある。その場合に ~/.claude.json や settings ファイルが保存・読み込みのタイミングで壊れたり消えたりすることがあった。

具体的に起きていたこと:

  • 別のマシンやターミナルがサインインした直後に、既存のセッションが「Not logged in」で終了する
  • 設定ファイルが「見つからない」と報告され、MCP サーバーや信頼フォルダが反映されずに起動する
  • 設定ファイルが保存タイミングで空になったり古いものに置き換わる

v2.1.318 では、排他制御と再試行の仕組みが強化された。設定ファイルが誤って「見つからない」と報告された場合は再確認するようになった。

大企業内でタスクスケジューラから Claude Code を起動している場合、ネットワークホームに設定が置かれていることが多い。この修正は実務への影響が大きいと判断している。

4. バックグラウンドサブエージェント実行中の通知ループが止まった(Fixed)

修正内容:Fixed the "Now using usage credits" notice reappearing about every 30 seconds while a background subagent is running

バックグラウンドでサブエージェントが動いている間、「Now using usage credits」という通知が30秒おきに繰り返し表示されていた。

無人実行のログに同じ文字列が大量に並ぶことになり、ログ監視ツールのノイズになっていた。また、実際には何も問題が起きていないのに通知の多さで異常に見える状態だった。v2.1.318 以降は、このノイズが解消される。

ログ監視を入れているチームには特に関係がある。誤検知アラートが減るだけでも運用の手間が違う。

5. 別ユーザーのプロセスを version cleanup が誤って削除していた(Fixed)

修正内容:Fixed a running Claude Code process owned by another user (for example one left by sudo claude) being treated as dead by version cleanup, which could delete its binary

タスクスケジューラや別のユーザー権限で起動した Claude Code プロセス(たとえば sudo claude で残ったプロセス)を、version cleanup が「停止中のプロセス」として判断し、バイナリを削除していた可能性がある。

これが発生すると、その後の実行で「バイナリが見つからない」エラーになる。バイナリの再取得が必要になる。

複数のユーザーが同じマシンを使って Claude Code を実行している環境、または sudo を使ったインストール・実行が混在している環境では確認しておく価値がある。

追加:loginExpiresAt(有効期限の確認が楽になった)

追加内容:

  • Added the date a stored claude.ai sign-in ends to claude auth status (loginExpiresAt) and to claude -p JSON results (credential_expires_at)
  • Added a one-line stderr warning to claude -p text output, starting 10 days before a stored claude.ai sign-in ends

claude auth status を実行すると、loginExpiresAt フィールドとして有効期限の日時が出るようになった。claude -p のJSON出力にも credential_expires_at として含まれる。

また、有効期限の10日前からは claude -p の stderr に1行の警告が出るようになった。

無人実行では認証の期限切れに気づかずに実行し続けることがある。朝のダイジェスト通知に claude auth status の結果を入れておくと、期限が近づいたときに早めに対応できる。

確認コマンド(例):

claude auth status --json | jq '.loginExpiresAt'

期限の10日前からは stderr に警告が出るようになったので、ログ監視でこのメッセージを拾う設定を入れておくと安心だ。

今回確認したこと

v2.1.318 は量こそ多いが、無人実行・ネットワークホーム環境に直結する修正が複数含まれていた。

特に idle compaction の壊れ方は「スクリプトが成功と返したまま中身がおかしい」という静かな故障だったので、ログを読むだけでは気づきにくかった。

同じような現象が出たときの切り分けとして:

  • idle compaction 後のターンで会話の整合性がおかしい → v2.1.318 以降か確認
  • --continue 後に会話が消える → 2.1.314〜317 を使っていないか確認
  • MCP サーバーや信頼フォルダが反映されていない → ネットワークホームの設定ファイル問題の可能性
  • ログに「Now using usage credits」が大量に並ぶ → v2.1.318 以降で解消される

関連する実践の話:
Copilotで議事録を作るとき、事前にやること


Copilot・Power Automate・AIツールの導入・活用のご相談は、ココナラで受け付けています。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?