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.
Related documentation
Section titled “Related documentation”Releases in this series
Section titled “Releases in this series”0.24.0-beta.0
Section titled “0.24.0-beta.0”October 13, 2026
Minor Changes
Section titled “Minor Changes”- Add an
auto_split_min_widthconfig 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 opento 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 withnpx skills add modem-dev/hunk -g --skill hunk-reviewor--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 installand the shared list/update/remove workflow while preserving Git installs and blocking npm lifecycle scripts. (#1162) - Add a
scroll_offsetting (and--scroll-off <rows>flag) that defaults to keeping five rows of context around the current line while stepping through a diff, like Vim'sscrolloff, withscroll_off = 0or--scroll-off 0restoring edge-only scrolling. (#1109) - Make the note composer save shortcut remappable via
hunk.review.saveNote(defaultctrl+s). (#962) - Add
hunk completion bashandhunk completion zshto 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.
--fastis accepted as a no-op and will be removed in a later release; Windows compiled binaries and custom themes withsyntax_scopeskeep highlighting inline. (#1105)
Patch Changes
Section titled “Patch Changes”- Store document save coordination in the account's Hunk state directory without creating a
.hunkproject marker in the user home. This preserves project discovery and reload bounds for directories beneath the home, including Windows temporary files. (#1148) {/}andhunk session navigate --next-comment/--prev-commentno 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 diffduring paused merges and rebases. (#1102) - Resolve releases from
hunk.dev/api/release/latestso 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
requirefunctions. (#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
terminaltheme 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
jjbinary and an unreadablejjstream now log the repo path beside the revision and file, as a failedjj file showalready 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 sessioncommands that select a window with--repoor--session-pathnow say which path matched no live session, instead of failing withprotocol-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 withprotocol-validation-faileduntil it restarts. (#1149)- Extension VCS operation registration now requires
watchSignatureandwatchPlanto be absent or callable. A non-callable hook is dropped along with its operation at registration instead of throwing aTypeErrorthe first time watch planning invokes it. (#1080) hunk session reloadonto 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
--fastshorthand 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 updateinstalls 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)