measure: bench=hibernate prints why an idle harness stayed up
bench=hibernate now also prints why an idle harness stayed up.
Why: a fleet run (measure Mac, n=4, Claude and Codex) compared the tip at 0d7d2dde against the parent of #26127. Neither side hibernated a single chat:
- every agent process was still running after 135 s idle;
- the next prompt answered in 15-80 ms, with no respawn;
- the bench printed no
LOGline, because it kept only the daemon'shibernated/woke/wake failedlines.
The idle pass logs a refusal when its census finds a process under the harness that isn't one of its MCP servers (idle_census.rs note_refusal: "idle harness stays up: ..."). The bench now keeps those lines too, so the next run names the process that held each harness up.
What changes: one filter in scripts/cmux-next/acpmux-overhead-bench.py (hibernate_main). Nothing else.
Leo's words for the stack this measures: "also when it comes to hibernation...can't you hibernate the agent but not hibernate the bg tasks?"
Risk: none for the product. This is measurement only.
No capture: no UI.
Review (codex gpt-6-astra high, fast): SHIP at f9534045e2ffac003eaba4d4e99cd01cc87943b5.
Agent session: agent session
š¤ Generated with Claude Code