- `upgrade all` sweeps every registered sled in sequence, streaming per-sled phase markers and reporting a summary. - Binary source is now the gateway's own artifact store via host.docker.internal (was: unresolvable `gateway` hostname serving the gateway's macOS binary to Linux sleds — would have bricked them). - Sleds with active claude processes are skipped, never killed. - After reconnect, /api/version git_hash is compared against the published artifact's .hash sidecar; divergence is reported loudly. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019fHdm92yjvguPi2LiXfLB9