939565b88a
The 10s-after-healthy failure pattern was reproducing even with the connection pool disabled. Smoking gun: the inbox loop opens GET /messages?timeout=30 right after start_daemon returns, and every subsequent peers/routes call timed out exactly when our client-side reqwest timeout (10s) fired. Concluded mycelium 0.6.1's HTTP server serialises requests: while the long-poll connection is held, no other admin endpoint can respond. The sidecar process kept logging routes the whole time (seen in the in-app log buffer) — proof the daemon was alive, just unable to serve concurrent calls. Switch to short-poll: timeout=0 returns immediately, sleep 2s between iterations. Per-iteration server hold time is now millisecond-scale instead of 30s.