Repository navigation
v1.3.0 — seamless updates
- Version handshake: clients send
clientVersion, daemon answers withdaemonVersion(additive, backward-compatible with pre-handshake daemons) - Daemon self-restart: when a newer client contacts an older daemon, the daemon persists state + queue journal, drains connections, and respawns itself with the same argv — first client contact after an update triggers a seamless restart (one attempt per version, no restart loops)
- Queue journaling: queued/offered requests survive daemon restarts, re-queued FIFO with the same request ids; offered entries come back as queued and are re-offered with fresh tokens
service stophardening: SIGTERM → bounded wait (default 5s) → SIGKILL → verifies the endpoint is verifiably free before reporting successservice starthonesty: refusals name the conflicting pid ("socket answered from pid X") instead of a bare 10s timeout- Skew + multi-copy drift visibility:
doctorreports every detected copy (CLI on PATH, opencode npm-cache copies) and warns on daemon skew and version drift;statusand dashboards show the daemon version with an "older than installed" note - Docs: new "Update lifecycle" section in OPERATIONS.md; COMPATIBILITY.md explains the opencode multi-copy reality
Tests: 134/134 green.