# 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.