Releases: loerei/Taguru
Releases · loerei/Taguru
Release list
v1.0.6
Added
- Group Loading Mode (Lazy Load vs Full Load): Added a configuration option in General Settings allowing users to choose how tabs are restored when opening a saved group.
- Suspended Tab Group Restoration (Lazy Load): Restores background tabs using Chromium
discarded: trueandtitlemetadata in both current window and new window load flows, preventing tab media/video autoplay and eliminating RAM/network spikes when opening large groups (e.g. YouTube). - Tab Group Live Sync (Auto-Update): Automatically synchronizes tab changes (creating, closing, moving, updating URLs) from a dedicated window back into its saved group without requiring manual "Overwrite".
- Single-Window Lease & Session Storage Binding: Utilizes
chrome.storage.sessionto cleanly map activewindowIdtogroupIdduring the browser session, guaranteeing that only the designated primary window writes tab changes. - Pre-flight Takeover Modal & Conflict Resolution: Displays an interactive Takeover confirmation dialog when opening a group that is already live-syncing in another window, offering 3 options: Takeover, Open Detached, or Cancel.
- Sync Loop & Minimalist Status Indicator Dots: Compact status dots (glowing Blue for current window, Slate-Gray for external windows) and intuitive
Sync Loop/Sync Disabledtoggle icons. - Default Group Auto-Sync Setting: Added a configuration toggle in General Settings allowing users to choose whether newly created groups have auto-update turned on by default (defaults to OFF / Static snapshot).
- Wipe-Prevention Safety Guard: Automatically isolates empty tab states or closing transitions so groups are never accidentally wiped if a synced window is closed down to 0 tabs.
v1.0.4
Added
- Click-to-Select & Contextual Header Action Bar in Domains View: Streamlined multi-domain selection UX by removing the legacy batch mode toggle and checkboxes in favor of direct card click-to-select, and promoted the batch action controls (Move, Save, Delete, Select All, Clear) directly into the top Toolbar Header.
- Group Quick-Picker Popover (Save As New vs Add to Existing Group): Added an interactive popover menu when clicking Save on the Toolbar or domain cards, enabling users to seamlessly choose between saving domain tabs as a new group or appending them into an existing saved group with automatic duplicate URL filtering.
Fixed
- MBD Long-Distance Drag Lock Timeout (
0 moved): Replaced the rigid 3-retry counter with a reactive Lock-State Polling mechanism that continuously awaits tabstrip unlock without hardcoded timeouts, eliminating0 movedfailure drops when dragging tabs over long distances. - MBD Pre-Drag Adjacency Calculation: Fixed domain adjacency calculation to read true pre-drag domain distance directly from
domainOrderCache.keys()(Math.abs(gKeyIndex - cKeyIndex) === 1), preventing non-adjacent long-distance drags from falsely triggering the adjacent-swap branch due to mutated tabstrip arrays. - Tab Tear-off & Window Detach Guard: Added active window existence checks (
chrome.tabs.get) before moving tabs to gracefully abort MBD if a tab is torn off into a new window or closed mid-drag. - ServiceWorker Cold-Start Cache Recovery: Added automatic cache warm-up fallback in
moveDomainGroupToTabPositionwhendomainOrderCacheis empty upon ServiceWorker wake-up. - Real-Time Snapshot Trigger Source Labels: Fixed hardcoded
Manual Sort Buttonsnapshot log labels to accurately reflect event trigger origins (Auto Sort (tab-updated),Auto Sort (tab-created),Auto Re-FSO).
v1.0.3
Added
- Opening Tab View Persistence: Saved and restored the user's active view tab (
Groups,Domains, orSettings) inchrome.storage.localso opening the Popup or Side Panel automatically opens to the user's last visited view. - Extension Icon Click Behavior Selector: Added radio options in
General Settingsto choose whether clicking the extension toolbar icon defaults to opening the compact Popup (Default) window or opening the persistent Side Panel (Sidebar) viachrome.sidePanel.setPanelBehavior. - Default Open Keyboard Shortcut (
Ctrl+Shift+E/Cmd+Shift+E): Added native_execute_actionkeyboard shortcut inmanifest.jsonwith an interactive editable shortcut input inGeneral Settings(auto-detects OSCmd+Shift+Eon Mac /Ctrl+Shift+Eon Windows, supports Backspace to clear, and resets to default when left empty on blur). - Real-Time Tab Position Snapshot Logging: Added real-time tab layout snapshot logs after every sort, drag, MBD placement, and startup operation.
Fixed
- MBD Adjacency Boundary Crossing Check: Added boundary crossing validation (
didCrossBoundary) so Adjacency Swap only triggers when a tab is dropped into or across an adjacent domain, preventing drag bounce when dropped at home boundaries. - RAM Cache Map Insertion Order Reset: Added
domainOrderCache.clear()insideupdateDomainOrderCache()so JavaScriptMap.keys()accurately updates key insertion order after every tab move, eliminating stale key order lock loops. - MBD Pre-Drag RAM Cache Direction Check: Fixed single-tab domain drag bounce bug where dragging domain
A[1]down afterB[1]was miscalculated as an upward drag due to post-drag DOM tab state, causingA[1]to bounce back to the top. Implemented pre-drag index lookup indomainOrderCacheto accurately calculate drag direction. - MBD Single-Tab Domain Bypass & Split Domain Prevention:
- Fixed single-tab domain bypass in
moveDomainGroupToTabPositionso 1-tab domains execute inter-domain relocation when dropped into/across another domain. - Refined
isContiguoussplit domain detection to check if tabs before and after the moved domain belong to the same non-moved domain, preventing target domains from ever being split.
- Fixed single-tab domain bypass in
Taguru v1.0.2
What's Changed in v1.0.2
Added
- Domain Favicon Rendering: Displayed 18x18 px domain favicon icons on domain cards with automatic SVG globe fallback for missing or broken favicons.
- Horizontal Compact Domain Card Layout: Aligned tab counts horizontally on the same line as domain names, reducing domain item vertical card height.
- Real-Time FSO Domain List Synchronization: Added Chromium tab event listeners (
onMoved,onCreated,onRemoved,onUpdated) to sync theDomainsview order in real-time with actual browser tab bar positions when Auto Sort + FSO is active. - Interactive Drag & Drop Domain Re-ordering: Enabled HTML5 drag-and-drop on domain cards in the
Domainsview when Auto Sort + FSO is active, allowing users to drag domain cards to re-order the actual tab blocks in the browser tab bar in real-time. - Move Entire Domain (MBD) as Default Action: Set
Move Entire Domain (MBD)as the default drag option inDEFAULT_SORT_OPTIONSand positioned it at the top of the drag action radio group in Settings. - General Settings Section: Isolated general mouse shortcuts like
Middle-Click Domain Closeinto a dedicated standalone settings card.
Fixed
- Windows Middle-Click Autoscroll Suppression: Added
onMouseDownpreventDefault()event handling to suppress Windows native autoscroll cursor wheel icon when middle-clicking domain items. - Sub-Radio Group Layout: Fixed overlapping sub-radio buttons under
WHEN YOU DRAG A TABin Auto Sort Settings by enforcing vertical flex-column container styling.
Taguru v1.0.1
What's Changed in v1.0.1
Added
- Middle-Click Domain Close: Added optional toggle (
closeDomainOnMiddleClick, default OFF) allowing users to middle-click any domain card in Taguru to close all tabs from that website. - Enable Debug Logs & Log Controls: Added developer logging utility (
devLog()) with timestamp buffering inchrome.storage.local. Added Clear Logs, Export Logs (.txt), and Copy Logs buttons (without emojis) in Developer Options. - Refined Move By Domain (MBD) Placement Rules:
- Implemented middle-tab threshold positioning: Dropping a tab at ≥ 50% of target domain C's space places the entire moved domain G after C (
ABCGD), while dropping at < 50% places G before C (ABGCD). - Implemented adjacent domain swap rule: Dragging a tab from domain G upwards into an adjacent domain C unconditionally swaps their domain block order (
ABGC), preventing domain C tabs from ever being split.
- Implemented middle-tab threshold positioning: Dropping a tab at ≥ 50% of target domain C's space places the entire moved domain G after C (
- Startup RAM Cache Warm-Up: Added
initDomainOrderCache()in ServiceWorker startup,onInstalled, andonStartupto pre-warmdomainOrderCachein RAM before the first drag action.
Fixed
- RAM Cache Sync on Internal Drag: Fixed RAM Cache stale order bug by forcing immediate
updateDomainOrderCache(targetTabs)sync when tabs are re-ordered internally within a domain, preserving manual internal tab order across subsequent inter-domain drags.
Taguru v1.0.0
Initial public release of Taguru Extension.