Skip to content

feat: in-app updater with manual-download fallback#1298

Open
chrisbendel wants to merge 1 commit into
CyberTimon:mainfrom
chrisbendel:feat/in-app-updater
Open

feat: in-app updater with manual-download fallback#1298
chrisbendel wants to merge 1 commit into
CyberTimon:mainfrom
chrisbendel:feat/in-app-updater

Conversation

@chrisbendel

Copy link
Copy Markdown

Description

As a user, clicking the "new version available" takes you to the latest github release page, requires you to manually download the application and reinstall it. This should provide a path to update to the latest version directly in your application without re-downloading 🤞. There may be some work on your end to make sure things work properly with the signing keys/etc.

I am happy to iterate on this with some feedback on your end too @CyberTimon, thanks for taking the time to check this out!

Type of Change

  • Bug fix
  • New feature
  • Breaking change
  • Performance improvement
  • Code refactoring
  • Documentation update
  • UI/UX improvement
  • Build/CI or Dependency update

Changes Made

  • Added tauri-plugin-updater (Rust + JS), registered desktop-only.
  • Update badge now installs in-app (checkdownloadAndInstallrelaunch); falls back to opening the releases page on any failure, so behavior is unchanged until updates are signed.
  • Added desktop-scoped updater capability (excludes Android).
  • Wired TAURI_SIGNING_PRIVATE_KEY/_PASSWORD env into the release build (no-op until secrets set).
  • Added downloadingUpdate string across all 12 locales.

Not enabled by default — needs maintainer setup (one-time):

  1. npx tauri signer generate → add private key + password as repo secrets.
  2. Paste pubkey + set createUpdaterArtifacts: true and plugins.updater endpoint in tauri.conf.json.
  3. macOS in-place update requires the app be code-signed (else Gatekeeper blocks the swap). Windows/AppImage work as-is; Android unaffected.

Until those land, CI builds exactly as before and the badge keeps opening the browser — zero regression.

Screenshots/Videos

Testing

  • I have tested these changes locally and confirmed that they work as expected without issues

Test Configuration:

  • OS:
  • Hardware:

Checklist

  • My code follows the project's code style
  • I haven't added unnecessary AI-generated code comments
  • My changes generate no new warnings or errors

Additional Notes

Updater config (createUpdaterArtifacts, plugins.updater.pubkey) is intentionally left out of tauri.conf.json — committing it without the signing key would fail the build. Happy to add it in this PR if you share a pubkey, or you can flip it on after merge.

AI Disclaimer:

  • This PR is entirely AI-generated
  • This PR is AI-generated but guided by a human
  • This PR was handwritten with AI assistance (spell check, logic suggestions, error resolving)
  • This PR contains only blood, sweat, and coffee (AI-free)

Open items on you:

  • Testing checkbox + OS/Hardware — left blank/unchecked. Check + fill once you run it locally. Don't claim tested if not.
  • AI disclaimer — picked "AI-generated but guided by a human." Change if you disagree.
  • Verify cargo check / build passes locally before checking the "no new warnings" box.

@chrisbendel
chrisbendel requested a review from CyberTimon as a code owner June 20, 2026 16:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant