Skip to content

Hunk 0.24

Prerelease · October 13, 2026 · 1 release

Hunk 0.24 adds complete-file and directory browsing, a live workspace status view, npm-installed extensions, shell completions, and pane-aware automatic diff layout, while moving syntax highlighting off the review's main thread by default.

October 13, 2026

  • Add an auto_split_min_width config setting with a default of 160 available diff columns, accounting for side panes and outer padding so auto layout switches between unified and split as panes open, close, or resize. (#1170)
  • Reveal left and right extension panes independently and add ctx.panes.isVisible() so guide toggles leave the files pane's state untouched. (#1171)
  • Add hunk open to view complete syntax-highlighted files and browse directories with lazy loading, live refresh, and keyboard/mouse navigation. (#1148)
  • Add hunk skill show [name] and publish pointer skills installable with npx skills add modem-dev/hunk -g --skill hunk-review or --skill hunk-extensions, delegating agent installation to the skills CLI while loading version-matched instructions from the installed Hunk binary. (#1167)
  • Support scoped npm packages, versions, ranges, and tags in hunk extension install and the shared list/update/remove workflow while preserving Git installs and blocking npm lifecycle scripts. (#1162)
  • Add a scroll_off setting (and --scroll-off <rows> flag) that defaults to keeping five rows of context around the current line while stepping through a diff, like Vim's scrolloff, with scroll_off = 0 or --scroll-off 0 restoring edge-only scrolling. (#1109)
  • Make the note composer save shortcut remappable via hunk.review.saveNote (default ctrl+s). (#962)
  • Add hunk completion bash and hunk completion zsh to print shell completion scripts for commands, flags, and enumerated flag values. (#1157)
  • Add a live read-only workspace status view with sibling inspection, shared-theme navigation into Log and full diff reviews, indented tracked/untracked groups with readable theme-colored staging facts and independent ten-file expansion, clearly separated sibling worktrees, and static or versioned JSON output. (#1067)
  • Add extension-owned, generation-scoped presentation filters for selecting runtime files and hunks without changing canonical review state. (#1118)
  • Syntax highlighting now runs in the worker by default, and the worker starts compiling the review's grammars during startup, so the first key after the review appears is no longer blocked by highlighting. --fast is accepted as a no-op and will be removed in a later release; Windows compiled binaries and custom themes with syntax_scopes keep highlighting inline. (#1105)
  • Store document save coordination in the account's Hunk state directory without creating a .hunk project marker in the user home. This preserves project discovery and reload bounds for directories beneath the home, including Windows temporary files. (#1148)
  • {/} and hunk session navigate --next-comment/--prev-comment no longer skip notes drawn outside the diff’s changed lines, such as after a reload moves the hunks. (#1147)
  • Respect option arguments and the -- pathspec separator in Bash and Zsh completions, and offer help and supported leading CLI flags. (#1157)
  • Restore the original comment target when wheel events return the viewport in a single burst. (#1164)
  • Stop re-running a failed large-diff highlight on every scroll, pick up a later successful retry without remounting the file, and charge worker highlight results to the cache budget by the payload they actually retain. (#785)
  • Render Git combined conflict diffs from git diff during paused merges and rebases. (#1102)
  • Resolve releases from hunk.dev/api/release/latest so macOS no longer blocks pasting the curl install command as malware. (#1140)
  • Capture the document editor's file and visible line when editing is requested, so later scrolling or selection during copy preparation cannot retarget the launch. (#1148)
  • Harden document browsing and editor saves against path replacement, reject incomplete Git ignore results, and fix Windows path checks. (#1148)
  • Allow document menu shortcuts to refresh, edit, and quit with configured keybindings while keeping help and theme dialogs isolated. (#1148)
  • Show the directory only once in same-directory rename labels so both filenames fit more easily in review headers. (#1156)
  • Folder extensions resolve installed packages in compiled binaries with the correct export conditions while preserving documentation strings, unrelated method calls, and locally bound require functions. (#1163)
  • Coordinate document saves across Hunk windows in the same OS account to prevent overlapping writeback and preserve losing editors' recovery copies. (#1148)
  • Dismiss document-browser menus when clicking the document or tree so subsequent keys follow the newly focused content. (#1148)
  • Preserve text typed immediately after opening a note editor, including immediate saves, without triggering global shortcuts. (#1125)
  • Refresh the terminal theme about three times faster after a terminal color-scheme switch, pick up switches from terminals that answer slowly, and settle on the final palette instead of a mix of old and new colors after rapid switches. (#1130)
  • Fill initial document and tree viewports without requiring scrolling when native layout temporarily reports a negative scroll position. (#1148)
  • Measure text containing U+113D1 (and other grapheme Prepend characters) with the correct terminal width instead of counting the prepend as its own cell, so slicing and wrapping agree with string-width. (#1153)
  • Keep workspace-status reviews tied to launch configuration across reloads, serialize returns from history, and keep expanded status navigation responsive. (#1067)
  • Preserve the visible source line in complete documents when wrapping, resizing, toggling line numbers, or refreshing shortened files. (#1148)
  • Keep the file filter focused in pager mode when files reappear after a filter matches no files. (#1161)
  • Allow bounded cold PowerShell startup time when locating the Windows account's document save namespace. Account lookup failures still refuse writeback and preserve recovery copies. (#1148)
  • Fix plain-text Git pager output being truncated or failing with EPIPE when stdout is piped. (#1112)
  • Name the repository in every Jujutsu source-read diagnostic. A missing jj binary and an unreadable jj stream now log the repo path beside the revision and file, as a failed jj file show already did. (#1146)
  • Store persistent Hunk state under the XDG state directory while preserving existing state and global extension locations. (#920)
  • Preserve pending filesystem refreshes when selecting a file or changing expanded directories in the document browser. (#1148)
  • hunk session commands that select a window with --repo or --session-path now say which path matched no live session, instead of failing with protocol-validation-failed (for example, when run from a different git worktree than the Hunk window). The session daemon produces this message, so it appears once a daemon from this release is running; an older daemon keeps answering with protocol-validation-failed until it restarts. (#1149)
  • Extension VCS operation registration now requires watchSignature and watchPlan to be absent or callable. A non-callable hook is dropped along with its operation at registration instead of throwing a TypeError the first time watch planning invokes it. (#1080)
  • hunk session reload onto a diff that leaves out a file holding a live note keeps the session connected, and the note returns when a later reload brings its file back. (#1131)
  • Preserve every unique document editor failure notice and print its full recovery location after terminal teardown, even after later successful edits. (#1148)
  • Prevent overlapping document edits and lost recovery notices on quit, preserve wrapped text beside scrollbars, release vanished directory expansions, and restore keyboard scrolling in controls help. (#1148)
  • Terminal editor handoffs release Hunk's stdin reader before launching the editor so Windows keyboard input does not wait for an extra Enter press. (#1165)
  • Handle Bash word-break fragments, nested session reload commands, and --fast shorthand in shell completion, and use Zsh's native argument completion for options and values. (#1157)
  • Keep document browser watch subscriptions alive across unchanged refreshes so files created during directory metadata queries appear automatically. (#1148)
  • Keep document browsing updates live after watched directories are replaced or deleted and recreated at the same path. (#1148)
  • Report history cursor cleanup failures when quitting during or after a refresh. (#1067)
  • Keep Hunk sessions alive while window is suspended. (#1134)
  • Keep document focus, help, themes, and menus consistent when keyboard or mouse actions arrive before the next render. (#1148)
  • Reveal the full note composer when opening a draft near the bottom of the diff pane, scrolling only when needed to keep the input and Save/Cancel controls visible. (#1160)
  • Link the matching GitHub release notes after hunk update installs a version, reports one as already current, or checks for a newer one. (#1166)
  • Fix stale comment targets after scrolling or stepping the cursor. (#1143)

Older: Hunk 0.23 · All releases