Skip to content

Hunk 0.21

August 30, 2026 – September 2, 2026 · 3 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.

New to Hunk? Use the default installer. It verifies downloads when release checksums and local tooling are available, and warns otherwise:

Terminal window
curl -fsSL https://hunk.dev/install.sh | sh

Already on Hunk 0.20 or newer with the default install script, npm, or Homebrew? Move to this release with Hunk's canonical update command:

Terminal window
hunk update

On an older Hunk release, update once through the installer or package manager that installed it, then use hunk update. mise, Nix, source, and custom-directory installs remain owned by their own update workflows. This is the current release; see all install options.

September 2, 2026

  • 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 dim tone to hunk.registerLineHighlighter and hunk session highlight add for 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 123 example that fetches GitHub pull-request diffs directly. (#888)
  • Publish hunk_viewed and store-backed note_changed extension 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 on currentLine, 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.fraction for 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 onActivate callback 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, explicit hunk diff --files <left> <right> file comparison, and structured rangeEndpoints in 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)
  • 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 update as 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 dim tone when routing line-highlight commands through the session daemon. (#937)
  • Recognize pacman/AUR-managed installations via HUNK_INSTALL_SOURCE=pacman and 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)

September 1, 2026

  • Add a pane-wide onActivate callback to the extension API for primary mouse presses. (#965)
  • 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)

August 30, 2026

  • 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 dim tone to hunk.registerLineHighlighter and hunk session highlight add for 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 123 example that fetches GitHub pull-request diffs directly. (#888)
  • Publish hunk_viewed and store-backed note_changed extension 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 on currentLine, 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.fraction for 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, explicit hunk diff --files <left> <right> file comparison, and structured rangeEndpoints in 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)
  • 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 update as 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 dim tone when routing line-highlight commands through the session daemon. (#937)
  • Recognize pacman/AUR-managed installations via HUNK_INSTALL_SOURCE=pacman and 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)

Older: Hunk 0.20 · All releases