macOS arm64: 2+ concurrent background agents cause daemon supervisor 'signal war' (cause=signal, leases=2) — ~52s respawn, reconnect flicker + red agents
Summary
On macOS (Apple Silicon), running 2+ concurrent background agents (FleetView) causes the on-demand background daemon supervisor to enter a perpetual respawn/"signal war": a new supervisor is elected roughly every ~52s, each rebinding the same control socket. Each re-election drops every attached TUI's connection (a "Reconnecting…" chip flashes, input freezes ~1s, sessions occasionally get kicked) and sometimes kills live workers, which surfaces in FleetView as agents turning red (state: failed).
Environment
- Claude Code 2.1.195 (native install, autoUpdates on)
- macOS, Apple Silicon (arm64), 24 GB RAM
- Multiple concurrent FleetView background agents
Key evidence (~/.claude/daemon.log)
Decisive line:
[supervisor] shutting down (cause=signal, uptime=6s, leases=2, live_workers=5)
cause=signal→ the supervisor is killed by a signal, NOT a crash/OOM/idle-timeout.leases=2→ exactly two concurrently-running agents.- Each running agent spawns its own
claude daemon run --origin transient; the newer one signals the older one's daemon down → ping-pong. With 1 running agent it's stable; with ≥2 it wars.
Cadence (new supervisor pid every ~52s, same control socket):
07:41:47 daemon start pid=33069
07:42:39 daemon start pid=33540
07:42:45 shutting down (cause=signal, uptime=6s, leases=2, live_workers=5)
07:43:14 daemon start pid=33858 bg adopt: adopted=2 ... dead=3 <- workers killed = red agents
07:44:06 daemon start pid=34419
claude daemon --help states: "Service install is disabled in this version — the daemon runs on demand and exits when the last client disconnects." There is never a persistent supervisor; all are origin=transient. daemon.json is empty; no settings.json / env tunable found to make agents share one daemon.
Impact
Makes running multiple background agents in parallel effectively unusable — constant reconnect flicker, dropped input, and agents dying mid-task.
Likely related
#66483 (supervisor idle/respawn), #58637 (bg state-sync at ≥6 agents), #59653 (daemon-spawned workers crash "exit 1 before init" on macOS arm64 — matches the red crashes), #66358 / #58560 (auto-update rotates control key / version skew).
Ask
Is the persistent shared-daemon work (codename "Chyros") expected to land for this? In the meantime, is there any supported way for 2+ concurrent background agents on macOS arm64 to share a single daemon rather than each spawning a competing transient supervisor?
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