hephaestus/docs/how-to/self-update/hephd-self-update.md
Erich Blume c321d72e7d
All checks were successful
Build / validate (pull_request) Successful in 5m37s
C2(hephd-self-update): finalize — changelog + mark goal implemented
All eight prerequisite leaves are closed; the daemon-side feature is
implemented and the cargo-install-over-public-HTTPS mechanism is verified
end-to-end. Add the changelog fragment and drop the goal card's
status/branch, noting the one remaining owner check: observing a real
older->newer upgrade on the next release.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-04 14:48:44 -07:00

2.4 KiB

title modified tags requires
hephd self-update 2026-06-04
how-to
self-restart-after-update
verify-hub-dropout-resilience

hephd self-update

Implemented. An opt-in, default-off mode where hephd periodically polls the forge for a newer release and, when one exists, rebuilds via cargo install from the release tag and restarts itself onto the new binary — unattended. Enable on the managed service with heph daemon start --self-update (see run-the-daemon).

One remaining live check (owner): the install mechanism is verified end-to-end (anonymous public HTTPS cargo install), and the detection/apply logic is unit-tested, but a real older→newer upgrade can only be observed when the next release lands. Enable --self-update and confirm the upgrade then.

End state

Design decisions (owner)

  • Default off, opt-in only. Never self-update silently by default.
  • Delivery is cargo install from the tag for now (prebuilt release binaries are a possible future, pending a cargo/forge canonical-host fix).
  • Hub can disappear at any moment — that resilience is the base case, not a special guard. The sync loop already tolerates an unreachable hub; we lock that in rather than add update-specific guards. See verify-hub-dropout-resilience.

Scope notes

Captured from task 01KTA2NSNRYT902HC3VRW00S1J in the Hephaestus project. Possible later refinements (own cards if pursued): checksum/signature verification of the built binary, prebuilt release-binary delivery, and a notify-only sub-mode.