Hunk 0.15
June 8, 2026 – June 13, 2026 · 4 releases
Hunk 0.15 adds release benchmark gating, Sapling support, and a run of rendering performance work that keeps large reviews responsive on Windows and Unix alike.
npm i -g hunkdiff@0.15.3Hunk 0.15 is no longer the current release. See the latest release or all install options.
Related documentation
Section titled “Related documentation”Releases in this series
Section titled “Releases in this series”0.15.3
Section titled “0.15.3”June 13, 2026
- 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
Section titled “0.15.2”June 13, 2026
Changed
Section titled “Changed”- 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
Section titled “0.15.1”June 9, 2026
- 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
Section titled “0.15.0”June 8, 2026
- 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.