# Dewemoji Extension Notes / To-Do

## Context (Why paused)
- GCM token registration appears blocked or flaky in unpacked mode.
- Diagnostics show: token missing + "Asynchronous operation is pending".
- Likely need Web Store (unlisted) install to validate GCM/FCM end-to-end.

---

## Priority A — GCM / Token
- Verify GCM/FCM token registration in a Web Store (unlisted) install.
- Confirm sender/project ID consistency across manifest + backend.
- Add dev-mode fallback token for local testing (unpacked).
- Add clear UI guidance when token missing (ex: “Unpacked builds may not support GCM”).
- Add retry + backoff messaging for token refresh.

## Priority B — Diagnostics
- Keep diagnostics visible in settings (done).
- Add “Force token refresh” with timeout (done).
- Add copy-to-clipboard for diagnostics output.
- Show last error + timestamp (done).
- Add quick “Open service worker console” helper link (optional).

## Priority C — License & Pro
- Verify license activation/deactivation flow with real API.
- Implement `/license/deactivate` endpoint and wire client.
- Add graceful handling for license server downtime.
- Confirm Pro actions (insert/auto) are blocked for free users.

## Priority D — Insert / Auto
- Validate content script injection across common sites.
- Improve detection when no editable element exists.
- Add clearer user feedback when insert fails.

## Priority E — Search / Performance
- Confirm caching + paging behavior is correct.
- Ensure auto-load sentinel doesn’t duplicate results.
- Test daily usage cap flow (free users).

## Priority F — Tone UX
- Validate tone lock + preferred tone across sessions.
- Confirm policy list coverage vs Unicode updates.
- Accessibility checks for tone picker controls.

## Priority G — UI / UX Polish
- Improve keyboard navigation in settings.
- Add tooltips for Pro features + diagnostics.
- Ensure error banners are theme-consistent.

## Priority H — Release / Packaging
- Create unlisted Web Store listing for real-world testing.
- Document packaging flow + PEM usage for stable extension ID.
- Add release checklist (build, test, upload, verify).

## Priority I — Security / Privacy
- Verify minimum permissions in `manifest.json`.
- Document local vs sync data storage.

---

## Notes / Observations
- Unpacked installs often can’t obtain GCM tokens.
- CRX install is blocked by Chrome unless via Web Store.

