Skip to content

feat: check for updates with install-aware reminder#35

Merged
mulhamna merged 2 commits into
feat/app-settings-storefrom
feat/update-reminder
Jul 10, 2026
Merged

feat: check for updates with install-aware reminder#35
mulhamna merged 2 commits into
feat/app-settings-storefrom
feat/update-reminder

Conversation

@mulhamna

@mulhamna mulhamna commented Jul 10, 2026

Copy link
Copy Markdown
Member

Summary

  • App had no way to tell the user a newer release exists.
  • Adds a once-a-day update check and a reminder banner whose upgrade hint matches how the app was installed.

Stacked on #34 (needs SettingsStore). Base is feat/app-settings-store; rebase onto develop after #34 merges.

Changes

  • app/src/update.rs: ureq GET of the latest GitHub release, semver compare vs CARGO_PKG_VERSION, 24h throttle, install-method detection (Homebrew / Scoop / curl-manual via current_exe path). Unit-tested.
  • app/src/ui/app-window.slint: floating bottom-right banner (version + upgrade hint + Update + dismiss).
  • app/src/main.rs: launch check off the UI thread (skipped in mock), gated by update_check, persists throttle timestamp up front; banner callbacks (open release page / dismiss).
  • app/Cargo.toml: ureq, semver, open.

Test plan

  • cargo test -p rdbs --bin rdbs update (version compare, throttle, install-method mapping).
  • make lint / workspace tests green.
  • Depends on ci: publish release binaries to Homebrew tap and Scoop bucket #33 so real releases exist to compare against.
  • Manual: point at a higher release → banner appears; click Update → correct action per install method.

mulhamna added 2 commits July 11, 2026 01:37
Floating bottom-right banner shown when update-available is set, with the
new version, an install-method-specific upgrade hint, an Update button that
opens the release page, and a dismiss control. Rust wiring follows.
On launch (not mock mode), once per day when the update-check setting is on,
GET the latest GitHub release on a background thread, compare it with semver
to the compiled version, and if newer show the reminder banner. The upgrade
hint is chosen from how the binary was installed (Homebrew, Scoop, or curl/
manual via std::env::current_exe path inspection); clicking Update opens the
release page. The throttle timestamp is persisted up front on the UI thread
since the Rc settings store cannot move into the worker.
@mulhamna mulhamna merged commit 8e126ff into feat/app-settings-store Jul 10, 2026
9 checks passed
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