What
A Chrome/Firefox MV3 browser extension that lets users right-click any product page and save it directly to a Noted wishlist. Authentication uses a long-lived API key rather than the session cookie.
Why
Reduces friction of adding gift ideas discovered while browsing — no need to copy-paste URLs or open the app separately.
Milestone / Phase
Phase 10 — v1.6.0
Branch
phase-10-browser-extension
Tasks
Backend — API Keys
Backend — REST Endpoint
Backend — Server Actions (Settings UI)
UI — Settings Page
Extension (new extension/ directory)
Distribution
Release
What
A Chrome/Firefox MV3 browser extension that lets users right-click any product page and save it directly to a Noted wishlist. Authentication uses a long-lived API key rather than the session cookie.
Why
Reduces friction of adding gift ideas discovered while browsing — no need to copy-paste URLs or open the app separately.
Milestone / Phase
Phase 10 — v1.6.0
Branch
phase-10-browser-extensionTasks
Backend — API Keys
api_keystable (id,user_id,key_hashbcrypt,label,last_used_at,created_at)nk_<uuid>(plain key shown once on creation, only hash stored)npm run db:pushBackend — REST Endpoint
POST /api/v1/wishlist-items— acceptsBearer nk_...token, validates againstapi_keyshash, creates wishlist item201with new item JSON,401on bad key,422on validation errorAccess-Control-Allow-Origin: *only to/api/v1/routes (not session routes)Backend — Server Actions (Settings UI)
createApiKey(generate, hash, return plain key once)revokeApiKeyUI — Settings Page
/settings→ API Keys section: list keys (label + last used), create + revoke controlsExtension (new
extension/directory)manifest.json(MV3, Chrome + Firefox compatible)POST /api/v1/wishlist-itemswith stored API keyDistribution
npm run build:extensionproduces.zipfor Chrome Web Store sideload + Firefox.xpi.zipand.xpito GitHub Release for v1.6.0Release
CHANGELOG.mdpackage.jsonto1.6.0