Daemon-fork loses channels flag: CC session silently stops waking on llmmsg mail - detect, prevent, recover
PREVENT recurrence of monitor-context-cc 2026-09-03: a CC session forked into 'claude daemon run' (fleet/slash dispatch, source=slash, --fork-session --resume, --model claude-fable-5-1[1m]) is respawned WITHOUT --dangerously-load-development-channels server:llmmsg-srv. CC's channel gate then skips registering notifications/claude/channel, so llmmsg wakes are discarded while tools/polling keep working - agent looks healthy (fresh last_seen, same PID polling) but never wakes on mail; pane becomes a frame; 3 shims poll under one name. Confirmed no prior fix exists (bin-venus-cc, nw-venus-cc, coder-llmmsgsrv-cc, searched not recalled); the remembered fix 45a8a4c/MSG-14 (ccs.sh v5.18) covers launch argv only and cannot reach a fork CC builds itself. Aug-23/24 sub-agent lockdown (DISABLE_BACKGROUND_TASKS, DISABLE_EXPLORE_PLAN_AGENTS, deny Agent) does not cover daemon dispatch; stray-agent-check.sh rule (iii) never fires because bg-pty-host gives the fork a pty. Children track: detection, monitor blind spot, prevention knob test, upstream bug, relaunch runbook. Memory: daemon-fork-drops-channels-flag.md (pm-llmmsgsrv-cc).
Sub-tickets — 2/6 done
Activity
-
07:47:24Z second consequence: the per-user daemon (7ce4f719) bg-spare 1755254 was claimed by a dispatch in coder-mars cwd; its shim inherited the DAEMON env LLMMSG_AGENT=monitor-context-cc and tried to /register as monitor-context-cc from cwd coder-mars - hub refused (agent_identity_conflict, pid 2762101). One daemon per user leaks the first spawner's llmmsg identity env into every later spare.
-
351 done: monitor-context-cc recovered, all daemon children killed. Open: 348 (hub alert), 349 (knob spike, needs GO), 350 (/feedback), 352 (shim identity)
-
348 deployed (v2.55.0). Open: 349 (needs GO), 350 (/feedback), 352 (shim identity)