Skip to content

Releases: modem-dev/hunk

v0.23.0

Choose a tag to compare

@github-actions github-actions released this 30 Sep 17:06
Immutable release. Only release title and notes can be modified.
7991d30

What's Changed

  • fix(ui): open help and menus without first-use suspension by @elucid in #1079
  • test(pty): synchronize inputs on committed screen state by @elucid in #1083
  • perf(highlight): load Shiki WASM bytes without base64 decoding by @elucid in #1078
  • docs(release): publish v0.22.0 notes by @benvinegar in #1087
  • perf(test): reduce fixture process overhead by @benvinegar in #1092
  • feat(ui): host-owned status line with inline prompts, exposed to extensions by @elucid in #1095
  • feat(search): / searches diff content via a bundled search extension by @elucid in #1096
  • Make daemon/client build skew visible and resolvable with hunk daemon status/restart by @elucid in #1099
  • feat(config): make wheel scrolling configurable by @benvinegar in #853
  • feat(extensions): add host-owned file-view syntax highlighting by @benvinegar in #1053
  • feat(ui): add support line number in "Open file in editor" for zed by @seiichi1101 in #1073
  • Add hunk-triage to hunk-extension marketplace by @benvinegar in #1113
  • test(pty): speed up integration synchronization by @benvinegar in #1098
  • fix(nix): install hunkdiff alias so hunk patch works by @schickling-assistant in #1108
  • fix(test): compare install VM paths in one spelling so symlinked tmpdirs pass by @shashank-100 in #1120
  • fix(cli): resolve bundled skills by proximity, not candidate order by @shashank-100 in #1116
  • docs(release): gate Homebrew availability claims by @benvinegar in #1088
  • fix(ui): register one terminal blur listener per diff pane by @speedsharmaai in #1111
  • fix(nix): use stdenv.hostPlatform.isLinux by @patrickhaahr in #1101
  • Add hunk-starlark to extension marketplace by @HackAttack in #1124
  • feat(theme): add a default terminal theme that follows terminal colors by @dhh in #1128
  • feat(extensions): bundle GitHub review commands by @benvinegar in #1129
  • chore(release): prepare v0.23.0 by @benvinegar in #1133

New Contributors

Full Changelog: v0.22.0...v0.23.0

v0.22.0

Choose a tag to compare

@github-actions github-actions released this 10 Sep 12:19
Immutable release. Only release title and notes can be modified.
3fdfde2

What's Changed

New Contributors

Full Changelog: v0.21.0...v0.22.0

v0.22.0-beta.1

v0.22.0-beta.1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 09 Sep 04:47
Immutable release. Only release title and notes can be modified.
39e809f

What's Changed

Full Changelog: v0.22.0-beta.0...v0.22.0-beta.1

v0.22.0-beta.0

v0.22.0-beta.0 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 08 Sep 15:04
Immutable release. Only release title and notes can be modified.
dd3c914

Hunk 0.22 beta: history becomes a review workspace

Hunk 0.22 turns repository history into a responsive review workspace: browse commits, select contiguous ranges, carry review context into the diff, and leave precise threaded feedback without leaving the terminal.

hunk update 0.22.0-beta.0
npm install -g hunkdiff@0.22.0-beta.0

Browse commits and review ranges

hunk log now opens a responsive, themed history browser for Git and Jujutsu. Commits are grouped by day, optional graph lines preserve topology, and visual or Shift-based range selection opens the cumulative diff for a contiguous set of commits. History has configurable command bindings, merge-parent selection, and keeps your theme and diff preferences as you move between history and review. #979 #987 #1011 #1031 #1038 #1039

Select and discuss exact code ranges

Persistent mouse and keyboard selections can now span multiple lines and drive explicit Comment, Copy, and Clear actions. Inline notes and replies participate in keyboard navigation, and agents can reply through the session CLI while inheriting the original code anchor. #931 #1012 #1044

Richer extension-powered reviews

Extensions can attach provider-neutral review metadata when delegating patches, expose that context to panes and live-session snapshots, and request a coalesced reload after an external agent changes reviewed files. The extension directory also adds hunk-gh, hunk-viewed, hunk-history, and hunk-compact-filenav. #986 #988 #981 #995 #1034

Faster, steadier terminal interaction

Long wrapped lines render and respond faster, pane animations are capped at 30 FPS and can be disabled, sidebar folders collapse without breaking navigation, suspended sessions resume cleanly, and direct-file reviews reload correctly outside repositories. #1043 #1051 #1036 #1009 #996 #1054

Compatibility notes

  • unified is now the canonical name for the single-column diff layout. Existing stack CLI and configuration values remain accepted as deprecated aliases and normalize to unified.
  • Extension API v23 adds canonicalMode and canonicalLayout, which report unified; legacy fields continue to report stack for compatibility.
  • OpenTUI integrations can use canonicalLayout: "split" | "unified"; the legacy layout: "split" | "stack" prop remains source-compatible, and canonicalLayout wins when both are supplied.
  • hunk log opens the interactive history browser when attached to a terminal. Use --static for scripted terminal output; pipes remain static.
  • Review commands now print static plain text instead of launching the TUI when stdout is not a terminal.
  • The bundled runtime is upgraded to Bun 1.4.2.

Community contributors

  • @samuela improved daemon health-probe failure reporting. #927
  • @saadjs led the stack-to-unified layout transition while preserving compatibility. #945
  • @any-victor added hunk-history to the extension directory. #995
  • @HackAttack fixed suspended-job resume behavior. #996
  • @rschoch added hunk-compact-filenav to the extension directory. #1034
All merged pull requests
Read more

v0.21.1

Choose a tag to compare

@github-actions github-actions released this 05 Sep 00:58
Immutable release. Only release title and notes can be modified.

Faster, reliable paging in LazyGit

Hunk 0.21.1 fixes a pager regression that could peg a CPU core, consume gigabytes of memory, and truncate large color-heavy documents opened through hosts such as LazyGit.

hunk update 0.21.1
npm install -g hunkdiff@0.21.1

Pager reliability

ANSI styling is now restored in a single pass instead of repeatedly rescanning and reallocating the complete document. Headless pager output also writes the full document before exiting, avoiding the previous 64 KB truncation limit for piped consumers. #978

Compatibility notes

  • No configuration, command, or extension API changes.
  • Runtime requirements are unchanged from Hunk 0.21.0.
All merged pull requests
  • Fix pager CPU pegging and truncation on large piped documents by @benvinegar in #978

Release notes: https://hunk.dev/changelog/0.21/
Full changelog: v0.21.0...v0.21.1

v0.21.0

Choose a tag to compare

@github-actions github-actions released this 02 Sep 15:40
Immutable release. Only release title and notes can be modified.
4df690b

Hunk 0.21 — secure sessions, threaded reviews, richer comparisons

Upgrade for threaded agent conversations, safer live sessions across restarts and upgrades, and exact revision or file comparisons across Git, Jujutsu, and Sapling.

# Existing managed installs
hunk update 0.21.0

# npm installs
npm install -g hunkdiff@0.21.0

Threaded reviews and safer live sessions

Inline notes are now editable conversations: continue a discussion with nested replies, edit notes, use mouse or keyboard actions, and dismiss agent notes that no longer need attention. Session clients can also navigate straight to a comment by ID. #925 #845

The local session broker now authenticates producers and CLI controls, bounds unauthenticated work, and prevents stale connections from regaining authority. When an incompatible older daemon becomes idle, open Hunk windows reconnect automatically instead of trusting or force-killing it. #932 #933 #955

Compare the exact changes you mean

hunk diff <from> <to> now performs backend-native two-revision reviews across Git, Jujutsu, and Sapling. Use hunk diff --files <left> <right> for an explicit two-file comparison; source expansion stays pinned to the selected endpoints instead of leaking in working-copy state. Jujutsu reviews also gain unchanged-context expansion. #938 #890

Faster reviews at every terminal size

The files sidebar now grows from a compact projection into a full tree as space becomes available, while panes resize without giving up split review. The stream fills immediately on first paint, and large reviews recover responsive scrolling. Diff accents and word highlights are also more faithful across roughly 25 bundled themes. #921 #924 #922 #942 #825 #828

Navigation is steadier too: explicit top and bottom jumps now win over pending reveals, and Ctrl-D/Ctrl-U provide familiar half-page movement. #928 #855

For extension authors

Extensions can register generic top-level CLI command trees, react to hunk_viewed and note_changed, follow the current source line, handle pane activation, size panes fractionally, and select syntax highlighting by filename or glob—so commands and panes can stay synchronized with the active review. #888 #939 #940 #965 #851

Compatibility notes

  • npm users: installation now requires Node.js 22 or newer. Standalone Hunk binaries still run without Node.js. #917
  • Bun/watch-mode users: watch mode refuses Bun versions older than 1.3.14 because those runtimes can deadlock during filesystem-watcher cleanup. #902
  • OpenTUI embedders: reusable component consumers must use @opentui/core and @opentui/react 0.5.6 or newer. #914
  • curl-installer users: installation now refuses conflicting Hunk binaries unless explicitly forced and explains how to remove the competing install. #960
  • Extension authors: API generations 12 and 14 add fractional pane sizing and structured rangeEndpoints. These are additive capabilities, not required migrations. #924 #938

Community contributors

  • @NiqhtFire made Hunk exit cleanly when its hosting terminal disconnects. #724
  • @nightcityblade completed synthetic key event data for command matchers and programmatic handlers. #774
  • @masonmcelvain restored faithful diff accents and word highlighting across bundled themes. #825 #828
  • @Ajay-Satish-01 added configurable spacing between files and hunks. #865
  • @Yuki9814 added direct live-review navigation to comments by ID. #845
  • @samuela enabled unchanged-context expansion for Jujutsu reviews. #890
  • @marmitar added pacman/AUR install detection and update-notice behavior. #850
All merged pull requests

PRs #889, #893, and #894 were also released in v0.20.1 through the 0.20.x maintenance branch.

Read more

v0.21.0-beta.1

v0.21.0-beta.1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 01 Sep 14:34
Immutable release. Only release title and notes can be modified.
db7582a

What's Changed

Full Changelog: v0.21.0-beta.0...v0.21.0-beta.1

v0.21.0-beta.0

v0.21.0-beta.0 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 31 Aug 03:44
Immutable release. Only release title and notes can be modified.

Hunk 0.21 beta

This beta makes reviews more expressive, session connections safer, and the extension platform substantially more capable. It also restores first-frame and scrolling responsiveness after the new review features landed.

Install the beta with:

launch-v2.mp4
npm install -g hunkdiff@beta

Compare any two revisions

hunk diff <from> <to> now performs backend-native two-revision reviews across Git, Jujutsu, and Sapling. Source expansion stays pinned to the compared revisions, and hunk diff --files <left> <right> explicitly compares two files. #938

Threaded review conversations

Inline notes are now editable and support arbitrarily nested replies with keyboard and mouse actions. Reviewers can also dismiss reply-free live agent notes without leaving the review flow. #925

Safer live sessions

The local session broker now authenticates producers and CLI controls with owner-private credentials and signed responses. Hunk can safely replace an incompatible idle daemon and reconnect active terminal sessions without manual intervention. #932 #933

A more adaptable review UI

  • The file sidebar adapts to terminal width and expands its tree at full width. #921
  • Built-in and extension panes support responsive fractional sizing. #924
  • File and hunk spacing are configurable. #865
  • Diff colors and word emphasis are corrected across roughly 25 bundled themes. #825 #828
  • First paint, navigation, and scrolling remain responsive in large review streams. #922 #942

Extension API generations 9–14

Extensions can now:

  • register generic top-level CLI command trees with streaming I/O and delegation; #888
  • select syntax languages by filename or glob; #851
  • use a dim line-highlight tone; #909
  • size panes responsively;
  • observe hunk_viewed and saved note_changed events; #939
  • follow the current source line from an opted-in pane; and #940
  • receive structured two-revision rangeEndpoints in VCS adapters.

Compatibility notes

  • npm installs now require Node.js 22 or newer. Standalone Hunk binaries still run without Node.js. #917
  • hunk diff <from> <to> gives two positional arguments revision semantics. Existing scripts that used the second positional argument as a pathspec should use an explicit supported form instead.
  • Custom VCS adapters should handle extension API generation 14's rangeEndpoints request variant to support two-revision comparisons.

Community contributors

Thank you to everyone who contributed to this release:

Please report beta issues on GitHub or in the Hunk Discord.

Full changelog: v0.20.1...v0.21.0-beta.0

v0.20.1

Choose a tag to compare

@github-actions github-actions released this 29 Aug 13:04
Immutable release. Only release title and notes can be modified.

What's Changed

Hunk 0.20.1 is a security and reliability patch for session reloads, syntax highlighting, and theme previews.

Highlights

  • Reject option-like Git ranges and refs in session reloads, preventing broker callers from injecting Git flags and writing diff output to arbitrary paths, by @benvinegar in #894.
  • Prevent syntax-highlight cache identity collisions from displaying stale code after a review reload, by @benvinegar in #889.
  • Keep the theme selector responsive and its highlighted row visible during rapid keyboard navigation, by @benvinegar in #893.

Release notes: https://hunk.dev/changelog/0.20/
Full Changelog: v0.20.0...v0.20.1

v0.19.2

Choose a tag to compare

@github-actions github-actions released this 29 Aug 14:22
Immutable release. Only release title and notes can be modified.

What's Changed

Hunk 0.19.2 backports an important session reload security fix to the 0.19 release line.

Highlights

  • Reject option-like Git ranges and refs in session reloads, preventing local session broker callers from injecting Git flags such as --output=<path> and writing diff output to arbitrary paths, by @benvinegar in #894.

Full Changelog: v0.19.1...v0.19.2