Provider autoupdate
How a provider Mac moves to a newer signed release without manual steps.Providers installed through the Malibu app or the standard installer upgrade themselves to newer signed releases. The network tells each provider which version it recommends. The provider verifies that release, drains its in-flight requests, and swaps the whole signed release set in place: CLI, companion files, and the Malibu app if it is installed.
The flow
-
Advertisement. When a provider connects, the network’s handshake reply includes a
recommended_binary_version, plus a minimum required version. -
Eligibility. The provider updates only if all of these hold:
- the advertised version is newer than the running one;
- autoupdate is enabled;
- the target is not revoked or below the signed minimum;
- the install is a standard user install (
live.malibu.providerlaunchd agent).
-
Fetch. The provider downloads that release from GitHub Releases (
Augustas11/macprovider). It needs the CLI tarball, theMalibu-vX.Y.Z.dmg, the compatibility index,checksums.txt, andchecksums.txt.sig. If any asset is missing, the update fails. -
Verify.
checksums.txt.sigmust verify against the release-signing public key built into the running binary. Every asset must matchchecksums.txt.- The release’s compatibility set must match the one the network expects.
- The staged CLI and Malibu app must pass a strict code-signature check against Malibu’s Developer ID team.
-
Drain. The provider tells the network it is draining, which stops new requests from being routed to it, and waits for in-flight requests to finish. If requests are still running after the bounded wait (about two and a half minutes), the update is abandoned (
drain_timeout) rather than cutting a buyer off. It is retried later. -
Swap. Files are replaced in the install directory (
~/macprovider/), and a backup of the previous binary is kept alongside. If the Malibu app is installed, it is replaced from the signed DMG in the same transaction. -
Restart and health check. launchd restarts
live.malibu.provider. The new version has to pass a run of consecutive local health checks. If it doesn’t, the swap is rolled back to the previous binary automatically.
Check or update manually
Opting out
Autoupdate is on by default. To turn it off, set this in~/.config/macprovider/config.yaml:
MACPROVIDER_AUTO_UPDATE_ENABLED=false. When it is off, the provider logs that a newer version is available and does nothing else. You then have to run malibu-cli update yourself.
Don’t opt out casually. The network sets a minimum supported version. A provider that falls below it can be refused admission until it updates.
Headless (SSH-only) installs are never autoupdated. The installer writes auto_update_enabled: false for them, and they are upgraded by the operator. See Headless install.
Recovering a stuck update
If an update was interrupted, for example by power loss mid-swap, and the provider refuses to serve, run:recover-update clears only an abandoned update or rollback transaction. It leaves a genuinely in-progress update alone and is safe to run while the provider is stopped. If that doesn’t help, re-running the installer repairs the install in place.
Signed release verification
Each release carries achecksums.txt manifest signed with Malibu’s release key (ECDSA P-256). The matching public key is compiled into the provider binary, so a compromised download mirror cannot produce an update that verifies. On top of that, the release set must match a signed compatibility set, and the binaries must pass the Developer ID code-signature check.
Related
- malibu-cli: the CLI being updated
- Flags & config: config file and paths
- Receipts: receipt version compatibility
- Model catalog: catalog and model artifacts