原文(日本語に翻訳)
バックグラウンドエージェントの名簿(roster)に関する複数の問題を修正しました。一時的な破損によってオーファン(孤立エージェント)のクリーンアップが恒久的に無効化される問題、古いバイナリが新しいバージョンによって書き込まれたフィールドを保持しない問題、デーモン再起動時にソケット認証トークンが失われる問題です
原文(英語)
Fixed background-agent roster issues: transient corruption permanently disabling orphan cleanup, older binaries not preserving fields written by newer versions, and socket auth tokens being stripped during daemon restarts
概要
Claude Codeのバックグラウンドエージェントは、稼働中のセッション情報を「roster(名簿)」と呼ばれる内部ファイルで管理しています。このrosterに関して、(1) 一時的なデータ破損が発生すると孤立エージェント(親を失ったオーファン)を掃除する処理が恒久的に無効になってしまう、(2) 新しいバージョンが書き込んだ独自フィールドを古いバイナリが読み書きする際に消してしまう、(3) デーモン再起動時にソケット通信用の認証トークンが失われてしまう、という3つの問題が修正されました。
基本的な使い方
この修正はいずれも内部の状態管理に関するものなので、ユーザーが直接操作を変える必要はありません。修正の効果はバックグラウンドエージェントの安定性向上という形で現れます。
修正前(Before):
claude agents
# rosterが一時的に破損 → オーファンクリーンアップが恒久停止
# → 使われなくなった孤立エージェントがいつまでも一覧に残る、
# あるいはリソースが解放されない
# 新旧バージョン混在環境で古いバイナリを使うと
# → 新バージョンが書いたフィールドが消える
# デーモン再起動時
# → ソケット認証トークンが失われ、通信エラーの原因になる修正後(After):
claude agents
# 一時的なroster破損があってもオーファンクリーンアップは継続動作
# 新旧バイナリが混在してもフィールドが保持される
# デーモン再起動後もソケット認証トークンが維持される実践例
複数バージョンのClaude Codeが混在するチーム環境
チームメンバーがそれぞれ異なるバージョンのClaude Codeを使っている、あるいは一部のマシンだけアップデートが遅れているような状況では、古いバイナリが新しいバージョンの書き込んだrosterフィールドを壊してしまうリスクがありました。この修正でバージョン混在環境での安定性が高まります。
バックグラウンドエージェントを多数・長時間運用する場合
多数のバックグラウンドエージェントを走らせ続ける運用では、孤立エージェントの自動クリーンアップが正常に機能し続けることが重要です。一時的な破損が起きても機能が恒久停止しなくなったことで、リソースリークのリスクが下がります。
デーモンの再起動やアップデートを頻繁に行う環境
デーモンが再起動されるたびにソケット認証トークンが失われていた問題は、頻繁にアップデートやプロセス再起動が発生する環境ほど影響が大きい不具合でした。修正後は再起動をまたいでも認証が維持され、通信エラーが減ります。
注意点
- これら3つの問題はいずれも稀な内部状態の不整合に起因するもので、発生条件も個別に異なります。すべてまとめてv2.1.200で修正されました。
- 以前これらの不具合の影響を受けていた環境(例: 孤立エージェントが溜まっている、認証エラーが頻発するなど)では、アップデート後に一度
claude agentsでデーモンを再起動して状態をリフレッシュすることを検討してください。 - rosterやdaemonの内部フォーマットは非公開の実装詳細であり、公式ドキュメントには詳細な仕様は記載されていません。