feat: per-site profile overrides with compact popup redesign#220
Merged
bartekplus merged 6 commits intomasterfrom Feb 25, 2026
Merged
feat: per-site profile overrides with compact popup redesign#220bartekplus merged 6 commits intomasterfrom
bartekplus merged 6 commits intomasterfrom
Conversation
- Fixed a bug in content_script.ts where changing the suggestion profile from popup to inline per-site would not detach the popup event listeners properly, swallowing the Tab key presses. To fix this, this.tributeManager is only nullified after this.disable() successfully detaches old helpers. - Added an e2e test verifying tab completion behavior after a site profile override.
- Redesigned popup UI from scratch using CSS Grid to eliminate scrollbars constraints - Adopted a cleaner, native 'macOS Control Center' inspired minimalist visual style - Restructured site profile options into a neatly aligned, space-efficient list - Refactored bottom footer actions into an icon-based flex toolbar - Updated popup.ts to dynamically translate data-i18n-title attributes for icon tooltips - Adjusted Puppeteer end-to-end tests to accommodate CSS selector and structure changes
…ostname messaging
- Extract handleToggleActiveLangCommand to background helper - Add promisifiedSendMessage utility - Parallelize sendToAllTabs in TabMessenger - Fix Firefox tab query issue in background - Refactor popup.html UI and add support links - Update tests and apply formatting
The handleToggleActiveLangCommand function calls tabMessenger.getActiveTabHostname() which was added in a recent refactor, but the test mock was missing this method. This caused all CMD_TOGGLE_FT_ACTIVE_LANG tests to silently fail.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Add per-site profile overrides — allowing users to customize prediction language, number of suggestions, and inline-vs-popup mode on a per-domain basis — along with a refreshed compact popup UI inspired by macOS Control Center.
Changes
🎯 Per-Site Profile Overrides (core feature)
siteProfiles.tsshared module — domain normalization, profile validation (clamping, deduplication), and CRUD helpers (getSiteProfileForDomain,setSiteProfileForDomain,removeSiteProfileForDomain)siteProfiles.js) — full management UI for creating, editing, and deleting per-site profiles with live domain validationCMD_GET_SITE_PROFILE/CMD_SET_SITE_PROFILE/CMD_REMOVE_SITE_PROFILEmessage handlers;PresageHandler.runPredictionnow accepts per-site overrides fornumSuggestions{}🎨 Compact Popup Redesign
data-i18n-titletooltip translation support🐛 Bug Fixes
tabspermission tracking with cross-browserCMD_GET_HOSTNAMEcontent-script messaging, fixing Firefox shortcut toggles🔧 Refactoring
handleToggleActiveLangCommandinto a dedicated background helperpromisifiedSendMessageutility inutils.tssendToAllTabsinTabMessengerfor better performancegetActiveTabIdabstractionTesting
siteProfiles.test.tsbackground.routing.test.tspresageHandler.test.jsnumSuggestionsoverride, clamping, zeroMigration.test.tspuppeteer-extension.test.tsFiles Changed
25 files changed, +2,581 / −311