- History stack with Back/Forward (goBack/goForward)
- historyIndex + navigatingHistory flag for correct stack management
- Toolbar buttons: ← (back) and → (forward) before Up button
- Alt+Left / Alt+Right and Ctrl+[ / Ctrl+] keyboard shortcuts
- Future path trimmed on new navigation (forward state discarded)
- Duplicate paths not pushed to stack
- Refresh and direct loadEntries don't pollute history
- ArrowUp/Down: move selection by one item
- Shift+ArrowUp/Down: extend selection range
- Ctrl+ArrowUp/Down: scroll viewport without changing selection
- Home/End: jump to first/last item (Shift to extend)
- PageUp/PageDown: jump by one viewport height
- All navigation keys get preventDefault()
- Existing Enter/Delete/F2/Ctrl+A preserved
- Ctrl+click: toggle single file selection
- Shift+click: range select from last clicked to current
- Ctrl+A: select all visible entries
- Click on empty space: deselect all
- Bulk trash: delete all selected files via Promise.allSettled
- Open/Rename disabled when multiple selected; Trash enabled for bulk
- Refactored: selectedPath (string) → selectedPaths (hash map)
- Feature 1: Right-click context menu with actions (Open, Rename, Duplicate,
Cut, Copy, Trash) and empty-space shortcut for new files
- Feature 3: Custom confirmModal instead of window.confirm(), styled overlay
+ modal with danger mode for trash operations
- Feature 4: Duplicate with smart collision resolution — finds first free
name (copy), (copy 2)... up to 100 attempts using api.files.metadata()
- plugin.json: all emoji icons replaced with "flask" (matches Icon.svelte name)
- statusBar label: "🧪 All Tests Pass" → "[OK] All Tests Pass"
- frontend/src/index.js: emoji in header replaced with '◉' circle
- badgeRow was created with 3rd arg to div(className, children) which was ignored
- Fix: div('', [badge]) wraps badge properly so Frontend Bundle Loaded text renders