All checks were successful
CI (Node) / build-test (push) Successful in 9s
The previous skill assumed a happy-path environment and silently broke on real installs. Hardened the flow: - Always pass --@kuns:registry on every npm call, so the upgrade survives an unreadable user .npmrc (e.g. roaming HOME on a network share that npm can't access). - Treat /health as the ground truth, not `claude-mailbox status`. Status only reflects the autostart wrapper and silently lies when the inner process crashed at boot. - Capture state before changing anything (CLI version, autostart state, port, daemon /health version) so failures can roll back to "do nothing — old daemon keeps running". - Detect the "daemon reachable but autostart NotInstalled" case (manual foreground serve) and refuse to swap binaries from under it. - After restart, poll /health for up to 10s and verify the live daemon's version matches LATEST; on timeout, dump the platform- appropriate daemon log tail instead of just reporting "Stopped". - Reorder: install first, then stop+start. Downtime is paid only after the new binary is verified on disk.