docs: add auto-update implementation plan and rescope roadmap
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
1 parent
33d0d179e0
commit
fac189a22b
4 files changed
+266
-28
No files matched your search
+10
-27
@@ -7,37 +7,20 @@ Completed work is recorded in [CHANGELOG.md](CHANGELOG.md), not here.
|
||||
|
||||
User-facing functionality that is not blocked on a framework or platform gap.
|
||||
|
||||
### Update check from GitHub releases
|
||||
### Auto-update from GitHub releases
|
||||
|
||||
Releases are published as GitHub Releases (tags like `v0.12.0`, built by
|
||||
Releases are published as GitHub Releases (tags like `v1.0.4`, 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.
|
||||
version exists — they have to open the releases page by hand.
|
||||
|
||||
Add an update check that queries the GitHub Releases API
|
||||
(`GET /repos/mixeme/gosentry/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.
|
||||
Ship opt-in update checks and one-click install for the portable archives:
|
||||
semver compare against `app.Version`, signed downloads, replace the running
|
||||
executable, and restart. Settings shows status in the About section; no 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 repo used for
|
||||
releases is [`mixeme/gosentry`](https://github.com/mixeme/gosentry) and 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.
|
||||
Implementation is **design-first** (UI on a stub, then backend). Phases,
|
||||
security, and platform details live in
|
||||
[AUTO_UPDATE_PLAN.md](AUTO_UPDATE_PLAN.md).
|
||||
|
||||
### Import/export jobs as a cron table
|
||||
|
||||
|
||||
Reference in new issue
Block a user