feat: the app checks GitHub for a newer release and says so in the title bar - #44
Merged
Conversation
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…otes Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Termspace asks the GitHub releases API for a newer release at startup and once every 24 hours: one anonymous GET, nothing else sent. When one exists, a chip at the end of the title bar's left group names the version and opens the release page on click. Nothing is downloaded; installing is the user's, on both platforms, as it is today.
Dismissing the chip hides it for the run. A stable build sees only stable releases; a prerelease build sees prereleases too, and never an older stable. A version higher than anything published (a local build) reports nothing. Drafts, unparseable tags and non-github.com URLs are skipped.
updateCheck(default 1) insettings.yamlor the toggle in Settings › Updates turns the automatic check off. "Check now" in the same section runs regardless and reports inline (up to date / version available with a button to the page / GitHub unreachable). The renderer only ever receives a state and a version string; the URL stays in main. Three IPC channels:update:check,update:open-release,update:state. Not started under the self-check.update-check.ts(SemVer, candidate choice) andupdater.ts(timer, injected fetch) are pure and unit tested; the chip and the settings rows have DOM tests. Checked by hand against the live API by running a build versioned as 1.1.0-beta.3: the chip named 1.1.0-beta.4 and the settings row did the same. README, MANUAL-QA and the engineering notes cover it; in-place AppImage replacement is deferred and noted there.Generated with Claude Code