Hunk 0.21
August 30, 2026 – September 4, 2026 · 4 releases
Hunk 0.21 turns reviews into a richer agent-aware workspace with authenticated live sessions, editable threaded notes, two-revision and two-file comparisons, more responsive navigation, and a broader extension surface.
npm i -g hunkdiff@0.21.1Hunk 0.21 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.21.1
Section titled “0.21.1”September 4, 2026
Patch Changes
Section titled “Patch Changes”- Fix
hunk pagerpegging a CPU core and growing to gigabytes of memory on large color-heavy input. Restoring preserved ANSI styling rescanned and reallocated the whole document once per sequence, so agit log --graph --color=alwaysstream from a host like LazyGit took minutes of solid CPU per process and never produced output. Styling is now restored in a single pass: a 3 MB branch log pages through in well under a second. (#978) - Fix
hunk pagertruncating its output at 64 KB when a host reads it through a pipe, which cut off large documents for Git's pager contract, LazyGit, and| less. Headless commands now hand the whole document to the stdout descriptor before exiting, so a piped consumer receives every byte. (#978)
0.21.0
Section titled “0.21.0”September 2, 2026
Minor Changes
Section titled “Minor Changes”- Navigate a live review directly to a comment returned by
hunk session comment list. (#845) - Make the vertical space between files and hunks configurable. (#865)
- Add a
dimtone tohunk.registerLineHighlighterandhunk session highlight addfor fading diff text toward line backgrounds while preserving syntax highlighting token hues. (#909) - Let extensions select syntax highlighting by exact filename or basename/path glob, in addition to file extensions. (#851)
- Let extensions register generic top-level CLI command trees with raw arguments, cancellable streaming I/O, validated exit statuses, and one-time delegation into built-in Hunk commands, including a dependency-free
hunk gh 123example that fetches GitHub pull-request diffs directly. (#888) - Publish
hunk_viewedand store-backednote_changedextension lifecycle events so progress and note UIs can follow hunk navigation and agent comments. (#939) - Give opted-in extension panes the current line's
{ side, line }source address oncurrentLine, matching command selection, so a pane can follow the cursor without waiting for a keypress. (#940) - Require Node.js 22 or newer for npm installs. Standalone Hunk binaries continue to run without Node.js. (#917)
- Resize the built-in files sidebar with the terminal, showing its compact projection at medium widths and keeping split review after the sidebar hides. Extension API v12 adds
ExtensionPaneSize.fractionfor bounded body-axis fractional sizing while preserving manual overrides. (#924) - Authenticate local session producers and CLI controls with automatically discovered owner-private credentials, signed responses, scoped reconnect replacement, and bounded handshakes. Expose only minimal public daemon health, refuse unsafe PID-based replacement, and let interactive Hunk windows reconnect automatically after an incompatible incumbent becomes idle. (#933)
- Add editable inline review notes and arbitrarily nested threaded replies with mouse and keyboard actions, including reviewer dismissal of reply-free live agent notes. (#925)
- Add a pane-wide
onActivatecallback to the extension API for primary mouse presses. (#965) - Support backend-native
hunk diff <from> <to>reviews across Git, Jujutsu, and Sapling, with pinned source expansion, working-copy isolation, explicithunk diff --files <left> <right>file comparison, and structuredrangeEndpointsin extension API generation 14. (#938) - Show a fully expanded file tree when the file sidebar reaches its preferred 34-column width, and keep resize drags active while its layout changes. (#921)
Patch Changes
Section titled “Patch Changes”- Enable unchanged-context expansion in Jujutsu-backed reviews. (#890)
- Add a
/compare/section to hunk.dev with head-to-head pages for delta, difftastic, diff-so-fancy,git diff, and Plannotator, each also served as Markdown for coding agents. (#968) - Provide complete key event data to command matchers and programmatically invoked handlers. (#774)
- Add Ctrl-D and Ctrl-U aliases for half-page review scrolling. (#855)
- Fence late session lifecycle commits so stopped or replaced generations cannot authenticate, reconnect, publish daemon launch metadata, or mutate broker client state. (#955)
- Keep explicit top and bottom jumps from being overridden by a pending selection reveal. (#928)
- Stop installing Bun beside prebuilt Hunk packages so pnpm global updates cannot corrupt Bun's shared platform-package projection. Standalone platform binaries continue to work without a separate Bun installation. (#908)
- Fill the review stream on first paint instead of leaving it blank until the user scrolls. (#922)
- Contain unexpected session broker lifecycle failures behind one fixed, redacted user-visible message. (#956)
- Let focused editors inside extension panes receive keys before Hunk's global shortcuts. (#954)
- Make the checksum-aware curl installer the default across the website and docs, add an accessible tabbed install selector, and establish
hunk updateas the canonical updater from Hunk 0.20 onward. (#919) - Retry session broker connections after synchronous WebSocket startup failures. (#950)
- Keep iTerm2 sessions connected to the local session daemon when their terminal identifiers contain native punctuation. (#936)
- Keep wrapped diff geometry aligned with rendered note-guide and add-note columns. (#858)
- Accept the documented
dimtone when routing line-highlight commands through the session daemon. (#937) - Recognize pacman/AUR-managed installations via
HUNK_INSTALL_SOURCE=pacmanand suppress automatic update notices for them. (#850) - Upgrade the OpenTUI runtime and reusable component peer requirement to 0.5.6. (#914)
- Publish dated prerelease notes on hunk.dev without promoting them as the latest stable release or default install target. (#961)
- Refuse curl installs alongside competing Hunk binaries unless explicitly forced, and print each conflicting path, version, PATH precedence, and package-manager removal guidance. (#960)
- Exit cleanly when the terminal hosting a review disconnects instead of leaving an unreachable Hunk process behind. (#724)
- Restore first-frame and scroll responsiveness for large review streams. (#942)
- Fix washed-out or wrong-hue diff colors in ~25 bundled themes (gruvbox, rosé pine, tokyo-night, material, everforest, laserwave, night-owl, slack, and others) by re-harvesting every theme's diff accents from its real VS Code accent tokens. (#828)
- Stop the theme contrast guards from washing out diff accents: low-contrast sign colors now get the smallest readable adjustment instead of a fixed 45% blend, and word-level diff emphasis is derived to the renderer's own separation floor so the highlight you see is the one the theme defines. (#825)
- Refuse to start watch mode under Bun versions older than 1.3.14, which can deadlock filesystem watcher cleanup and leave Hunk unresponsive. (#902)
0.21.0-beta.1
Section titled “0.21.0-beta.1”September 1, 2026
Minor Changes
Section titled “Minor Changes”- Add a pane-wide
onActivatecallback to the extension API for primary mouse presses. (#965)
Patch Changes
Section titled “Patch Changes”- Fence late session lifecycle commits so stopped or replaced generations cannot authenticate, reconnect, publish daemon launch metadata, or mutate broker client state. (#955)
- Contain unexpected session broker lifecycle failures behind one fixed, redacted user-visible message. (#956)
- Let focused editors inside extension panes receive keys before Hunk's global shortcuts. (#954)
- Retry session broker connections after synchronous WebSocket startup failures. (#950)
- Publish dated prerelease notes on hunk.dev without promoting them as the latest stable release or default install target. (#961)
- Refuse curl installs alongside competing Hunk binaries unless explicitly forced, and print each conflicting path, version, PATH precedence, and package-manager removal guidance. (#960)
0.21.0-beta.0
Section titled “0.21.0-beta.0”August 30, 2026
Minor Changes
Section titled “Minor Changes”- Navigate a live review directly to a comment returned by
hunk session comment list. (#845) - Make the vertical space between files and hunks configurable. (#865)
- Add a
dimtone tohunk.registerLineHighlighterandhunk session highlight addfor fading diff text toward line backgrounds while preserving syntax highlighting token hues. (#909) - Let extensions select syntax highlighting by exact filename or basename/path glob, in addition to file extensions. (#851)
- Let extensions register generic top-level CLI command trees with raw arguments, cancellable streaming I/O, validated exit statuses, and one-time delegation into built-in Hunk commands, including a dependency-free
hunk gh 123example that fetches GitHub pull-request diffs directly. (#888) - Publish
hunk_viewedand store-backednote_changedextension lifecycle events so progress and note UIs can follow hunk navigation and agent comments. (#939) - Give opted-in extension panes the current line's
{ side, line }source address oncurrentLine, matching command selection, so a pane can follow the cursor without waiting for a keypress. (#940) - Require Node.js 22 or newer for npm installs. Standalone Hunk binaries continue to run without Node.js. (#917)
- Resize the built-in files sidebar with the terminal, showing its compact projection at medium widths and keeping split review after the sidebar hides. Extension API v12 adds
ExtensionPaneSize.fractionfor bounded body-axis fractional sizing while preserving manual overrides. (#924) - Authenticate local session producers and CLI controls with automatically discovered owner-private credentials, signed responses, scoped reconnect replacement, and bounded handshakes. Expose only minimal public daemon health, refuse unsafe PID-based replacement, and let interactive Hunk windows reconnect automatically after an incompatible incumbent becomes idle. (#933)
- Add editable inline review notes and arbitrarily nested threaded replies with mouse and keyboard actions, including reviewer dismissal of reply-free live agent notes. (#925)
- Support backend-native
hunk diff <from> <to>reviews across Git, Jujutsu, and Sapling, with pinned source expansion, working-copy isolation, explicithunk diff --files <left> <right>file comparison, and structuredrangeEndpointsin extension API generation 14. (#938) - Show a fully expanded file tree when the file sidebar reaches its preferred 34-column width, and keep resize drags active while its layout changes. (#921)
Patch Changes
Section titled “Patch Changes”- Enable unchanged-context expansion in Jujutsu-backed reviews. (#890)
- Provide complete key event data to command matchers and programmatically invoked handlers. (#774)
- Add Ctrl-D and Ctrl-U aliases for half-page review scrolling. (#855)
- Keep explicit top and bottom jumps from being overridden by a pending selection reveal. (#928)
- Stop installing Bun beside prebuilt Hunk packages so pnpm global updates cannot corrupt Bun's shared platform-package projection. Standalone platform binaries continue to work without a separate Bun installation. (#908)
- Fill the review stream on first paint instead of leaving it blank until the user scrolls. (#922)
- Make the checksum-aware curl installer the default across the website and docs, add an accessible tabbed install selector, and establish
hunk updateas the canonical updater from Hunk 0.20 onward. (#919) - Keep iTerm2 sessions connected to the local session daemon when their terminal identifiers contain native punctuation. (#936)
- Keep wrapped diff geometry aligned with rendered note-guide and add-note columns. (#858)
- Accept the documented
dimtone when routing line-highlight commands through the session daemon. (#937) - Recognize pacman/AUR-managed installations via
HUNK_INSTALL_SOURCE=pacmanand suppress automatic update notices for them. (#850) - Upgrade the OpenTUI runtime and reusable component peer requirement to 0.5.6. (#914)
- Exit cleanly when the terminal hosting a review disconnects instead of leaving an unreachable Hunk process behind. (#724)
- Restore first-frame and scroll responsiveness for large review streams. (#942)
- Fix washed-out or wrong-hue diff colors in ~25 bundled themes (gruvbox, rosé pine, tokyo-night, material, everforest, laserwave, night-owl, slack, and others) by re-harvesting every theme's diff accents from its real VS Code accent tokens. (#828)
- Stop the theme contrast guards from washing out diff accents: low-contrast sign colors now get the smallest readable adjustment instead of a fixed 45% blend, and word-level diff emphasis is derived to the renderer's own separation floor so the highlight you see is the one the theme defines. (#825)
- Refuse to start watch mode under Bun versions older than 1.3.14, which can deadlock filesystem watcher cleanup and leave Hunk unresponsive. (#902)