Skip to content

原文(日本語に翻訳)

バックグラウンドエージェントのデーモン引き継ぎ処理を修正し、再インストールされた古いビルドがデーモンを乗っ取れないようにしました。ビルドの新しさは、バージョンに埋め込まれたビルドタイムスタンプで判定されるようになりました

原文(英語)

Fixed background-agent daemon handover so a reinstalled older build can no longer take over the daemon; build recency is now judged by the version's embedded build timestamp

概要

Claude Codeを更新すると、バックグラウンドエージェントの常駐デーモンは新しいバージョンのプロセスに引き継ぎ(handover)されます。以前のこの判定ロジックには不備があり、何らかの理由で古いビルドが再インストールされた場合に、その古いビルドが誤って「新しい」と判定されデーモンを乗っ取ってしまうことがありました。この修正により、ビルドの新旧はバージョン番号だけでなく、各ビルドに埋め込まれたビルドタイムスタンプを基準に正しく判定されるようになりました。

基本的な使い方

修正前(Before):

bash
# 新バージョンのデーモンが稼働中
# → 何らかの理由で古いビルドを再インストール(ダウングレードやロールバック)
# → 古いビルドがデーモンの引き継ぎを試み、成功してしまう
# → 新機能や修正が反映されていない古いデーモンに戻ってしまう

修正後(After):

bash
# 新バージョンのデーモンが稼働中
# → 古いビルドを再インストールしても
# → ビルドタイムスタンプにより「古い」と正しく判定され、乗っ取りを拒否
# → 新しいデーモンが引き続き稼働する

実践例

パッケージマネージャーやCIでバージョン固定・ロールバックを行う環境

社内配布パッケージやDockerイメージなどでClaude Codeのバージョンをピン留めしている環境で、意図せず古いビルドが再インストールされることがあります。この修正により、そうした状況でも稼働中の新しいデーモンが不用意に古いものへ後退することを防げます。

複数バージョンが混在しうる開発マシン

複数のプロジェクトで異なるバージョンのClaude Codeを試している開発者が、あるプロジェクトで古いバージョンをインストールし直した際に、他のセッションのデーモンまで古いビルドに乗っ取られる、といった事故を防ぎます。

バージョン番号だけでは新旧が判別しにくいビルド運用

同一バージョン番号でも再ビルドされたバイナリが複数存在するような運用(ホットフィックスの再配布など)において、ビルドタイムスタンプという、より正確な基準で新旧判定が行われるようになった点が実務上のメリットです。

注意点

  • この修正はデーモンの引き継ぎ判定ロジックの内部的な信頼性向上であり、通常のアップデート手順(claude update など)を変えるものではありません。
  • 意図的に古いバージョンへダウングレードしたい場合でも、デーモンの引き継ぎには影響がある可能性があるため、明示的にデーモンを再起動する運用を検討してください。
  • v2.1.200での修正です。

関連情報