Updates
How an installed app finds, verifies and installs newer releases in place.
An app update is a newer stable Krad ADE release that an installed app finds on GitHub, downloads, verifies and installs over itself, so you never reinstall by hand.
When the app checks
With Check for updates set to Automatic in Settings › General, the app checks the latest stable release ten seconds after launch and every six hours. Set to Manual, it checks only when you run the check from the command palette.
Only a version strictly newer than the running one is offered.
Available, downloading, ready
- Available. A newer release exists.
- Downloading. The app downloads its platform's full build in the background.
- Ready. The update waits for you to restart the app from the top bar, or applies when the app quits.
Restarting ends terminals and live agent processes, since there is no session daemon. The app warns about running terminals before it restarts. Chats come back by their resume id.
If an install on restart fails, the update stays ready and the app stays open. A failed install on quit still quits.
How a release is verified
Every release publishes latest.json, which names the version and lists, for each platform, the build's file name, its size and its minisign signature. The manifest is itself signed, in latest.json.sig. The app downloads both straight from the release's download links, without calling the GitHub API, so API rate limits do not apply.
- The app verifies the manifest's signature with the minisign public key it embeds.
- It verifies the build while it streams to disk.
- It refuses anything else.
How it installs
An extra .app tar.gz in the release replaces the Krad ADE.app bundle. The app unpacks it with the system tar.
Builds that update
Only builds with the install marker krad-ade.install update. It sits in Contents/Resources on macOS and next to the executable elsewhere, and the release workflow puts it in every build. A build from source has no marker and never updates.
When the app cannot write to its install folder, it tells you about the new release and links to it, without installing.
See Installation for the first install.