Source of truth:
crates/core/src/updater.rscrates/cli/src/main.rscrates/config/src/lib.rsinfra/releases-worker/
qvl update
qvl update --force
qvl update --list-backups
qvl update --rollback latest
qvl update --rollback /path/to/backup
qvl uninstall [--yes]The updater reads release metadata from:
GET https://get.quavil.com/version
and downloads tarballs from:
GET https://get.quavil.com/download/<os>/<arch>?version=<version>
Default config:
[update]
enabled = true
check_interval_hours = 4
release_url = "https://get.quavil.com"- load throttle/skip state from the SQLite state store
- validate
release_url - fetch
<release_url>/version - compare semantic versions
- construct the platform download URL
- download the tarball and verify SHA-256
- back up the current binary
- replace the binary in place
- verify the new binary with
--version - run post-update integrity checks
Backups are stored in:
<data_dir>/backups/
They are named like:
qvl-v3.0.1-<timestamp>
Behavior:
- newest-first listing
- automatic pruning to 3 backups
- rollback via binary self-replace
The updater:
- requires
https - blocks cloud metadata hosts
- warns on non-default hosts for self-hosted setups
The public install surface is:
curl -fsSL https://get.quavil.com | shThat script is served by the release Worker and pulled from the same release bucket as the metadata and archives.
qvl uninstall removes:
- the binary
- config
- data
- backups
- PATH entries previously written by Quavil install scripts