record_type: issue

namespace: firefox-share-as-qr

title: Build Firefox QR share extension

description:
Firefox WebExtension (MV3) that adds a toolbar button. Clicking the button opens a popup that renders a QR code of the current tab's URL so the user can quickly share the page to a phone/another device.

Constraints:
- Manifest v3, Firefox 109+
- No remote scripts (MV3 forbids); QR library is vendored
- No build step required for MVP
- Use kazuhikoarase qrcode-generator (MIT) as bundled JS

Trigger: toolbar button only (no context menu in MVP).

Acceptance: installing the extension via about:debugging shows a toolbar icon. Clicking it on any http(s) page opens a popup with a scannable QR code of that page's URL.

status: open

issue_type: epic

acceptance:
- Load as temporary add-on via about:debugging works without errors
- Clicking the toolbar icon on any normal page shows a scannable QR code
- QR encodes the active tab's full URL
- No network requests made by the extension
- LICENSE/attribution for vendored QR library present


record_type: event

event_type: created

new: Build Firefox QR share extension

new: open

new:
Firefox WebExtension (MV3) that adds a toolbar button. Clicking the button opens a popup that renders a QR code of the current tab's URL so the user can quickly share the page to a phone/another device.

Constraints:
- Manifest v3, Firefox 109+
- No remote scripts (MV3 forbids); QR library is vendored
- No build step required for MVP
- Use kazuhikoarase qrcode-generator (MIT) as bundled JS

Trigger: toolbar button only (no context menu in MVP).

Acceptance: installing the extension via about:debugging shows a toolbar icon. Clicking it on any http(s) page opens a popup with a scannable QR code of that page's URL.

new: epic

new:
- Load as temporary add-on via about:debugging works without errors
- Clicking the toolbar icon on any normal page shows a scannable QR code
- QR encodes the active tab's full URL
- No network requests made by the extension
- LICENSE/attribution for vendored QR library present

title: Build Firefox QR share extension


title: Scaffold MV3 manifest and project layout

description:
Create the WebExtension manifest.json (MV3) with:
- name, version, description, manifest_version: 3
- browser_specific_settings.gecko.id and strict_min_version (>= 109.0)
- action with default_popup, default_title, default_icon
- icons (16/32/48/96/128)
- no host_permissions; tabs activeTab is enough

Also lay out the directory: popup/ for the popup HTML/CSS/JS, icons/, vendor/ for third-party JS, LICENSE, README.

issue_type: task

acceptance:
- manifest.json validates (web-ext lint passes)
- about:debugging → Load Temporary Add-on succeeds without warnings
- Toolbar icon appears


new:
Create the WebExtension manifest.json (MV3) with:
- name, version, description, manifest_version: 3
- browser_specific_settings.gecko.id and strict_min_version (>= 109.0)
- action with default_popup, default_title, default_icon
- icons (16/32/48/96/128)
- no host_permissions; tabs activeTab is enough

Also lay out the directory: popup/ for the popup HTML/CSS/JS, icons/, vendor/ for third-party JS, LICENSE, README.

new: Scaffold MV3 manifest and project layout

new: task

new:
- manifest.json validates (web-ext lint passes)
- about:debugging → Load Temporary Add-on succeeds without warnings
- Toolbar icon appears


title: Vendor qrcode-generator library and add attribution

description:
Vendor kazuhikoarase's qrcode-generator (MIT) into vendor/qrcode.js as a single self-contained file. Add the MIT LICENSE text in vendor/LICENSE.qrcode-generator. Reference upstream version/commit in a comment header for traceability.

Upstream: https://github.com/kazuhikoarase/qrcode-generator (MIT)

acceptance:
- vendor/qrcode.js present and standalone (no imports)
- vendor/LICENSE.qrcode-generator present
- Top-of-file comment notes upstream and version


new:
- vendor/qrcode.js present and standalone (no imports)
- vendor/LICENSE.qrcode-generator present
- Top-of-file comment notes upstream and version

new: Vendor qrcode-generator library and add attribution

new:
Vendor kazuhikoarase's qrcode-generator (MIT) into vendor/qrcode.js as a single self-contained file. Add the MIT LICENSE text in vendor/LICENSE.qrcode-generator. Reference upstream version/commit in a comment header for traceability.

Upstream: https://github.com/kazuhikoarase/qrcode-generator (MIT)


title: Build popup UI and wire QR rendering

