feat(desktop): auto-update via tauri-plugin-updater - #63
Merged
Conversation
2 tasks
Register tauri-plugin-updater on desktop and configure it: a GitHub-release latest.json endpoint, the minisign pubkey, passive Windows install, and createUpdaterArtifacts so `tauri build` emits the signed update artifacts. Also widen bundle targets to deb/appimage/nsis/msi — Tauri filters to the host's applicable types, so this is what actually makes the Windows NSIS/MSI installers build (and produce the .sig the updater's Windows arm needs).
Add an About section showing the running version (via app_version) and a check/download/restart flow over @tauri-apps/plugin-updater + plugin-process, wrapped in lib/updater.ts. Gated by the Tauri-only check, so the Android WebUI (updated by the root manager) renders nothing. Strings added across all locales.
Pass the minisign signing key to the bundle build so each updatable artifact gets a .sig, then merge the per-platform slices into a single latest.json and attach it to the release — the static endpoint the updater polls. Asset URLs account for GitHub rewriting spaces in the AppImage name to dots.
loss-and-quick
force-pushed
the
feat/desktop-updater
branch
from
June 21, 2026 14:42
ee46614 to
8d1718b
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Desktop auto-update over
tauri-plugin-updater, distributed through GitHubreleases (no separate update server).
App side
tauri.conf.json:a
releases/latest/download/latest.jsonendpoint, the minisign public key,passive Windows install, and
createUpdaterArtifactsso the build emits signedupdate artifacts.
updater:defaultadded to the default capability.targetstodeb/appimage/nsis/msi— Tauri filters to the host'sapplicable types, which is what actually makes the Windows NSIS/MSI build
(previously the Linux-only target list meant no Windows installer was produced).
Frontend
app_version) and acheck → download (with progress) → restart flow, wrapped in
lib/updater.tsover
@tauri-apps/plugin-updater+plugin-process. Gated by the Tauri-onlycheck, so the Android WebUI (updated by the root manager) renders nothing.
Release pipeline
.sigper updatableartifact (distinct from the existing GPG AppImage signature).
updater-manifestjob merges them into one
latest.jsonand attaches it to the release. AssetURLs account for GitHub rewriting spaces in the AppImage name to dots.
Signing secrets (
TAURI_SIGNING_PRIVATE_KEY/_PASSWORD) are already set on therepo; the public key is committed in
tauri.conf.json.Affected layer
frontend/— React Web UI.github/src-tauri)Verification
cargo build -p kasumi-desktop— tauri.conf + capabilities validatecargo fmt --all --check; codegen — no drift infrontend/src/generatedbun run check(Biome),bun run test(64 vitest),bun run buildbun run check:i18n— 8 locales in sync (615 keys)actionlint .github/workflows/release.ymlNotes for reviewers
End-to-end auto-update can only be confirmed by cutting two releases (vN detects
vN+1, verifies the signature against the bundled pubkey, installs, relaunches).
The Windows arm is unblocked now that NSIS builds. Supported install targets:
Linux AppImage + Windows NSIS; deb/portable users update manually.