feat(extension): in-app update prompt + v1.0.9 (#1489) #231

Merged
bvandeusen merged 1 commits from dev into main 2026-07-13 18:32:32 -04:00
Owner

The extension is installed per-instance from the operator's FC host, so Firefox's static update_url can't apply and updates were manual. Adds a self-hosted-friendly update surface reusing the existing public GET /api/extension/manifest ({version, latest_url, sha256}):

  • Popup banner — "Update available — vX (installed vY)" + an Update button that opens the signed XPI → Firefox's native install prompt.
  • Toolbar badge — a daily browser.alarms check flags a badge when a newer XPI is published, cleared when current. New non-prompting alarms permission.
  • Dotted-numeric version compare (1.0.10 > 1.0.9); a failed check never blocks the popup.

No backend changes. Bumped 1.0.8 → 1.0.9 so it ships (also re-signs via web-ext 10). From here on, updates surface themselves instead of a manual reinstall.

CI green on dev head d80a525: extension lint on v1.0.9 (run 2256) + full CI (run 2255).

🤖 Generated with Claude Code

https://claude.ai/code/session_01NsmJSQxnNxGgtM5Yz4GAqi

The extension is installed per-instance from the operator's FC host, so Firefox's static `update_url` can't apply and updates were manual. Adds a self-hosted-friendly update surface reusing the existing public `GET /api/extension/manifest` (`{version, latest_url, sha256}`): - **Popup banner** — "Update available — vX (installed vY)" + an **Update** button that opens the signed XPI → Firefox's native install prompt. - **Toolbar badge** — a daily `browser.alarms` check flags a `↑` badge when a newer XPI is published, cleared when current. New non-prompting `alarms` permission. - Dotted-numeric version compare (1.0.10 > 1.0.9); a failed check never blocks the popup. No backend changes. Bumped 1.0.8 → 1.0.9 so it ships (also re-signs via web-ext 10). From here on, updates surface themselves instead of a manual reinstall. CI green on `dev` head `d80a525`: extension lint on v1.0.9 (run 2256) + full CI (run 2255). 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01NsmJSQxnNxGgtM5Yz4GAqi
bvandeusen added 1 commit 2026-07-13 18:32:27 -04:00
feat(extension): in-app update prompt — popup banner + toolbar badge (#1489)
CI / lint (push) Successful in 3s
extension / lint (push) Successful in 10s
CI / frontend-build (push) Successful in 24s
CI / backend-lint-and-test (push) Successful in 39s
CI / integration (push) Successful in 3m51s
extension / lint (pull_request) Successful in 10s
d80a5255ed
The extension is installed per-instance from the operator's FC host, so Firefox's
static update_url can't apply (each instance has a different host) and updates
were fully manual. Add a self-hosted-friendly update surface that reuses the
existing public GET /api/extension/manifest ({version, latest_url, sha256}):

- lib/api.js: getExtensionManifest().
- background.js: checkForUpdateInfo() compares the instance's latest published
  version against runtime.getManifest().version (dotted-numeric compare so
  1.0.10 > 1.0.9); CHECK_UPDATE message handler; refreshUpdateBadge() sets a
  toolbar badge via browser.action; a daily browser.alarms check plus on
  startup/installed. New 'alarms' permission (non-prompting).
- popup: an 'Update available — vX' banner with an Update button that opens the
  signed XPI (web root, /api stripped like OPEN_ARTIST_PAGE) → Firefox's native
  install prompt. Never blocks the popup on a failed check.

No backend changes (endpoint already exists). Bump 1.0.8→1.0.9 so this ships;
from here on updates surface themselves instead of needing a manual reinstall.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
bvandeusen merged commit 9b5ec86222 into main 2026-07-13 18:32:32 -04:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: bvandeusen/FabledCurator#231