Skip to content

feat(update): automatic update check with a top-area notification - #180

Merged
dc0sk merged 1 commit into
mainfrom
feat/auto-update-check
Jul 27, 2026
Merged

feat(update): automatic update check with a top-area notification#180
dc0sk merged 1 commit into
mainfrom
feat/auto-update-check

Conversation

@dc0sk

@dc0sk dc0sk commented Jul 26, 2026

Copy link
Copy Markdown
Owner

Implements FR-UI-UPD-02 (recorded in #179).

What it does

  • A default-on auto_update_check preference, opt-out under Settings.
  • One update check at start-up, off the UI thread, reusing update::check_now — so FR-UI-UPD-01's never-spurious numeric comparison comes for free.
  • When a real newer release is found, a clickable ● update <version> link appears in the top status bar beside the connection indicator, opening the release page.
  • Silent otherwise — checking, up-to-date and failed show nothing.

The metered-link concern, honoured not overridden

FR-UI-UPD-01 was deliberately manual-only because a radio-control app shouldn't make unannounced outbound connections on a possibly-metered link. This feature respects that by construction: one request per launch, opt-out, and nothing shown unless there's a real update.

Verification

  • Config layer: auto_update_check defaults on and survives a save/load round-trip (test).
  • Comparison: reuses the tested is_newer (no spurious update).
  • On screen: the header link renders for an Available status; the Settings toggle is present ("Update check: ON"); and the start-up check was observed overwriting a seeded status, confirming it runs.
Header (update found) CONNECTED ● update v0.9.0 DEMO MODE…
Settings Update check: ON — check GitHub for a newer release at start-up

327 tests, clippy/fmt clean, gate green.

Branches from main (v0.8.0).

🤖 Generated with Claude Code

https://claude.ai/code/session_01KiAgfnGv746wwVBSfFkoRY

FR-UI-UPD-02, implementing the requirement recorded in the previous commit.

A default-on preference (opt-out under Settings) runs one update check at
start-up, off the UI thread, reusing the operator-initiated path
(update::check_now) - so the whole never-spurious numeric comparison from
FR-UI-UPD-01 comes for free. When a substantiated newer release is found, a
clickable "● update <version>" link appears in the top status bar beside the
connection indicator, opening the release page. It is silent otherwise:
checking, up-to-date and failed show nothing.

The metered-link caution that made FR-UI-UPD-01 manual-only is honoured by
construction rather than overridden - one request per launch, opt-out, and
nothing shown unless there is a real update.

Tested at the config layer (default-on preference that survives a save/load
round-trip) and verified on screen: the header link renders for an Available
status, the Settings toggle is present, and the start-up check was seen
overwriting a seeded status - confirming it actually runs.

327 tests.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KiAgfnGv746wwVBSfFkoRY
@dc0sk
dc0sk merged commit 0984a46 into main Jul 27, 2026
5 checks passed
@dc0sk dc0sk mentioned this pull request Jul 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant