v0.10.0
This release replaces hunk with tuicr and moves the git
menu out of the switcher into a pane of its own. It is a breaking change: keys move, two menu rows
are gone, and tuicr is now a hard requirement (brew install tuicr, ≥ 0.20.0). Themes for it come
from hue-theme — install that first, or reviews open in
tuicr's own colours.
Removed
⌥gno longer opens a git menu in the switcher. The menu is a herdr pane now, reached only by
theghq.gitaction (bind it toprefix+g). What you lose with it: reviewing an arbitrary repo
you fuzzy-jumped to.cdthere (^o) and pressprefix+g. Two entry points would have drifted
apart, and only one of them could be the fast one.sreview staged — tuicr has no staged-only flag,d(tuicr -w) already covers staged and
unstaged together, and lazygit is the better pre-commit surface.xresolve conflicts — tuicr's-ptakes a single path prefix, sohunk diff -- <files>
has no translation.- The commit history browser — the scrolling, fuzzy-filterable
git loglist behindh. tuicr
has a commit panel of its own, sohnow opens that directly. - The startup animation. The switcher no longer animates a cat while it loads.
hunkis no longer used or configured, and the plugin writes nothing into tuicr's config.
Added
- A dedicated git menu pane.
prefix+gopens it straight onto the repo the pane is sitting in;
it loads no agents, no workspaces, no repository index, and no preview on the way. Picking a row
takes over that pane, and quitting the review returns you to where you started. a— review all files (tuicr -A).p— review a pull request:gh pr listin a fuzzy-filterable list, thentuicr pr <n>. The
row is hidden whenghis not installed.r— saved reviews: the sessions fromtuicr review list, with their comment counts. Note
this reads comments only — tuicr's TUI cannot reopen a session, so there is no way back into a
half-finished review yet.GHQ_TRACE=1writes tab-separated timings to$XDG_STATE_HOME/herdr-ghq/trace.log(or
$GHQ_TRACE_FILE) — first list, keystroke-to-frame, and preview render, each measured
separately. Never to stdout or stderr. See the README.
Changed
- The switcher opens about 10× sooner — roughly 35 ms to the first list where it used to be
430 ms. Almost all of that was the animation's own 420 ms minimum-visible floor, not the work: the
sources are now read synchronously before the terminal is claimed, so the first thing painted is
the list. A machine with thousands of repositories will see a blank pane for slightly longer
before it appears. - Reviews open in
tuicr, nothunk:d→tuicr -w,b→tuicr -r <base>.. -w,
h→tuicr. Every launch passes--no-update-check. - The preview card is about twice as fast — roughly 50 ms on average where it used to take
90 ms, and 65 ms at the tail where it used to reach 214 ms. The branch now comes from reading
.git/HEADrather than spawninggit symbolic-ref, and the dirty check no longer walks untracked
files. Behaviour change: a repository whose only changes are untracked files now reads as
clean. - The git menu is sized to fit its command bar, so a short menu no longer clips
esc closeto
esc clo, and every row carries an icon.
Fixed
- Enter on an agent now actually switches to it, and the agent preview loads again. herdr keys
agent focus/agent geton the pane id, but the switcher was passing the terminal id, so every
agent focus failed silently (agent_not_found) — the picker closed and left you on the current
agent — and the preview card came up empty. Agents now carry their pane id as the target. - Opening the git menu no longer prints a stray commit SHA onto the screen beneath the card.
Base-branch detection rangit rev-parse --verifythrough the terminal-inheritingstatuspath,
andrev-parseechoes the resolved SHA on success; it now captures the output instead. - The Kitty/herdr graphics startup splash (the animated GIF cat) is gone, along with the
[experimental].kitty_graphicsdependency. herdr 0.7.5 changed its socket API to serve one
request per connection and close it on reply, which stranded the image on screen.