Skip to content

Upgrade to local-first Gmail plus alias manager#17

Open
hoangsvit wants to merge 1 commit into
devfrom
codex/upgrade-gmail-alias-toolkit-to-local-first-manager
Open

Upgrade to local-first Gmail plus alias manager#17
hoangsvit wants to merge 1 commit into
devfrom
codex/upgrade-gmail-alias-toolkit-to-local-first-manager

Conversation

@hoangsvit

Copy link
Copy Markdown
Member

Motivation

  • Turn the extension into a local-first, website-aware Gmail plus alias manager that helps users generate, save, manage and autofill Gmail plus aliases per site without any backend, tracking, or account.
  • Provide reliable domain normalization, category detection, and multiple alias formats so suggested aliases are meaningful and reusable per-website.
  • Support robust autofill (including React/Vue/Angular controlled inputs), right-click context menus, a management dashboard, import/export, quality scoring, and a clear privacy notice.

Description

  • Added typed data model and settings: src/types/alias.ts and src/types/settings.ts, and a local storage schema with STORAGE_KEYS and migration helpers in src/utils/storage.ts.
  • Implemented domain utilities, normalization and site detection in src/utils/domain.ts, and auto-category detection in src/utils/categoryDetector.ts.
  • Built alias generation and validation in src/utils/aliasGenerator.ts with splitEmail, sanitizeAliasTag, buildPlusAlias, and generateAliasSuggestions (domain, category-domain, domain-date, domain-random, optional purpose).
  • Implemented autofill helpers that work with framework-controlled inputs in src/utils/autofill.ts and wired content script to use it in entrypoints/content.ts.
  • Added Gmail filter helpers in src/utils/gmailFilter.ts and alias quality scoring in src/utils/qualityScore.ts with the mandatory privacy warning that plus aliases do not hide the real address.
  • Added small helpers src/utils/date.ts and src/utils/random.ts and storage operations in src/utils/storage.ts (save, touch, update status, delete, migrate) that store everything in chrome.storage.local.
  • Reworked popup UI (entrypoints/popup/App.tsx + entrypoints/popup/App.css) into a website-aware popup with current-site detection, manual mode, suggested aliases, previous-alias display, Save/Copy/Autofill actions, dashboard view, settings view, dark mode via CSS variables, import/export JSON and CSV, Gmail filter helper, status flags, and toasts.
  • Reworked background/context-menu flow (entrypoints/background.ts) to support right-click actions: insert suggested alias, copy suggested alias, use previous alias, and generate random alias while preserving legacy history badge behavior.
  • Kept compatibility with existing features: multi-account/legacy base-email fallback, recent history/statistics, favorites, and existing content-script fillEmail message (now handled alongside autofillAlias).
  • Updated manifest/packaging metadata in wxt.config.ts and package.json to reflect the new product positioning and to add minimal necessary permissions (storage, tabs, activeTab, clipboardWrite, contextMenus).

Testing

  • Type check: yarn compile (runs tsc --noEmit) passed in this environment.
  • Build: yarn build could not be executed here because the WXT binary was not available in the environment (command not found: wxt), so a full extension bundle was not produced here (environment limitation).
  • Install: yarn install could not fully restore network dependencies in this environment due to package fetch HTTP 403 responses, so dependency fetch failed and prevented running the full wxt build locally in CI for this run.
  • No automated lint script was run as the repo does not define lint in package.json in this environment; manual code fixes were applied until tsc passed.

Codex Task

@qodo-code-review

Copy link
Copy Markdown

Qodo reviews are paused for this user.

Troubleshooting steps vary by plan Learn more →

On a Teams plan?
Reviews resume once this user has a paid seat and their Git account is linked in Qodo.
Link Git account →

Using GitHub Enterprise Server, GitLab Self-Managed, or Bitbucket Data Center?
These require an Enterprise plan - Contact us
Contact us →

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant