Skip to content

feat(updates): check for a newer release by default (ADR-0178 points 2-4) - #485

Open
jeffcrouse wants to merge 2 commits into
mainfrom
feat/adr-0178-server-update-check
Open

jeffcrouse wants to merge 2 commits into
mainfrom
feat/adr-0178-server-update-check

Conversation

@jeffcrouse

@jeffcrouse jeffcrouse commented Nov 11, 2026 •

Copy link
Copy Markdown
Member

The server half of ADR-0178 (#484), points 2 to 4. The Apple banner follows in familiar-apple.

  • The check is on by default. update_channel defaults to "beta". Every release so far is a beta, and the stable channel skips betas.
  • One-time migration. _save writes every field, so a stored "disabled" records no choice (the NAS holds one nobody picked). On load, it becomes "beta" once. The server logs it, including how to turn it off, and sets update_channel_migrated so it never repeats. A server turned off after that stays off. The flag is kept out of the settings view, and SettingsResponse lists its fields explicitly, so there's no schema change.
  • deploy-dev writes VERSION=dev into the container. The NAS reported v0.2.0-beta22 while running newer code, and with the check on it would have announced beta24.
  • Docs: docs/CONFIGURATION.md gets "Update checks" (what is sent: a plain GET for the public release list; GitHub sees the IP) and where to turn it off: Server → Health → Release channel. The changelog has an Unreleased entry.

Tests: tests/test_update_channel_default.py, 8 tests. Run against the old app_settings.py (with only the constant added), 4 fail: the default, the migration, a pre-setting file and the marker. The other 4 are guards that a channel someone chose is never undone. Backend suite: 2674 passed, 18 skipped. make check passes.

ADR-0178's Implementation block records this half.

🤖 Generated with Claude Code

jeffcrouse and others added 2 commits November 11, 2026 17:31
…2-4)

- update_channel defaults to "beta" (every release so far is a beta, and
  "stable" skips them).
- A stored "disabled" is migrated once: settings.json saved every default,
  so it records no choice. Logged, remembered in update_channel_migrated
  (kept out of the settings view), and never repeated, so a server turned
  off afterwards stays off.
- deploy-dev writes VERSION=dev into the container, so a hand-deployed
  server skips the check instead of announcing a release older than its
  code (the NAS reported beta22 while running newer code).
- CONFIGURATION.md says what is sent and how to turn it off.

No API schema change: SettingsResponse lists its fields.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@jeffcrouse
jeffcrouse force-pushed the feat/adr-0178-server-update-check branch from a9c6bab to 90d3c01 Compare November 11, 2026 22:31

This branch has not been deployed

No deployments
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