Handoff: Firefox-only CD fixes (ADR-0004)¶
Date¶
2026-07-12 (documenting work committed 2026-07-11, f3cc2c8 and 0a939b0)
Summary¶
Closed the two mechanical gaps ADR-0004 identified in the Firefox-only continuous-delivery pipeline: the self-hosted desktop updates.json had no live endpoint, and the manifest version was a hardcoded literal independent of package.json. Both are fixed. Scope and browsers are unchanged (Firefox MV2, desktop + Android, from one signed XPI).
Key changes¶
- Single-source version.
wxt.config.tsnow readsversionfrompackage.jsonat config load instead of a hardcoded literal, so the release tag gate, the packaged manifest, the signed XPI filename, andupdates.jsoncannot diverge. Verified a default build emits thepackage.jsonversion with noupdate_url. - Serve
updates.jsonvia a stable redirect.SELF_HOSTED_UPDATE_URLpoints athttps://github.com/animeshkundu/youtube-audio/releases/latest/download/updates.json, which GitHub serves as a stable redirect to the newest release asset. Chosen over a GitHub Pages deploy so there is no extra hosting step and no race with the MkDocs deploy. - ADR-0004 (
docs/adrs/0004-multi-browser-cd.md) records the audit, the Firefox-only decision, and the implementation status of these fixes.
Testing¶
Documented in ADR-0004's implementation-status section: default build emits the correct version and no update_url; the release workflow uploads the XPI before the manifest to avoid a 404 window.
Superseding note¶
The self-hosted update_url / updates.json production path is now being superseded by the AMO-only model in ADR-0006: production moves to the AMO listed channel under a single ID ({580efa7d-66f9-474d-857a-8e2afc6b1181}) with AMO as the sole update authority for desktop and Android, and no update_url on the listed build. The single-source-version fix stays relevant; the self-hosted desktop update machinery is retired for production (it may still drive a desktop-only beta if ever wanted).
Next steps¶
- Rewire the release/publish workflows to the ADR-0006 model: drop
SELF_HOSTED_UPDATE_URLfrom the production build and add an on-demandworkflow_dispatchAMO listed-publish job. Owner-gated. - Wire the permanent add-on ID
{580efa7d-66f9-474d-857a-8e2afc6b1181}acrosswxt.config.ts,release.yml, and the benchADDON_IDpin in lockstep (currently theyoutube-audio@localplaceholder).