Skip to content

v0.4.1

Choose a tag to compare

@RaditPasya RaditPasya released this 07 Oct 06:34
· 8 commits to main since this release

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.
  • pull now 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 -d unless you force it, and a refusal is reported instead of silently dropped.

Hardened

  • Every git command now runs under a deadline. A hung git status or pull (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.
  • esbuild moved 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 install now works on pnpm 11 (the workspace allowlist held placeholder values); the pnpm version is pinned via packageManager.
  • MINIFY=0 produces readable output for link: development.

Full diff: v0.4.0...v0.4.1