Repository navigation
Changed
- OpenTUI 0.5.12.
Added
-
Ctrl-slists every row of the diff that matches what you type, grouped by file with a
count per file, andEntergoes there./answers "take me to the next one"; this
answers "where does this appear at all", which used to mean pressingnand rebuilding
the picture one match at a time. -
riff --demo— a review of a repository riff generates inTMPDIR: five files with a
modification, an addition and a deletion over them, with no network call and nothing written
into the repository it was launched from. -
riff reads files —
riff .,riff src/andriff src/app.tsopen a path instead of
a diff, drawn as a diff with no changes so folds, flash,/, tables, mermaid and the
syntax highlighting all come with it. A directory opens folded. A path that exists wins
over a revision of the same name;-r <rev>says you meant the revision. Commenting is
refused for now — notes on a file are the next spec. -
Comments from nvim —
riff comments add --file F --line Nwrites a comment from
outside riff, body on stdin, andnvim/ships a plugin that uses it:<leader>rcopens a
markdown buffer on the current line or selection, and every commented line shows the start
of what was said beside it. nvim keeps the navigation; riff keeps the comment. -
Notes never leave the machine — a comment written where no diff is showing is stored
as one, and every publish path refuses it rather than losing it to a 422 at the API. -
cworks on any line riff is showing — a file opened withriff ., context expanded
outside a hunk, anywhere the cursor sits on code. The composer saysNote … local only, never publishedbefore you type. A note appears only where riff has a row for it, so a
pull request is not buried under remarks about the rest of the repository. -
riff commentsis a queue an agent can be pointed at —--pathnarrows it to a file
or a directory, every thread in the JSON says whether it is a note or a review comment,
and every one says where its line is now:here,movedto a line it names, orlost.
A note pinned to a worktree that keeps being edited no longer points at the wrong code
without saying so. -
The nvim plugin shows what is there — a sign in the gutter on every commented line,
:RiffShowto read the comments on a line, and:RiffTogglebetween the comment's
opening text and a single dot for when the marks are in the way. Writing a comment on a
line that already has one shows what was said above the composer. -
riff comments edit <id>— rewrite a comment's body from outside riff. The anchor is
not touched: changing what a comment says is not changing which line it is about. -
One key in nvim —
<leader>rccomments on a line, or opens the comment already on it
on what it says.Ctrl-ssaves from either mode,Escabandons, and:w,:xandZZ
work as they do anywhere else. The separate viewer, editor and open-in-riff commands are
gone: three doors onto one room. -
The review, in nvim —
<leader>rpfetches the pull request for your bookmark or
branch and draws its comments on the file, with who said what, in their own gutter sign;
<leader>rPputs them away without touching your notes. Nothing polls and nothing
fetches behind your back. A comment whose line has moved is drawn where the line is now,
read out of the hunk GitHub sent; one whose code has since changed is not drawn, and
you are told how many there were. -
riff comments fetchpulls a pull request's comments into.riff/without opening
riff, andriff comments --syncedlists the review's own comments beside your notes. -
Every comment in the repository, from nvim —
<leader>rllists the open ones in
snacks' picker (quickfix without it) and jumps to the line each is on now.<leader>rx
marks one done. A gutter sign only ever told you about the file you already had open. -
One list, both kinds —
riff comments --json --allis your notes and the comments
on the pull request for your branch, in one report, each thread tagged and carrying the
commands for the store it came from.<leader>rluses it, so "where is there something
to deal with" is one question again instead of two keys. -
riffon a branch with a pull request shows that review — riff already named the PR
in the header and then showed none of it. Its comments now appear on the lines they are
anchored to, for the lines this diff actually has. Nothing is fetched:riff prand
riff comments fetchare what put a review on disk. -
Delete a comment from nvim —
<leader>rd, andCtrl-x/Ctrl-din the composer
retire the comment it has open. Only ever your own: the review's comments are GitHub's. -
The composer shows what is already on the line, the review included — a line carrying
someone's review comment opened a blank composer, as if riff had lost it. -
Toggling the comment display reaches the review too —
:RiffToggleredrew only your
own notes, so a pull request's comments stayed in whichever mode they were drawn in while
the message said otherwise. -
iandaopen the pull request the header names — in a local review on a branch
that has one, the overview and the feed were keys that silently did nothing. They load it
now, in place, and land where you asked — building the PR info panel a local review never
had, without which the view switched onto nothing and looked stuck on the diff.
Fixed
Ctrl-oandCtrl-iknow about every jump — the picker, the tree, flash, thread
motion, links and the feed are all in the history, because one place records where you
came from instead of twenty navigations each remembering to. Stepping and scrolling
inside a file still are not jumps, and a jump now lands in the column it left.- Going back no longer flickers — a jump painted the destination at the scroll position
of where it came from and then moved it. One paint now, and the jump keeps your marks and
your last search instead of rebuilding the cursor from scratch. - The tree says which file you are reading — the file under the diff cursor is named in
the accent colour, not only shaded, so]fand[fare legible at a glance from the
other panel. - Sequence diagrams name their columns at both ends — participants are drawn at the
foot as well as the head, the way mermaid draws them, so the bottom of a long exchange
still says who is who.