Expand description
Service-side update channel.
Checks GitHub Releases for newer service binaries and applies updates
atomically to ~/.spool/bin/. Independent from the GUI version — users
can update the service without reinstalling the desktop app.
§Update flow
- Fetch latest release metadata from GitHub Releases API
- Compare against
BootstrapState.service.version - If newer, download the platform-specific tarball
- Verify SHA256 (when checksum file present)
- Extract to
~/.spool/bin.new/ - Atomic rename:
bin/→bin.old/,bin.new/→bin/ - Update
version.json
§Concurrency
Uses blocking reqwest::blocking since updates are rare and the user
triggers them manually from the settings page. Avoids needing a tokio
runtime in the GUI process.
Structs§
- Update
Apply Report - Result of an apply-update call.
- Update
Check Report - Result of a check-for-updates call.
Functions§
- apply_
update - Download and apply the latest update atomically.
- check_
for_ update - Check GitHub for a newer service version. Pure read — no filesystem changes.