Repository navigation
v0.4.1
dsh-web-git-sidebar v0.4.1
Audit-and-hardening release. The footer dock is easier to drive, a stalled
repository can no longer wedge the panel, and the browser bundle is about half
the size.
Highlights
- Click the repo name to collapse or expand the dock. The chevron and the name are now one control instead of a 12px glyph.
- The sync icon spins while fetching instead of pulsing.
- Returning to the tab refreshes immediately, rather than showing a snapshot up to 30s old.
- The workspace picker shows workspace titles, not raw filesystem paths.
Fixed
- A spurious "Request failed, showing last known data" banner appeared on every change whenever the full panel and the footer dock were both open.
pullnow honours the same conflict / in-progress / worktree guards as switching branches, so it cannot run mid-merge.- Timed-out git reads report an error instead of parsing empty output into a plausible-looking clean repository.
- Worktree branch cleanup uses
git branch -dunless you force it, and a refusal is reported instead of silently dropped.
Hardened
- Every git command now runs under a deadline. A hung
git statusorpull(network mount, credential stall, very large repo) fails visibly instead of wedging that workspace's panel until DSH restarts. - The status poll can no longer stall permanently for every subscriber when one workspace is slow.
- Duplicate mutating requests for one workspace are coalesced (HTTP 429) rather than stacking git processes that fight over the index lock.
Smaller and faster
- Client bundle 80.3 KB → 44.4 KB raw, 17.0 KB → 13.3 KB gzipped. Host bundle −25%.
- One host round-trip per change instead of two.
- Idle background polling backs off from 30s to 60s.
- Commit rows skip offscreen paint and layout.
esbuildmoved to devDependencies, so installs no longer pull a platform-native binary they never execute.
Accessibility
- Branch picker: arrow / Home / End navigation, Escape returns focus to the trigger, click-outside closes, and the button always has an accessible name.
- The dock resize handle is focusable, arrow-operable, and exposes its value to assistive technology.
Under the hood
- New test suite — 27 tests over command deadlines, flight eviction, the polling backoff policy, and smoke tests that load the built bundles.
- New CI workflow runs typecheck plus tests on every push and pull request; release actions are pinned to commit SHAs.
pnpm installnow works on pnpm 11 (the workspace allowlist held placeholder values); the pnpm version is pinned viapackageManager.MINIFY=0produces readable output forlink:development.
Full diff: v0.4.0...v0.4.1