github modem-dev/hunk v0.24.0

2 hours ago

Hunk 0.24: beyond the diff

Hunk 0.24 brings complete-file and directory browsing, a live workspace compass, npm-installed extensions, and version-matched agent skills into your terminal review workspace. Worker highlighting makes startup interaction smoother, while a round of memory fixes keeps large reviews and long-running sessions leaner.

For npm- and curl-managed installs:

hunk update 0.24.0
npm install -g hunkdiff@0.24.0

Homebrew availability will be verified after publication; until then, Homebrew propagation is pending. The commands above select the exact release for npm- and curl-managed installations.

Explore the source and find your next review

hunk open shows complete syntax-highlighted files and browses directories with lazy loading, live refresh, and keyboard or mouse navigation. Inspect the surrounding source without manufacturing a diff. The new read-only workspace status view brings together staging state, tracked and untracked changes, and sibling worktrees, with navigation into history and full diff reviews. Static and versioned JSON status output are available too. #1148, #1067

Automatic diff layout now uses the space actually left after side panes and padding: opening a pane can switch to unified, and closing it can restore split. auto_split_min_width controls the threshold, while scroll_off keeps surrounding context visible during line navigation. Binary files remain reachable through file navigation and sidebar clicks, and the sidebar follows held file-navigation keys without overriding ordinary manual scrolling. #1170, #1109, #1178, #1085

Keep reviews responsive—and let old reviews go

Syntax highlighting runs in a worker by default, with grammar warmup during startup to reduce the input stall after the review first appears. Large-diff highlight failures use bounded retries rather than restarting on every scroll. #1105, #785

Live reloads no longer retain every previous review's files and render state. Nonwrapped reviews reuse geometry across terminal resizes, and keyboard navigation leaves copy-selection content lazy rather than materializing it eagerly. Sessions also stop repeatedly submitting a rejected review to an unchanged daemon while retaining recovery when the review or daemon changes. #1201, #1200, #1202, #1199

Review reliability improves too: wheel scrolling no longer leaves comments targeting stale lines, notes survive reloads that temporarily omit their files, suspended windows keep their sessions registered, and terminal-editor handoffs release Hunk's stdin reader before launching the editor. #1143, #1164, #1131, #1134, #1165

Performance note: release benchmarks have no gated regressions against 0.23.0 or beta.1. The known sidebar-follow tradeoff from beta.1 remains relative to beta.0: navigation p95 is 42.74 ms versus beta.0's 36.35 ms, beta.1's 44.55 ms, and 0.23.0's 46.32 ms. This preserves correct sidebar following during held navigation and resizing.

Easier extensions, agent setup, and shell navigation

hunk extension install accepts npm packages—including scopes, versions, ranges, and tags—alongside Git sources, without running npm lifecycle scripts. Folder-local package imports work in compiled Hunk binaries. Extensions gain generation-scoped presentation filters and independent left/right pane controls. #1162, #1163, #1118, #1171

Install agent pointer skills through the skills CLI; hunk skill show supplies the full instructions matched to your installed Hunk version. Bash and Zsh completions help discover commands, flags, and supported values. The note-composer save shortcut is now remappable, and hunk gh --help and the docs cover more of the available review workflows. #1167, #1157, #962, #1186

Compatibility notes

  • Default theme: github-dark-default is the default again. Set theme = "terminal", pass --theme terminal, or use the theme picker to keep following your terminal palette. This differs from 0.23 and the 0.24 betas. #1195
  • Automatic layout: the default threshold is 160 available diff columns, excluding panes and outer padding. Configure auto_split_min_width or select explicit split/unified mode to override it.
  • Navigation context: scroll_off defaults to five rows; scroll_off = 0 or --scroll-off 0 restores edge-only scrolling.
  • Highlighting: --fast is now a no-op and will be removed in a later release. Windows compiled binaries and custom themes with syntax_scopes continue to highlight inline.
  • Patch validation: nonempty input without recognizable file changes now fails explicitly instead of silently opening an empty review. Genuinely empty reviews have their own message. #1183, #1182
  • Extensions: the public API is version 31. Gate new APIs on hunk.apiVersion when supporting older Hunk versions.
  • Persistent state: Hunk uses the XDG state directory while preserving existing state and global extension locations. Agent notes start hidden; use the review controls to reveal them.
  • Runtime requirements: npm installations require Node.js 22 or newer; standalone binaries do not require Node.js.

Community contributors

All merged pull requests

Release notes: https://hunk.dev/changelog/0.24/
Full changelog: v0.23.0...v0.24.0

Don't miss a new hunk release

NewReleases is sending notifications on new releases.