Releases: mblode/diffhub
diffhub@0.3.0
Minor Changes
- bdc00de: Add Bun support as an alternative runtime to Node.js. The CLI now spawns the standalone server with whatever runtime launched it (
process.execPath) instead of hardcodingnode, and the startup gate accepts Bun 1.0.23+ (the version that addedimport.meta.dirname/filename, mirroring the existing Node 20.11+ floor). Theopen-in-diffhub.shlauncher detectsnodeorbunand picks a matching build command.
Patch Changes
- 08644ea: Show untracked files in local diffs by default. The CLI now exposes diff scope modes for touched, staged, unstaged, committed, and all changes, and synthesizes new-file patches for untracked files so they appear in the streamed diff and file list.
diffhub@0.2.6
Patch Changes
- 1d8822b: Fix the diff's vertical scrollbar rendering behind the content in Safari. The scroll container used a native overlay scrollbar, which WebKit paints beneath the diff's z-indexed gutter/annotation layers; it now uses a styled, reserved-gutter scrollbar that the content can't cover. Reverts the prior 0.2.5 change that targeted the wrong (per-file horizontal) scrollbar.
diffhub@0.2.5
Patch Changes
- 9be4947: Fix the diff viewer flickering constantly in Safari. The CodeView paint-nudge (a Chrome-only workaround that flicks the scroll container's opacity to force a first paint) was re-rasterizing the whole diff on every tick in WebKit; it's now skipped in Safari. Also: expand all file-tree folders by default, collapse the per-file horizontal scrollbar that rendered behind the gutter in Safari, and align the CLI favicon with the marketing site.
diffhub@0.2.4
Patch Changes
- d41c336: Stop the diff viewer from auto-refreshing. A background detector now surfaces an "Updates available" indicator on the refresh button instead of reloading the diff on its own, so the view only changes when you refresh (button or
R). Also fixed the sidebar file tree flashing on diff updates by rebuilding it only when the set of files changes.
diffhub@0.2.3
Patch Changes
-
615078d: Fix the sidebar active-file highlight landing on the file above the one you clicked.
The active-file tracker read a
topfield offgetRenderedItems()that@pierre/diffsdoes not provide, so it always fell back to the first item in the virtualized window — the file scrolled partially above the viewport. It now resolves the active file from the viewer's own scroll coordinates (getScrollTop()+getTopForItem()), selecting the section the viewport top actually sits inside, and reads geometry once per animation frame.
diffhub@0.2.2
Patch Changes
-
7634e2c: Fix the diff-viewer chrome styling in local dev and tighten the sidebar search alignment.
- The shared
@diffhub/diff-corechrome components (toolbar, switches, file list) rely on the consuming app's@sourcedirective to generate their Tailwind utilities. Turbopack's dev server does not auto-expand the bare-directory@sourceform, so package-only classes (e.g. theh-[52px]toolbar, switch dimensions) silently failed to generate innext dev, leaving the viewer unstyled. Switching@sourceto an explicit**/*.{ts,tsx}glob restores generation in dev. The production build was already correct. - The sidebar search row is now
h-[51px]so that, combined with theSidebarHeader's 1pxborder-b, it totals 52px and aligns with the StatusBar header.
- The shared
diffhub@0.2.1
Patch Changes
- 6216cf9: Fix the diff viewer occasionally rendering blank (line backgrounds only, no code) on first load until you scroll — the shared CodeView now reliably paints its first window. Internally, the diff viewer engine and chrome (status bar, file list, per-file header, sidebar) were extracted into a shared
@diffhub/diff-corepackage that also powers the new diffhub.blode.co live PR viewer.
diffhub@0.2.0
Minor Changes
-
975bef7: Migrate the diff viewer to the virtualization-first
CodeViewcomponent from
@pierre/diffs(upgraded to 1.2.4). The entire change set now renders in a
single virtualized surface that scales to thousands of files, replacing the
per-filePatchDiffloop and the hand-rolled scale layer (scroll anchoring,
min-heightpinning, IntersectionObserver activation, and deferred-render
placeholders) — all of whichCodeViewnow owns natively. Comments, split/
unified layout, theming, collapse/expand, and sidebar navigation are preserved. -
43a7524: Migrate the file-tree sidebar to the virtualization-first
FileTreefrom
@pierre/trees, replacing the hand-rolled tree (manual tree-building, folder
compaction, and per-row rendering) with a single virtualized surface that scales
to thousands of files. Git-status colouring, VS Code-style folder compaction,
comment-count badges, filter search, and scroll-driven active-file sync are
preserved and mapped onto the package's native model API.The sidebar is rebuilt to full "Diffs and Trees" parity: a toolbar (file
tree / comments-only / search), collapsible Diff Stats (F2) and System
Monitor (F3) panels driven by the existing diff stats and file-watcher status,
and a "Powered by Diffs and Trees" footer.
Patch Changes
- 1f65c95: Refine the diff toolbar: merge the "Live" status pill and refresh button into a
single status dot that doubles as force-refresh (showing a spinner while
updating), use action-convention icons for the collapse/expand and split/unified
toggles so each icon matches its tooltip, and default the sidebar to expanded on
launch.
diffhub@0.1.23
Patch Changes
- 8190a90: Add file watcher event forwarder and refresh support for the files API
diffhub@0.1.22
Patch Changes
- e231a42: Add SSE-based file watcher for live repo change detection, bulk comment clearing, and watch status indicator in the status bar