docs: roadmap item for GitHub release update check
Plan a best-effort, opt-in check that compares app.Version against the latest published GitHub Release and surfaces an "Update available" hint in Settings — detection and notification only, no auto-download. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -5,6 +5,37 @@ Completed work is recorded in [CHANGELOG.md](CHANGELOG.md), not here.
|
|||||||
|
|
||||||
## Open Items
|
## Open Items
|
||||||
|
|
||||||
|
### Update check from GitHub releases
|
||||||
|
|
||||||
|
Releases are published as GitHub Releases (tags like `v0.12.0`, built by
|
||||||
|
`.github/workflows/release.yml`), but the app never tells the user a newer
|
||||||
|
version exists — they have to check the releases page by hand.
|
||||||
|
|
||||||
|
Add an update check that queries the GitHub Releases API
|
||||||
|
(`GET /repos/<owner>/<repo>/releases/latest`) for the latest published tag,
|
||||||
|
strips the leading `v`, and compares it against `app.Version`. When a newer
|
||||||
|
version is available, surface it non-intrusively — an "Update available"
|
||||||
|
line in Settings (next to the existing version/build info) with a hyperlink
|
||||||
|
to the release page, not a modal on launch.
|
||||||
|
|
||||||
|
Design notes / open questions:
|
||||||
|
|
||||||
|
- *Opt-in and offline-safe.* The check makes a network request, so it must be
|
||||||
|
off by default (or clearly consented) and never block startup. Failures
|
||||||
|
(offline, rate-limited, API change) should be silent — no error dialogs for a
|
||||||
|
best-effort convenience feature.
|
||||||
|
- *Version comparison.* Compare semantic versions, not strings, so `0.12.0`
|
||||||
|
reads as newer than `0.9.0`. A tiny semver comparator in `app` (or a small
|
||||||
|
dependency) avoids lexical bugs.
|
||||||
|
- *Where the check lives.* Keep it in the `app` layer behind the Service so the
|
||||||
|
UI only renders the result, and cache the last check so opening Settings
|
||||||
|
repeatedly does not spam the API (unauthenticated GitHub allows 60 req/h).
|
||||||
|
- *Repo coordinates.* The primary remote is Gitea; the GitHub owner/repo used
|
||||||
|
for releases must be wired in explicitly (constant or build-time value) rather
|
||||||
|
than derived from `origin`.
|
||||||
|
- *No auto-download.* Scope is detection and notification only; installing the
|
||||||
|
update stays a manual click-through to the release page.
|
||||||
|
|
||||||
### Window size persistence *(frozen)*
|
### Window size persistence *(frozen)*
|
||||||
|
|
||||||
Window size is currently **not** saved on quit or close. Saving was disabled
|
Window size is currently **not** saved on quit or close. Saving was disabled
|
||||||
|
|||||||
Reference in New Issue
Block a user