Move the extension ID off the dev-placeholder .local TLD onto the
naiv.no domain so it's stable for any future AMO submission. AMO locks
the ID for the lifetime of a listing, so this needs to happen before
the first listed upload — not after.
No code or behaviour changes. Lint and package both still clean
(0 errors / 0 warnings, ~12 KB zip).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
User-verified that v0.1.0 works in Firefox. Closing out the work with
the documentation the AMO reviewer (and future-me) will want:
- LICENSE: MIT, 2026. Matches the vendored qrcode-generator's license.
- package.json: add license + author fields.
- README: add "What you see" UX section, supported-versions rationale,
ASCII build-flow diagram, AMO publishing notes, permissions table.
- popup/popup.js: top-of-file block documenting the popup lifecycle and
the dataflow from active-tab URL to rendered QR.
- scripts/build.mjs: top-of-file block explaining why dist/ is the
single source of truth for what ships.
Closes dogcat epic firefox-share-as-qr-35mw and all 5 child tasks
(see .dogcats/issues.jsonl).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
MV3 WebExtension that turns the active tab's URL into a scannable QR
code via a toolbar popup. The popup runs locally — no network requests.
Build pipeline: `bun build` bundles popup.js + the vendored
kazuhikoarase/qrcode-generator (MIT, pinned to 83b7e8f) into a single
~23 KB minified ESM file under dist/. web-ext operates on dist/, so
the packaged zip contains only what actually ships (~28 KB).
Scripts:
- bun run build — bundle + copy assets into dist/
- bun run lint — build + web-ext lint (0 errors / 0 warnings)
- bun run package — build + produce a signable .zip
- bun run start — build + launch Firefox with the extension loaded
Tracks dogcat epic firefox-share-as-qr-35mw and its 5 child tasks
(scaffold, vendor lib, popup UI, icons, README).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>