feat(update): add in-app update checker (GitHub releases) - #59
Open
hikaps wants to merge 1 commit into
Open
Conversation
Checks api.github.com/repos/hikaps/couchplay/releases/latest on startup (toggleable via Settings, default on) and via a manual 'Check Now' button in a new Settings 'Software Update' section. Compares versions, shows a passive notification once per launch when a stable release is newer, and guides the user per install method (flatpak / steamos / native) to re-run the README install command. App never downloads or executes anything. - UpdateChecker manager (QML_ELEMENT): parse/compare/install-method helpers, QNetworkAccessManager request with UA + Accept headers, 10s transfer timeout, silent error state - SettingsManager: persisted checkForUpdatesAutomatically (default true) - SettingsPage: status row, latest release, Check Now, auto-check toggle, per-method guidance InlineMessage with releases-page action - tests/test_updatechecker: version compare/parse/state/setting-default - appiumtests: update-section visibility guard - CMake: Qt6::Network wired for app and test targets
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.
What
In-app update check against
api.github.com/repos/hikaps/couchplay/releases/latest. No self-updater — the app only checks and informs; users update by re-running the README install command (per install method).Why
Users had no in-app way to learn a new release exists. Distribution stays GitHub releases +
install.sh; a bespoke updater would need root to replace the helper/sysext (attack surface), and Flathub is incompatible with the root-helper architecture — so a thin check + guidance is the right scope.Changes
QML_ELEMENTmanager): version normalize/compare, latest-tag JSON parse, install-method detection (/.flatpak-info,/etc/os-release ID=steamos),QNetworkAccessManagerrequest with UA +Accept: application/vnd.github+json, 10s transfer timeout, silentErrorstate (offline-safe),checkFinished(automatic, updateAvailable, latestVersion).checkForUpdatesAutomatically(default on, groupGeneral).test_update_section_visiblepresence guard.Qt6::Networkfor app + test targets.Verification
test_updatechecker+ full 18-binary suite pass in CI (ci.yml runs on this PR).GET /releases/latest→v0.4.0(= current build → app reports "up to date").develop(e2e.yml).flatpak updateis deliberately not mentioned because the bundle install has no working origin remote.install.shuntouched; if flatpak bundle reinstall over an existing install ever proves to be a no-op, switchinstall_flatpak()toflatpak install --user --or-update -y.