Provider autoupdate
How malibu-cli swaps itself in place when a newer signed release ships.Providers automatically upgrade to newer signed releases. The coordinator advertises a
recommended_binary_version; the running malibu-cli validates the signed release, drains in-flight traffic, and swaps itself in place.
The flow
- Advertisement. The coordinator’s periodic broadcast frame includes a
recommended_binary_versionfield. - Compare. The provider compares against its running version. If the advertised version is newer and autoupdate is enabled, it enters the update path.
- Fetch. The provider downloads the release artifact from the signed release mirror.
- Verify. SHA-256 checksum against the signed release manifest. Ed25519 signature on the manifest verified against the pinned release key.
- Drain. Stop accepting new requests. Wait for in-flight requests to complete (with a bounded timeout).
- Swap. Replace the binary in place under
~/.malibu/bin/. - Restart.
launchdrespawns the process; it reconnects and re-enters warmup.
Configuration
In~/.malibu/config.yaml:
Opting out
Setautoupdate.enabled: false. You are then responsible for pulling and installing new releases manually — including any breaking receipt version bumps.
Don’t opt out casually. Receipt version rollouts have a version-compatibility matrix (see Receipts); running an old provider against a coordinator that expects newer receipts silently degrades settlement.
Rollback
If a swap fails verification or the restart doesn’t reconnect within the drain window, the previous binary is retained at~/.malibu/bin/.prev and reinstated automatically. launchd then respawns the previous version and the provider tries again on the next advertisement cycle.
Manual rollback:
Signed release verification
The release manifest is Ed25519-signed with a pinned release key. Providers refuse to install any binary whose manifest signature fails. The release key is embedded in the binary at build time — a compromised mirror cannot serve a valid update. Rotating the release key requires a manual out-of-band update.Coordinator side
The coordinator publishesrecommended_binary_version from operator config. Rolling a new version to providers means:
- Cut the release, sign the manifest, publish to the release mirror.
- Bump
recommended_binary_versionin coordinator config. - Restart the coordinator so the next advertisement carries the new version.
- Providers pick it up on their next advertisement cycle.
Related
- malibu-cli — the binary being updated
- Receipts — receipt version compatibility matrix
- Model catalog — the catalog feed is versioned separately