description:
Implement popup/popup.html + popup/popup.css + popup/popup.js:
- Query active tab URL via browser.tabs.query({active: true, currentWindow: true})
- Render QR using vendored qrcode-generator into an <img> (data: URL via canvas) or SVG
- Show the URL underneath (truncated/elided) and a Copy button
- Handle long URLs gracefully (auto-bump QR error correction / version)
- Handle privileged pages (about:, view-source:) by showing a friendly message
- Respect prefers-color-scheme (light/dark)

acceptance:
- Opening the popup on https://example.com shows a scannable QR
- Long URLs (e.g. >1kB) still render or show a clear error
- about:* page shows 'cannot share this page' message
- Copy URL button copies to clipboard
- Layout works at 360px popup width and is keyboard-accessible


new: Build popup UI and wire QR rendering

new:
- Opening the popup on https://example.com shows a scannable QR
- Long URLs (e.g. >1kB) still render or show a clear error
- about:* page shows 'cannot share this page' message
- Copy URL button copies to clipboard
- Layout works at 360px popup width and is keyboard-accessible

new:
Implement popup/popup.html + popup/popup.css + popup/popup.js:
- Query active tab URL via browser.tabs.query({active: true, currentWindow: true})
- Render QR using vendored qrcode-generator into an <img> (data: URL via canvas) or SVG
- Show the URL underneath (truncated/elided) and a Copy button
- Handle long URLs gracefully (auto-bump QR error correction / version)
- Handle privileged pages (about:, view-source:) by showing a friendly message
- Respect prefers-color-scheme (light/dark)

title: Build popup UI and wire QR rendering


title: Add extension icons

description:
Provide icons at 16, 32, 48, 96, 128 px (PNG). For MVP, a simple QR-glyph or 'QR' badge is fine. Source SVG should live in icons/source.svg; PNGs generated from it.

If image generation isn't possible in the agent environment, commit a placeholder PNG plus the SVG source and note in the README that icons are TODO.

acceptance:
- icons/icon-{16,32,48,96,128}.png exist
- manifest references them
- about:debugging shows the icon, not the default puzzle piece


new: Add extension icons

new:
Provide icons at 16, 32, 48, 96, 128 px (PNG). For MVP, a simple QR-glyph or 'QR' badge is fine. Source SVG should live in icons/source.svg; PNGs generated from it.

If image generation isn't possible in the agent environment, commit a placeholder PNG plus the SVG source and note in the README that icons are TODO.

new:
- icons/icon-{16,32,48,96,128}.png exist
- manifest references them
- about:debugging shows the icon, not the default puzzle piece

title: Add extension icons


title: README and packaging instructions

description:
Write a short README with:
- What the extension does (one paragraph + screenshot placeholder)
- Install for development: about:debugging → 'Load Temporary Add-on' → pick manifest.json
- Packaging: 'bunx web-ext build' produces a signable .zip (web-ext is the standard Mozilla tool; bunx avoids global install)
- License and attribution for vendored QR library
- Privacy note: the extension makes no network requests

acceptance:
- README.md explains install + dev workflow
- Attribution for qrcode-generator present


new: open

new: README and packaging instructions

new:
Write a short README with:
- What the extension does (one paragraph + screenshot placeholder)
- Install for development: about:debugging → 'Load Temporary Add-on' → pick manifest.json
- Packaging: 'bunx web-ext build' produces a signable .zip (web-ext is the standard Mozilla tool; bunx avoids global install)
- License and attribution for vendored QR library
- Privacy note: the extension makes no network requests

new:
- README.md explains install + dev workflow
- Attribution for qrcode-generator present

title: README and packaging instructions


event_type: updated

old: open


title: Build popup UI and wire QR rendering


title: Build popup UI and wire QR rendering


title: Add extension icons


title: Add extension icons


title: Build popup UI and wire QR rendering


title: Add extension icons


title: README and packaging instructions


title: README and packaging instructions


status: closed

closed_reason: Manifest + project layout verified working in Firefox


event_type: closed

new: closed


closed_reason: qrcode-generator vendored, MIT LICENSE shipped, attribution in README


title: Build popup UI and wire QR rendering

closed_reason: Popup renders QR for active tab, privileged-URL guard works, Copy URL works


title: Build popup UI and wire QR rendering


title: Add extension icons

closed_reason: Single SVG icon used at all sizes; toolbar icon shows correctly


title: Add extension icons


title: README and packaging instructions

closed_reason: README documents install, build, package, AMO, privacy, layout; LICENSE added


title: README and packaging instructions


title: Build Firefox QR share extension

closed_reason: MVP shipped and user-verified working; v0.1.0 committed


title: Build Firefox QR share extension