- 6cd39c9: Add a configurable menu bar toggle so keyboard-driven reviews can reclaim one row of terminal space.
- 8945272: Add an
enableClaudeIntegrationhome-manager option that links the packagedhunk-reviewskill into~/.claude/skills, so Nix users get the Claude Code review skill without manual setup. - d2be4e7: Add an
enableJujutsuIntegrationhome-manager option that sets hunk as the jujutsu pager and switchesui.diff-formatterto:gitso jj emits diffs hunk can render.
- 0a3cc06: Add an Agent menu dialog that shows and copies the Hunk review skill setup prompt.
- d7f1558: Upgrade OpenTUI to 0.4.2 and Bun to 1.3.14 for renderer, input, and platform fixes.
- 675104f: Fix a transient bottom-edge scroll clamp: mounted diff sections now always render their agent-note rows, so the review stream's painted height matches its measured layout height and over-scrolling at the bottom can no longer snap short by the height of an offscreen note.
- 65a2740: Highlight
.mtsand.ctsfiles as TypeScript instead of plain text. - ed8268a: Stop treating Escape as a global quit shortcut; use
qto quit while preserving Escape for dialogs and focused controls. - 290ebcd: Keep live review sessions from being pruned after the machine wakes from sleep.
- ae57101: Avoid transient mixed-color frames when previewing or accepting themes from the theme selector.
- 916cd8a: Preserve added and removed diff row tints when transparent background mode is enabled in the interactive TUI.
- d4b829f: Fix session daemon auto-launch on Windows: the compiled binary's virtual
B:\~BUN\...entrypoint was mistaken for a script path and passed to the relaunched daemon as a bogus argument, sohunk sessioncommands never found a live session.
- 8ffe0ba: Refresh Hunk's built-in theme system, default to
github-dark-default, and simplify theme selection around onethemesetting withView -> Themes…/topening the selector. Custom themes can inherit from any built-in theme withcustom_theme.basewhile keeping explicit syntax color overrides, and removed theme ids such asgraphiteandpaperremain accepted as compatibility aliases.
- 4bef148: Allow session comment cleanup commands to remove human
cnotes:comment rmacceptsuser:*note ids, andcomment clear --include-user/--allclears user notes alongside live agent comments. - 48b97ac: Adopt Changesets for release-note fragments so pull requests can avoid conflicting
CHANGELOG.mdedits. - c0cf637: Prevent standalone Hunk binaries from loading
bunfig.tomlfiles from the caller's working directory. - c28c266: Improve React review-stream responsiveness by reducing offscreen file mounting work while preserving adjacent highlight prefetching.
- 3906f39: Honor explicit split layout mode in static pager output for captured hosts like LazyGit.
- 8ffe0ba: Improve generated theme contrast checks for built-in themes, including diff rows, metadata, chrome, and fallback token colors.
- 59fcdbb: Require an explicit click or keyboard action before previewing a theme from the theme selector, while keeping mouse-wheel navigation available inside the selector.
0.15.3 - 2026-06-13
- Added release benchmark snapshots and a release workflow gate that blocks publishing when committed benchmark results show material performance regressions, with auditable accepted-regression records for intentional release tradeoffs.
- Fixed Windows launches from Cygwin, Git Bash, and WSL-style VCS paths by normalizing Unix-style repo roots before reusing them as subprocess working directories or filesystem roots.
- Fixed release staging so benchmark comparison artifacts are not mistaken for platform binary artifacts.
- Reduced hunk-navigation latency and memory growth on large reviews by keeping diff geometry memoized when the selected hunk changes.
- Reduced scroll and hunk-navigation latency on large reviews by avoiding repeated separator measurement and preserving memoized offscreen/visible diff rows across viewport updates.
- Reduced main diff pane rendering work on large reviews by virtualizing offscreen file sections behind exact-height spacers.
- Reduced sidebar rendering work on many-file reviews by virtualizing offscreen file rows behind exact-height spacers.
0.15.2 - 2026-06-13
- Coalesced scroll-position React updates into a single per-frame read and shifted background syntax highlighting from microtasks to timers, so rapid wheel or held-arrow scrolling no longer produces visible jank from per-delta state updates or per-file highlight work starving input and render callbacks.
- Honored
--transparent-bgandtransparent_backgroundin static pager output, so captured pager hosts like LazyGit let translucent terminal backgrounds through on context lines, gutters, and hunk headers while added/removed rows keep their tinted backgrounds. - Kept menu dropdowns and the help dialog on the base theme in transparent-background mode so popups remain readable over translucent terminals.
- Resolved
hunk session ... --repo <path>selectors to the containing repo root before matching, so--repo .(and any path inside the tree) targets the live session from a subdirectory instead of reporting no match.
0.15.1 - 2026-06-09
- Restored the
ekeyboard shortcut and menu hint for opening the selected file in$EDITOR. - Added timeouts to
hunk session *daemon capability and API calls so unresponsive daemons fail instead of hanging indefinitely. - Updated OpenTUI so light and dark theme backgrounds render without the native renderer's color shift.
- Prevented Git watch polling from taking optional index locks while discovering untracked files.
0.15.0 - 2026-06-08
- Show the newly selected theme in the footer status bar when switching themes.
- Added Catppuccin Frappé and Macchiato as built-in themes, completing the four official Catppuccin flavors.
- Added a Zenburn built-in theme (
theme = "zenburn"), a warm low-contrast dark palette inspired by Jani Nurminen's original Zenburn. It also works as a custom-themebase. - Added a
--transparent-bgflag andtransparent_backgroundconfig option for translucent terminal setups. - Added Sapling VCS backend support for
hunk diffandhunk show.
- Preserved split diff alignment when horizontal scrolling starts inside a wide CJK or emoji character.
- Made diff syntax highlighting follow the active theme: keyword, function, number, and variable token colors now resolve to the configured theme's palette (including custom themes) in both light and dark, instead of passing through Pierre's built-in syntax colors.
- Expanded the diff window during rapid scrolling bursts so large reviews keep real rows mounted instead of falling back to blank placeholder regions.
0.14.1 - 2026-06-01
- Added local performance benchmarks for Hunk startup, loading, rendering, highlighting, navigation, memory, and optional competitor comparisons.
- Fixed npm installs by pinning
@pierre/diffsto the version Hunk is tested with instead of allowing the broken1.2.6release.
0.14.0 - 2026-05-26
- Added Catppuccin Latte and Mocha as built-in themes.
- Added mouse-drag text selection in diff views that copies selected rows to the system clipboard via OSC 52. A
View > Copy decorationstoggle (orcopy_decorationsconfig) controls whether the clipboard includes diff rails, gutters, and file headers or only the changed code. - Added inline expansion for collapsed unchanged file content. Click an unchanged-context row (
▾ N unchanged lineswhen expandable, otherwise the static··· N unchanged lines ···form) or pressewhile a hunk is selected to reveal surrounding and trailing file lines without leaving the review. The affordance is shown only for input modes that have reachable source content (hunk diff,show,stash show, file-pairdiffanddifftool, untracked files); rawhunk patchinput still renders as before. Failed and in-flight loads surface a one-line status ("Loading…", "Could not load N unchanged lines") on the gap row. Expanded context rows use the same syntax highlighting as the surrounding diff. - Surfaced the agent author name in inline notes and the matching agent popover so multi-agent reviews are readable at a glance, with a fallback title when an annotation has no author.
- Preserved Git log ANSI colors when
hunk pagerfalls back to a plain-text terminal pager for non-diff output. - Capped inline context expansion source reads so huge files cannot freeze or exhaust memory when expanding unchanged lines.
- Hardened plain-text pager startup so
PAGERandHUNK_TEXT_PAGERshell metacharacters are passed as arguments instead of being evaluated implicitly. - Hardened terminal rendering against control-sequence injection from diffs, file paths, notes, expanded context, copied selections, and pager fallback output.
- Fixed custom theme configuration so Catppuccin Latte and Mocha can be used as base themes.
- Fixed inline note draft shortcuts so copy chords such as Ctrl-C and Ctrl-Shift-C no longer trigger note actions.
- Fixed split diff alignment for wide CJK and emoji characters by measuring rendered text in terminal cells.
- Fixed Ctrl-S saving for inline notes when tmux sends CSI-u keyboard input.
- Stabilized hover backgrounds on wrapped diff rows so add-note affordances do not shift row layout.
- Restricted session reloads so daemon commands cannot read files outside the initial Hunk session root.
- Fixed static pager output so captured pager hosts honor configured custom themes.
- Made
hunk pagerpass non-diff text through in captured pager and dumb-terminal contexts instead of spawningless. - Fixed the
eeditor shortcut when Hunk is launched from a repo subdirectory. - Fixed VCS auto-detection so a Git repository nested under a parent Jujutsu workspace still uses Git mode by default.
0.13.1 - 2026-05-19
- Hid the inline add-note affordance while scrolling and only show it after deliberate pointer movement, so it no longer flickers during review navigation.
- Hardened the local session daemon against browser-originated requests by validating Host and Origin headers and requiring JSON content types for API posts.
- Disabled the generic broker HTTP API by default so Hunk's supported session API is the only app-daemon command surface.
- Bounded session daemon memory by capping HTTP request body and websocket message sizes and rejecting session registrations with oversized file, hunk, patch, comment, or note payloads.
0.13.0 - 2026-05-18
- Added an
eshortcut to open the selected diff file in$EDITOR. - Added
gandGkeyboard aliases for jump-to-top and jump-to-bottom review navigation. - Added session-persistent user-authored inline notes with
cto draft/save notes. - Added
hunk session comment list --type <live|all|ai|agent|user>so agents can read human-authored notes through the comment workflow.
- Clarified inline note draft actions by labeling buttons as
Save (^S)andCancel (Esc).
- Fixed draft note focus handling so app shortcuts resume after the note textarea blurs without discarding the draft.
- Preserved the resolved auto theme across
--watchrefreshes instead of falling back to the default dark theme. - Fixed standalone release archive generation so staged npm package directories are not accidentally packaged as GitHub release assets.
0.12.1 - 2026-05-14
- Included the bundled Hunk review skill in standalone prebuilt release archives so
hunk skill pathworks after extracting a tarball or installing via Homebrew.
0.12.0 - 2026-05-12
- Added Homebrew tap release automation and Homebrew-aware startup update notices.
- Added lower-level
hunkdiff/opentuiprimitives for embedding Hunk diff bodies, file headers, file navigation, and multi-file review streams in custom OpenTUI apps. - Added row windowing for large single-file reviews to keep huge diffs responsive.
- Added Windows x64 prebuilt artifact publishing to the release workflow.
- Added native Windows support in the README, contributor guide, and local build/install scripts.
- Added Nix flake app outputs for
nix run, a namedhunkpackage output, and package validation. - Added automatic light/dark theme detection from the terminal background when
theme = "auto"is enabled.
- Ported
build:npm,build:bin, andinstall:binfrom bash scripts to cross-platform Bun-runnable TypeScript so native Windows contributors no longer need Git Bash to build or install Hunk locally.
- Fixed the prebuilt npm package so the
hunkdiff/opentuiexport and bundled type declarations are included. - Fixed the npm package so
npx hunkdiffand other package-name executable lookups resolve to the Hunk CLI. - Made
hunk pageremit static highlighted diff output for captured pager contexts like LazyGit, and pass diff input through unchanged when stdout is non-interactive. - Fixed Ctrl-Z job-control suspend support so Hunk can suspend and resume cleanly from a terminal.
- Fixed Windows compatibility issues across paths, packaging, and tests.
- Fixed Ctrl-C in the live TUI so it exits through Hunk's full shutdown path instead of only destroying the renderer.
0.11.1 - 2026-05-10
- Auto-detect Jujutsu checkouts for
hunk diffandhunk show, while keeping explicitvcsconfig overrides.
- Fixed large tracked and untracked file handling so very large diffs render as skipped placeholders instead of slowing startup or overflowing the JavaScript call stack.
- Fixed Git patch parsing for
diff.noprefix=trueinput so Hunk restores parser-safea/andb/prefixes without mangling real paths. - Fixed
hunk pagerparsing for Git diffs emitted withdiff.mnemonicPrefix=trueso file paths do not keepi/,w/,c/,1/, or2/side prefixes. - Fixed review scrolling so viewport updates are coalesced and no longer risk a render loop.
- Fixed agent comment hunk ranges so context lines from hunk headers remain part of the target range.
- Fixed untracked-file reviews in repositories with external diff tools configured by passing
--no-ext-diff. - Fixed diff geometry for hunks with multiple agent notes so offscreen notes no longer skew scrolling measurements.
0.11.0 - 2026-05-09
- Added
vcs = "jj"support, enablinghunk diff [revset]andhunk show [revset]. - Added a pager-mode sidebar file tree that can be revealed with the existing
sshortcut while keeping pager chrome hidden by default.
- Fixed
git log -pand multi-commitgit show -pinputs so patch parsing ignores commit metadata instead of emitting Pierre parser warnings. - Fixed cross-file hunk navigation so near-boundary jumps keep the selected file pinned and backward jumps reveal the target hunk instead of the file top.
- Fixed the View menu sidebar checkmark so it follows whether the responsive layout is actually rendering the sidebar.
0.10.0 - 2026-04-21
- Added agent comment counts in the sidebar so review-heavy files stand out at a glance.
- Added
hunk daemon serveas the standard daemon entrypoint and published reusable session-broker packages plus an OpenTUI diff component for integrators.
- Included untracked files when
hunk diff <ref>still compares against the live working tree, while keeping explicit revset diffs commit-to-commit only.
- Enabled mouse scrolling in pager mode.
- Balanced Pierre word-level highlights so split-view inline changes stay visible without overpowering the surrounding diff row.
- Smoothed mouse-wheel review scrolling so small diffs stay precise while sustained wheel gestures still speed up.
- Fixed Shift+mouse-wheel horizontal scrolling so it no longer leaks a one-line vertical scroll in some terminals.
0.9.5 - 2026-04-21
- Added a Modem sponsor block to the README.
0.9.4 - 2026-04-14
- Added
hunk skill pathto print the bundled Hunk review skill path for direct loading or symlinking in coding agents.
- Show a one-time startup notice after version changes that points users with copied agent skills to
hunk skill path.
- Restored execute permissions for packaged prebuilt binaries so
npm install -g hunkdiffworks on root-owned installs withoutspawnSync … EACCESfailures.
0.9.3 - 2026-04-13
- Normalized rename-only diff paths so pure renames keep one clean
old/path -> new/pathheader in the review UI (#194). - Stripped Pierre's empty-line newline placeholder spans so blank additions and deletions keep stable line numbers and diff row backgrounds (#201).
0.9.2 - 2026-04-11
- Fixed a bottom-edge scrolling regression where short last files could snap back and make upward navigation feel stuck near the end of the review stream (#196).
0.9.1 - 2026-04-10
- Preserved viewport position when switching layouts (#185).
- Skipped binary file contents in reviews while keeping binary files visible in the review stream with a
Binary file skippedplaceholder (#187).
0.9.0 - 2026-04-08
- Added
hunk session review --jsonfor full live-session exports (#160). - Added horizontal code-column scrolling in review mode (#171).
- Added batch apply support for live session comments in agent review flows (#179).
- Pinned the current file header while scrolling the review pane (#141).
- Made session comment focus opt-in instead of forcing comment focus by default (#163).
- Synced active hunks to mouse scrolling and prefetched diff highlighting for smoother navigation (#172).
- Hid zero-value sidebar file stats to reduce visual noise (#174).
- Updated in-app controls help (#175).
- Sped up syntax-highlight row building in large diffs (#177).
- Reported the packaged version correctly in installed builds (#153).
- Fixed stale syntax highlights after reloads (#146).
- Fixed diff pane header popping while scrolling (#159).
- Avoided failures on untracked directory symlinks (#169).
- Aligned top-menu dropdowns correctly (#176).
- Restored live escape handling in PTY flows (#173).
- Kept viewport-follow selection from jumping unexpectedly (#181).
- Refreshed stale daemons after upgrades (#178).
- Rejected incompatible live session registrations more clearly (#180).
- Versioned daemon compatibility separately from other MCP behavior (#183).
0.8.1 - 2026-03-30
- Enabled
jandkstep scrolling in normal mode (#131). - Aligned inline note rendering more cleanly beside diffs (#137).
0.8.0 - 2026-03-29
- Added file state indicators to the sidebar (#128).
- Added comment-to-comment navigation in review mode (#126).
- Included TTY and tmux pane metadata in session lists (#90).
- Added worktree-based session path targeting for session workflows (#118).
- Included untracked files in working-tree diff reviews by default (#123).
- Surfaced a transient startup update notice (#127).
- Refined top-level CLI help text and files/filter focus copy (#129, #121).
- Fixed keyboard help dialog row overlap (#122).
- Fixed scrollbar click-drag behavior on large diffs (#120).
0.7.0 - 2026-03-25
- Grouped sidebar files by folder for easier navigation in large reviews (#99).
- Added
Ctrl+D,Ctrl+U, andShift+Spacenavigation shortcuts (#102). - Added an auto-hiding vertical scrollbar to the diff pane (#93).
- Added Linux arm64 prebuilt package release support (#107).
- Prevented scroll snapback when using
Space,PageUp, andPageDown(#105). - Normalized Git patch prefixes for parser compatibility (#106).
- Kept selected hunks fully visible when they fit in the viewport (#108).
- Fixed wrap-toggle redraws while preserving the viewport anchor (#110).
0.6.1 - 2026-03-24
- Added watch mode for reloadable reviews (#91).
- Fit menu dropdowns to their contents (#92).
- Shut down idle session daemons more reliably (#96).
- Coordinated singleton daemon launches to avoid duplicate background processes (#97).
- Exited the daemon process cleanly after shutdown (#98).
0.6.0 - 2026-03-23
- Added a reload shortcut for the current diff (#83).
- Optimized large split review streams for faster rendering on big changesets (#76).
- Replaced footer hints with a keyboard help modal (#88).
- Restored daemon autostart for prebuilt npm binaries (#84).
- Detected
$bunfsvirtual paths correctly when autostarting daemons from Bun binaries (#86). - Published prerelease tags to npm under the
betadist-tag (#87).
0.5.1 - 2026-03-23
- Improved friendly Git command errors during CLI failures (#75).
0.5.0 - 2026-03-22
- Added inline agent notes across the review stream, including side-aware range guides (#69, #62).
- Added a session control CLI and a session reload command for live review workflows (#50, #63).
- Added live session comment lifecycle support and expanded the MCP tool surface (#53, #39).
- Added curated Hunk demo examples (#34).
- Made Graphite the default theme (#57).
- Switched review rendering and scroll math to an explicit review row plan for more consistent navigation (#64, #67).
- Hardened MCP daemon lifecycle handling and kept the daemon loopback-only by default (#36, #46).
- Refreshed stale MCP daemons when using the session CLI (#55).
- Let the sidebar shortcut force the files pane open (#56).
0.4.0 - 2026-03-22
- Auto-started the MCP daemon when needed for live sessions (#29).
- Added arrow-key line-by-line scrolling (#30).
0.3.0 - 2026-03-22
- Added prebuilt npm binary packaging and automated npm releases, including beta tag support (#12, #14, #15).
- Added a top-level
hunk --versioncommand (#19). - Added the experimental MCP daemon for live Hunk sessions (#22).
- Always showed the diff rail while dimming inactive hunks (#16).
- Decoupled sidebar visibility from layout toggles (#18).
- Stopped auto-saving view preferences to config files (#13).
- Used a supported Intel macOS runner for prebuilt release builds (#17).
- Preserved executable permissions for prebuilt binaries after installation.
0.2.0 - 2026-03-20
- Fixed npm installs by bundling Bun in published packages (#11).
0.1.0 - 2026-03-20
- Initial Hunk release with split and stack terminal diff views built around a single multi-file review stream.
- Added git-style
diffandshowcommands plus a general Git pager wrapper for drop-in review workflows. - Added persistent Hunk view preferences across sessions (#7).
- Added agent-note anchored review flows, responsive layouts, and display toggles for line numbers, wrapping, and hunk metadata.
- Simplified the review chrome around a menu bar, lighter borders, and diff-focused headers.
- Improved startup and large-review performance with windowed diff sections and deferred syntax highlighting.
- Stabilized diff repainting, active-hunk scrolling, syntax highlighting, pager stdin patch handling, and terminal cleanup on exit.