Add submodule management and collapsible Worktree/Tags panels #45

Merged
Christoph merged 2 commits from enhance-ui into main 2026-09-16 20:59:41 +00:00
2 Commits
Author SHA1 Message Date
Christoph af40ef413e Merge remote-tracking branch 'origin/main' into enhance-ui 2026-09-16 22:59:37 +02:00
Christoph db4e58e039 feat(ui): add collapsible Worktree and Tags panels to left sidebar
Add two new sidebar components (WorktreePanel, TagsPanel) and integrate them
into the compact left navigation layout:

- Wire up imports and rendering in App.svelte, including collapse toggles and
  resize handles for both panels. Persisted heights (localStorage) and keyboard
  resizing are supported; heights are clamped between 80 and 420px with a 140px
  default.
- Extend buildLeftSidebarRows and left-sidebar grid/template styles to include
  the new panels and reduce panel-handle thickness. Add extensive CSS for the
  compact accordion navigation, worktree and tags lists.
- Move tag and worktree management UI out of BranchPanel (remove tag props),
  and add dedicated handlers in App.svelte for the new panels.
- Refactor worktree loading: introduce a worktreeLoadId to guard async
  refreshWorktrees() calls and avoid race conditions. refreshWorktrees(path?)
  now takes an optional path and updates worktree state only when the request
  is still relevant.
- Small behavioral tweaks: stash panel default collapsed state changed to true
  and the explorer resize-handle visibility condition adjusted.

This commit only adds the UI/UX integration and local persistence for the new
panels and their resizing/refresh behavior.
2026-09-16 22:58:48 +02:00