Conversation
Author
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.

Overview
This pull request introduces two major features designed to streamline tab management and navigation in dense tab workflows:
F8keyboard shortcut and diacritics-insensitive, tokenized fuzzy search.Both features are cleanly rebased onto the latest
v5branch, maintain complete architectural alignment with Sidebery's core services, and come with extensive unit test suites.1. Domain Trees (Inline Accordion Grouping)
Managing dozens of open tabs across multiple projects often results in scattered tabs from the same websites. Domain Trees solves this by dynamically grouping related tabs into collapsible accordion hierarchies without requiring manual tab sorting or separate navbar panels.
Key Architectural Concepts
Inline Placeholder Architecture:
isGroup,group.html?dt=<domain>).Automatic 2+ Tab Threshold:
Category Meta-Roots & Daughter Sub-Trees:
Media: youtube.com | youtu.be | spotify.com | soundcloud.com).Panel Rule Precedence:
Accidental Closure Protection:
Automatic Garbage Collection & Circuit Breaker:
2. Bottom Tab Search Bar
Quickly locating tabs in a deep vertical hierarchy without taking hands off the keyboard is essential. The Bottom Tab Search bar provides a fast search interface positioned right at the base of the tabs panel.
Key Features & Design
Ergonomics & F8 Shortcut:
bar.search.bottom.vue).F8immediately focuses the search bar; pressingEscor clearing the input restores full tree view.subPanelTabSearchsetting in the Settings page.Diacritics-Insensitive & Tokenized Search Engine:
search.fg.tabs.tsnormalizes Unicode diacritics / accents (normalizeDiacritics).WeakMap Query Caching:
WeakMap<Tab, { key: string, str: string }>to cache normalized search strings per tab, eliminating redundant string allocations during rapid typing strokes.3. Testing & Verification
vitest runpasses 100% across all 11 test suites (127 passed tests).src/services/tabs.fg.domain-trees.test.ts(38 comprehensive unit tests covering creation, deduplication, meta-roots, dissolution, and cleanup).src/services/search.fg.tabs.test.ts(5 unit tests covering tokenization, accent normalization, and container matching).npm run lint.types(vue-tsc --noemit) completes with 0 errors.npm run buildcompletes cleanly using Vite with no bundling issues.Commits Included
feat(domain-trees): add types and default settings for domain treesfeat(domain-trees): implement domain trees service, test mocks, and design specsfeat(domain-trees): integrate domain trees with tab event handlers and lifecyclefeat(domain-trees): add UI interactions and styling for domain tree group tabsfeat(domain-trees): add domain trees configuration in settings page and form controlstest(domain-trees): add comprehensive unit test suite for domain treeschore: rm internal docs and update .gitignorefeat(search): add normalizeDiacritics utility and unit testsfeat(search): add subPanelTabSearch setting and localization stringsfeat(search): implement tokenized, diacritics-insensitive, cached tab search enginefeat(sidebar): add bottom search bar component with F8 shortcut integrationchore: add .thinktank to .gitignoremerge: integrate feat/domain-trees and feat/bottom-tab-search