feat(menubar): manual "Check for updates" in the About box (T-47 P1)
Help → About gains a "Check for updates" button that fetches the latest GitHub release, semver-compares it to clideVersion, and shows the result inline: up-to-date, available (with a tappable link to the release notes), or a clear error. clide's first and only outbound HTTP call — a plain GET with no user data, run ONLY on this explicit tap, never on a launch path or a timer. So it's D-64-clean with no amendment; a background/periodic poll stays deferred (would need the narrow opt-in amendment first). The fetch is injectable so no test touches the network. compareSemver handles 2.3.10 > 2.3.9 and ranks pre-releases below their release. Closes T-492 (P1); the release-channel CI for downloadable signed packages is T-491, and download/ apply (P2/P3) depend on it. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -6,6 +6,11 @@
|
||||
"about.commit": { "translation": "Commit" },
|
||||
"about.built": { "translation": "Built" },
|
||||
"about.repository": { "translation": "Repository" },
|
||||
"about.checkUpdates": { "translation": "Check for updates" },
|
||||
"about.checking": { "translation": "Checking…" },
|
||||
"about.upToDate": { "translation": "You're on the latest version." },
|
||||
"about.updateAvailable": { "translation": "clide {version} is available — release notes" },
|
||||
"about.updateFailed": { "translation": "Couldn't check for updates" },
|
||||
"licenses.heading": { "translation": "Bundled dependencies" },
|
||||
"licenses.unavailable": { "translation": "Licenses unavailable." },
|
||||
"licenses.loading": { "translation": "Loading…" },
|
||||
|
||||
@@ -6,6 +6,11 @@
|
||||
"about.commit": { "translation": "Commit" },
|
||||
"about.built": { "translation": "Gebouwd" },
|
||||
"about.repository": { "translation": "Repository" },
|
||||
"about.checkUpdates": { "translation": "Controleer op updates" },
|
||||
"about.checking": { "translation": "Bezig met controleren…" },
|
||||
"about.upToDate": { "translation": "Je hebt de nieuwste versie." },
|
||||
"about.updateAvailable": { "translation": "clide {version} is beschikbaar — releaseopmerkingen" },
|
||||
"about.updateFailed": { "translation": "Kon niet op updates controleren" },
|
||||
"licenses.heading": { "translation": "Meegeleverde afhankelijkheden" },
|
||||
"licenses.unavailable": { "translation": "Licenties niet beschikbaar." },
|
||||
"licenses.loading": { "translation": "Laden…" },
|
||||
|
||||
Reference in New Issue
Block a user