There is currently no way for an installed copy of Quill to learn that a new version exists — users would have to re-visit the GitHub Releases page. The release workflow already builds the updater artifacts (Quill_aarch64.app.tar.gz / Quill_x64.app.tar.gz are attached to v0.1.0); what's missing is the plumbing.
Work
- Add
tauri-plugin-updater (Rust + JS sides) and the createUpdaterArtifacts: true / signing config in src-tauri/tauri.conf.json.
- Generate an updater keypair (
tauri signer generate); public key goes in tauri.conf.json, private key + password become repo secrets (TAURI_SIGNING_PRIVATE_KEY, TAURI_SIGNING_PRIVATE_KEY_PASSWORD) consumed by release.yml.
- Publish a
latest.json manifest with each release — tauri-action can generate and attach it (includeUpdaterJson), and the updater endpoint can point at https://github.com/sam-powers/quill/releases/latest/download/latest.json.
- Frontend UX: check for updates on launch (and/or a "Check for Updates…" item in the app menu), prompt, download, relaunch. Keep it quiet on failure (offline etc.).
- Note: the update check must respect the unsaved-changes guard (
guardDirty) before relaunching.
Natural headliner for v0.2 — it's the feature that makes every subsequent release reach users.
Related: #22 — notarized builds and updater signatures are independent mechanisms (Tauri updater uses its own minisign keypair), so this is not blocked on Apple signing.
There is currently no way for an installed copy of Quill to learn that a new version exists — users would have to re-visit the GitHub Releases page. The release workflow already builds the updater artifacts (
Quill_aarch64.app.tar.gz/Quill_x64.app.tar.gzare attached to v0.1.0); what's missing is the plumbing.Work
tauri-plugin-updater(Rust + JS sides) and thecreateUpdaterArtifacts: true/ signing config insrc-tauri/tauri.conf.json.tauri signer generate); public key goes intauri.conf.json, private key + password become repo secrets (TAURI_SIGNING_PRIVATE_KEY,TAURI_SIGNING_PRIVATE_KEY_PASSWORD) consumed byrelease.yml.latest.jsonmanifest with each release — tauri-action can generate and attach it (includeUpdaterJson), and the updater endpoint can point athttps://github.com/sam-powers/quill/releases/latest/download/latest.json.guardDirty) before relaunching.Natural headliner for v0.2 — it's the feature that makes every subsequent release reach users.
Related: #22 — notarized builds and updater signatures are independent mechanisms (Tauri updater uses its own minisign keypair), so this is not blocked on Apple signing.