経緯
2026-07-06、orange がゾンビプロセス懸念で PC を再起動。2 つの Claude セッションで独立に調査した結果、生きているゾンビは 0 件(再起動直後のため)だが、配送役を生む制御プレーンの残置物が複数層に散らばっており、lifecycle owner が不在であることを確認した。
観測値
セッション A(再起動前後の調査)
- mathdesk-desktop チーム内の全 agent が
mode=off(安全側に倒す措置を実施済み)
- Windows Scheduled Task 残置 ×2(いずれも Disabled):
agmsg-watch-once-eiji — powershell ... C:\tmp\agmsg-watch-once-gate.ps1 -Name Eiji(1 分間隔、Last Run 2026-06-29)
agmsg-watch-once-eiji-probe — wscript ... C:\tmp\agmsg-watch-once-probe-eiji.vbs(Last Run 2026-06-30)
- Codex automation 残置 ×1:
agmsg-hub-relay-collector(kind=heartbeat, FREQ=MINUTELY, status=PAUSED)— Hub relay PoC の collector/dispatcher
セッション B(本スレ、2026-07-06 23 時台)
~/.agents/skills/agmsg/run/ に 2026-06-27 の stale artifacts: codex-app-server.*(pid/port/version/log)×2 セット + codex-bridge.mathdesk-desktop.dogfood-eiji.*(pid/meta/log 等)。pid 42232 等は全て死亡確認済みなのに pidfile が残置 — 誰も看取っていない証拠
- bridge log は
armed のまま途切れており、正常終了の形跡なし
~/.claude/settings*.json に agmsg hook の登録なし(SessionEnd cleanup の配線がグローバルには存在しない)
C:\tmp に実験残骸 約 40 件: watch-once 系 ps1/vbs/log、conditional-waker state(eiji/junoma/deneb、最新 7/4)、tray-notifier、manual-monitor 系 sh、hub-relay state、backup dir、設計 doc 等
- conditional-waker(7/4 実行痕跡)は Scheduled Task にも scripts にも定義が見つからず、セッション内アドホック実行の残骸と推定
構造診断
- 作成⇔破棄がペアになっていない。プロセス / pidfile / Scheduled Task / Codex automation / C:\tmp スクリプト・state の 5 層それぞれで、作る経路はあるが破棄する経路がない(または人間の記憶頼み)
delivery.sh set off のスコープは自プロジェクトの watch.sh のみ。別セッションの Task / automation / app-server は管理外
- Codex / Claude の「セッション終了・アーカイブ」と OS 側の寿命が同期していない → 「会話は終わったが配送役だけ残る」「配送役だけ消えて気づかない」の両方が起きうる
codex-app-server は設計自体が「起動 or 再利用」の常駐 daemon で、参照カウントも idle shutdown もない
実施済みの応急対処(2026-07-06)
提案
gc(reap-on-startup): run/ の pidfile を走査し、pid 死亡なら artifacts 削除、pid 生存だが対応セッション消滅なら kill。session-start / whoami の冒頭で毎回実行(cron 不要、使うたび掃除)
- codex-app-server に idle TTL: 最後の bridge が detach して N 分でセルフシャットダウン
- spawn 系の manifest 義務化: プロセス起動・Scheduled Task 登録・Codex automation 作成など「配送役を生む操作」は全て単一 manifest(例
run/manifest.jsonl)に記録し、despawn / gc が manifest を読んで層横断で一掃できる形にする。lifecycle owner を「manifest を書いた者 = agmsg 自身」に一本化
- 実験スクリプトの置き場規約: C:\tmp 直置きをやめ、gc 対象となる管理下 dir に置く
1〜2 が即効、3 が本丸(今回の「4 層に散らばって誰も知らない」の再発防止)。
経緯
2026-07-06、orange がゾンビプロセス懸念で PC を再起動。2 つの Claude セッションで独立に調査した結果、生きているゾンビは 0 件(再起動直後のため)だが、配送役を生む制御プレーンの残置物が複数層に散らばっており、lifecycle owner が不在であることを確認した。
観測値
セッション A(再起動前後の調査)
mode=off(安全側に倒す措置を実施済み)agmsg-watch-once-eiji—powershell ... C:\tmp\agmsg-watch-once-gate.ps1 -Name Eiji(1 分間隔、Last Run 2026-06-29)agmsg-watch-once-eiji-probe—wscript ... C:\tmp\agmsg-watch-once-probe-eiji.vbs(Last Run 2026-06-30)agmsg-hub-relay-collector(kind=heartbeat, FREQ=MINUTELY, status=PAUSED)— Hub relay PoC の collector/dispatcherセッション B(本スレ、2026-07-06 23 時台)
~/.agents/skills/agmsg/run/に 2026-06-27 の stale artifacts:codex-app-server.*(pid/port/version/log)×2 セット +codex-bridge.mathdesk-desktop.dogfood-eiji.*(pid/meta/log 等)。pid 42232 等は全て死亡確認済みなのに pidfile が残置 — 誰も看取っていない証拠armedのまま途切れており、正常終了の形跡なし~/.claude/settings*.jsonに agmsg hook の登録なし(SessionEnd cleanup の配線がグローバルには存在しない)C:\tmpに実験残骸 約 40 件: watch-once 系 ps1/vbs/log、conditional-waker state(eiji/junoma/deneb、最新 7/4)、tray-notifier、manual-monitor 系 sh、hub-relay state、backup dir、設計 doc 等構造診断
delivery.sh set offのスコープは自プロジェクトの watch.sh のみ。別セッションの Task / automation / app-server は管理外codex-app-serverは設計自体が「起動 or 再利用」の常駐 daemon で、参照カウントも idle shutdown もない実施済みの応急対処(2026-07-06)
mode=off(セッション A)agmsg-hub-relay-collector削除(~/.codex/automations/から)run/の stale artifacts 一掃C:\tmpの実験残骸 約 40 件は未処理(設計 doc 等の価値物が混在するため別途判断)提案
gc(reap-on-startup):run/の pidfile を走査し、pid 死亡なら artifacts 削除、pid 生存だが対応セッション消滅なら kill。session-start / whoami の冒頭で毎回実行(cron 不要、使うたび掃除)run/manifest.jsonl)に記録し、despawn / gc が manifest を読んで層横断で一掃できる形にする。lifecycle owner を「manifest を書いた者 = agmsg 自身」に一本化1〜2 が即効、3 が本丸(今回の「4 層に散らばって誰も知らない」の再発防止)。