You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Dedicated Drag Subsystem: Introduced HomebaseBookmarkDragController as the dedicated first-party bookmark drag-and-drop controller.
Grid Drag Extraction: Extracted SortableJS grid drag-and-drop initialization, lifecycle management, and drop processing from src/new-tab.js.
Folder Tab Drag Extraction: Extracted folder tab reordering, boundary index calculations, and drag styling from src/new-tab.js.
Monolith Complexity Reduction: Reduced src/new-tab.js by over 690 lines (~37.7% reduction during Cycle #12), removing complex event binding and state tracking.
Improved Maintainability: Separated drag lifecycle management from startup orchestration while preserving backward-compatible integration bridges.
Added
Bookmark Drag Controller Subsystem: Created src/newtab/bookmarks/bookmark-drag-controller.js to serve as canonical owner of all drag interactions.
Centralized SortableJS Lifecycle: Clean instantiation, destruction, class toggling, and fallback configuration for grid and folder tab sortables.
Dedicated Grid & Tab Drag Handling: Modular drop routing for grid reordering, moving into folders/tabs, and folder tab positioning.
Unified Drag State Management: Centralized isGridDragging and isTabDragging state flags with backward-compatible window accessors.
Raycast Pointer Tracking & Hover Locking: Extracted pointer movement raycasting with a 250ms folder hover lock to prevent tile jitter.
Improved
Cleaner Startup Architecture: New-tab initialization now delegates drag configuration through clean controller initialization.
Decoupled Architecture: Strict separation between UI rendering in �ookmark-grid-controller.js, drag physics in �ookmark-drag-controller.js, and data access in �ookmark-tree-service.js.
Reliable Folder Tab Reordering: Smoother tab movement animations and active tab auto-scrolling via HomebaseBookmarkTabsScroll.
Synchronized Virtualizer State: Virtualizer array updates (syncVirtualizerMove and
eorderVirtualizerItems) cleanly invoke canonical methods with zero duplicate mutation logic.
Fixed
Nested Folder Drop Resolution: Fixed a critical subfolder drag shadowing bug where bookmark tiles dropped into subfolder tabs or back buttons referenced stale root parent nodes.