Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
12f4d2f
fix: preserve active account domain in website aliases
hoangsvit Jul 29, 2026
596ee9f
test: cover Google Workspace alias domains
hoangsvit Jul 29, 2026
511f183
fix: ignore cross-account website aliases
hoangsvit Jul 29, 2026
8e4c8a4
chore: add one-shot Workspace history patch
hoangsvit Jul 29, 2026
8f83b4c
chore: add one-shot Workspace fix workflow
hoangsvit Jul 29, 2026
8abcb6d
fix: enable one-shot Workspace patch workflow
hoangsvit Jul 29, 2026
4c13406
fix: isolate Workspace inline aliases
github-actions[bot] Jul 29, 2026
2efd275
fix: validate base email before generating suggestions
hoangsvit Jul 29, 2026
33fa0a4
test: harden Workspace alias regression coverage
hoangsvit Jul 29, 2026
d99587d
refactor: isolate inline account history loading
hoangsvit Jul 29, 2026
7458d65
test: cover inline Workspace history isolation
hoangsvit Jul 29, 2026
3a47e42
chore: add one-shot inline history service patch
hoangsvit Jul 29, 2026
a031d5b
chore: add one-shot inline history service workflow
hoangsvit Jul 29, 2026
301e063
refactor: use inline history service
github-actions[bot] Jul 29, 2026
c1248e5
test: cover malformed inline history storage
hoangsvit Jul 29, 2026
5a81788
chore: add one-shot mock return type patch
hoangsvit Jul 29, 2026
aebca33
chore: add one-shot mock return type workflow
hoangsvit Jul 29, 2026
b70a116
test: type popup utility mock factory
github-actions[bot] Jul 29, 2026
7c71b38
test: cover inline history storage failures
hoangsvit Jul 29, 2026
63c969f
Merge pull request #87 from ePlus-DEV/fix/preserve-workspace-alias-do…
hoangsvit Jul 29, 2026
114434d
release: bump version to 1.3.3
hoangsvit Jul 29, 2026
236c888
chore: add one-shot v1.3.3 changelog script
hoangsvit Jul 29, 2026
4eceb5e
chore: add one-shot v1.3.3 changelog workflow
hoangsvit Jul 29, 2026
162daa6
docs: add v1.3.3 changelog
github-actions[bot] Jul 29, 2026
31f2a22
chore: add one-shot extension changelog patch
hoangsvit Jul 29, 2026
608ca57
chore: add one-shot extension changelog workflow
hoangsvit Jul 29, 2026
1e4c3e4
chore: retain v1.3.3 release version
hoangsvit Jul 29, 2026
9545d59
chore: normalize package metadata formatting
hoangsvit Jul 29, 2026
6a0b0f2
release: add v1.3.3 extension changelog
github-actions[bot] Jul 29, 2026
06298a9
chore: restore package trailing newline
hoangsvit Jul 29, 2026
a8ef1af
refactor: extract extension changelog data
hoangsvit Jul 29, 2026
503b2d6
test: validate extension changelog data
hoangsvit Jul 29, 2026
862cedd
chore: add one-shot changelog extraction patch
hoangsvit Jul 29, 2026
c45194f
chore: add one-shot changelog extraction workflow
hoangsvit Jul 29, 2026
11f8d6e
chore: keep release branch active
hoangsvit Jul 29, 2026
e20fe7d
fix: keep package metadata aligned with dev
hoangsvit Jul 29, 2026
59b2adb
chore: normalize release package metadata
hoangsvit Jul 29, 2026
875befa
chore: preserve package formatting
hoangsvit Jul 29, 2026
b0d1e79
fix: import changelog types from data module
hoangsvit Jul 29, 2026
8b3271e
refactor: separate extension changelog data
github-actions[bot] Jul 29, 2026
a260291
Merge pull request #88 from ePlus-DEV/release/v1.3.3-workspace-alias-fix
hoangsvit Jul 29, 2026
ae6327a
fix: harden scoped inline history parsing
hoangsvit Jul 29, 2026
e760053
test: cover malformed scoped inline history
hoangsvit Jul 29, 2026
45e2ff9
test: cover changelog comparator and reset state
hoangsvit Jul 29, 2026
eba34e5
docs: clarify account-aware alias service behavior
hoangsvit Jul 29, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 4 additions & 34 deletions entrypoints/content/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import {
} from "src/utils/inlineSiteSettings";
import { t } from "../../lib/i18n";
import { USER_GUIDE_URL } from "src/utils/externalLinks";
import { loadInlineAccountHistory } from "src/services/inlineHistoryService";
import {
getPreviousAliasForWebsite,
generateSuggestionsForWebsite,
Expand Down Expand Up @@ -710,40 +711,9 @@ function createPopup(
if (!historyList) return;

try {
// Use the same account that was used to generate this popup's aliases.
const historyKey = getAccountStorageKey(
data.activeEmail,
"gmail_alias_recent",
);
const favoritesKey = getAccountStorageKey(data.activeEmail, "favorites");

const storage = (await browser.storage.local.get([
historyKey,
favoritesKey,
"gmail_alias_recent",
"favorites",
])) as Record<string, unknown>;
// Older installations may still have history under the global key.
const history = (storage[historyKey] ??
storage.gmail_alias_recent ??
[]) as Array<{
email: string;
timestamp: number;
}>;
currentHistory = history
.filter((item) => item && typeof item.email === "string")
.slice()
.sort((a, b) => b.timestamp - a.timestamp);
const favorites = (storage[favoritesKey] ?? storage.favorites ?? []) as
| Array<{ email?: string } | string>
| undefined;
currentFavorites = Array.isArray(favorites)
? favorites
.map((favorite) =>
typeof favorite === "string" ? favorite : favorite.email,
)
.filter((email): email is string => Boolean(email))
: [];
const accountHistory = await loadInlineAccountHistory(data.activeEmail);
currentHistory = accountHistory.history;
currentFavorites = accountHistory.favorites;

if (historyTag) {
const selectedTag = historyTag.value;
Expand Down
165 changes: 5 additions & 160 deletions entrypoints/popup/components/Settings.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,11 @@ import {
parseDisabledInlineSites,
} from "src/utils/inlineSiteSettings";
import { openUserGuide } from "src/utils/externalLinks";
import {
CHANGELOG,
type ChangelogChange,
type ChangelogEntry,
} from "../data/changelog";

interface SettingsProps {
isOpen: boolean;
Expand Down Expand Up @@ -61,17 +66,6 @@ interface ConfirmationRequest {
resolve: (confirmed: boolean) => void;
}

interface ChangelogChange {
type: "Added" | "Changed" | "Fixed";
items: string[];
}

interface ChangelogEntry {
version: string;
date: string;
changes: ChangelogChange[];
}

const DEFAULT_SETTINGS: AppSettings = {
customPresets: [],
maxHistory: 20,
Expand All @@ -83,155 +77,6 @@ const DEFAULT_SETTINGS: AppSettings = {

const TOAST_DURATION = 2000;

const CHANGELOG: ChangelogEntry[] = [
{
version: "1.3.2",
date: "2026-07-24",
changes: [
{
type: "Added",
items: [
"Added generated-manifest scope verification with regression coverage for Chrome and Firefox-style permissions",
],
},
{
type: "Changed",
items: [
"Aligned WXT development and production URL-scope handling",
"Restricted development builds to the configured site allowlist while preserving all-site production support",
],
},
{
type: "Fixed",
items: [
"Restored inline popup availability in production builds",
"Prevented unrelated content scripts and broad development URL patterns from passing manifest validation",
],
},
],
},
{
version: "1.3.1",
date: "2026-07-20",
changes: [
{
type: "Added",
items: [
"Added Edge and Opera release packages with multi-browser installation guidance",
"Added an interactive product tour and richer landing-page previews",
],
},
{
type: "Changed",
items: [
"Improved active email handling across the popup, inline helper, and context menus",
"Optimized inline popup behavior and displayed the active base email",
],
},
{
type: "Fixed",
items: [
"Improved user feedback when disabling the inline helper or saving aliases",
"Fixed context-menu caching, history loading, injected icon cleanup, and development-site configuration",
],
},
],
},
{
version: "1.3.0",
date: "2026-07-13",
changes: [
{
type: "Added",
items: [
"Added website-aware alias suggestions based on the current hostname",
"Added an email input helper with inline icons, suggestion popups, live previews, and explicit Use actions",
"Added previous-alias navigation and an information panel explaining supported rules and local-only storage",
"Added expanded statistics metrics and Russian and Turkish translations",
"Added a product landing page with automated GitHub Pages deployment",
],
},
{
type: "Changed",
items: [
"Enhanced the context menu with dynamic, website-specific alias suggestions",
"Updated the History tab to show aliases across websites and store history per email account",
"Improved popup navigation, layout, styling, and alias selection behavior",
"Reorganized the content script and colocated its email helper styles",
],
},
{
type: "Fixed",
items: [
"Preserved email input width and flex layout when injecting the helper icon",
"Improved helper popup positioning and hover behavior to prevent accidental closing",
"Hid the Tags statistics tab when there is not enough data for a useful chart",
"Hardened content rendering against client-side cross-site scripting",
"Resolved code quality, localization, and build workflow issues",
],
},
],
},
{
version: "1.2.0",
date: "2026-07-03",
changes: [
{
type: "Added",
items: [
"Added Tailwind CSS v4, shadcn, and beUI motion components",
"Added Action Swap, Animated Badge, Bouncy Accordion, Theme Toggle, Tooltip, and Table integrations",
"Added dark mode toggle in the popup header",
"Added locale key coverage tests for all supported languages",
],
},
{
type: "Changed",
items: [
"Redesigned popup, settings, generator tabs, Gmail tricks, history table, and changelog UI with a unified beUI style",
"Reworked Recent Aliases into a compact non-scrolling table with fixed action buttons",
"Improved dark mode contrast, spacing, hover states, tooltips, and responsive popup layout",
"Moved theme switching out of Settings and into the main popup header",
"Updated all supported locales with the new UI strings",
],
},
{
type: "Fixed",
items: [
'"Copy All" no longer undercounts statistics for generated aliases',
"Settings/QR modals no longer render outside the popup bounds",
"Tab key now moves focus normally instead of being hijacked for @gmail.com autocomplete",
"Fixed missing imports and old component references after replacing legacy UI components",
"Fixed table overflow and hidden row action buttons in alias history",
"Fixed untranslated/fallback strings in the new UI",
],
},
],
},
{
version: "1.1.0",
date: "2025-12-30",
changes: [
{
type: "Added",
items: [
"Gmail alias generation with plus addressing",
"Preset management",
"Keyboard shortcuts",
"Statistics tracking",
],
},
{ type: "Changed", items: ["Updated dependencies"] },
{ type: "Fixed", items: ["Bug fixes and improvements"] },
],
},
{
version: "1.0.0",
date: "2025-12-30",
changes: [{ type: "Added", items: ["Initial release"] }],
},
];

interface SettingsPanelProps {
settings: AppSettings;
saveSettings: (settings: AppSettings) => Promise<void>;
Expand Down
Loading