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.