The overlay & GitHub

The Deltaview bar

The bar starts bottom-left. Drag it by its grip to move it; the position is remembered. It shows the ref, progress such as 3/12 reviewed, a toggle to hide the highlights, Next ▸ to jump to the next undecided item, and Mobile, which shows the current page at phone width (390px) in a frame with the same outlines. Expanded, it also shows:

Keyboard shortcuts

KeyAction
j / kOpen the next / previous item
nOpen the next undecided item
aApprove the open item
r / cStart a rejection / comment on the open item
EscClose the panel or drawer

Shortcuts never fire while you type in a text field, yours or the app's, or when Ctrl, Cmd or Alt is held.

Overlays

Each item on the current page gets an outline with a small DELTAVIEW/<ref> chip. Only the chip's button takes clicks, so a closed overlay never covers your app's controls. Once decided, the chip collapses to ✓, ✕ or 💬 and the outline takes the decision's colour. When an item's selector matches several instances of a shared component, the first gets the full outline and the others a dim one.

Opening an item shows a panel with:

Click a diff line to anchor a rejection or comment on that line; click it again to go back to the item's first change. The anchored line goes into the manifest and the inline GitHub comment.

Decisions are written to the manifest immediately. Reset clears an item back to undecided. Press Esc or ✕ to close a panel.

Finishing

Finish makes the proxy, not the agent, post the review with gh, mark the manifest finished and exit. Claude is re-invoked when it exits and reports the outcome, then stops the dev server and removes the worktree. If posting fails, the error shows in the bar and you can click Finish again. Undecided items are allowed: the first click on Finish shows how many are left, and a second click posts anyway, listing them as not reviewed.

With no open PR, for example when reviewing a bare commit, nothing is posted and only the manifest is saved.

What gets posted

One GitHub review per session, on the reviewed head commit.

Review eventWhen
REQUEST_CHANGESAny item is rejected.
APPROVEEvery item is approved.
COMMENTAnything else, and always on your own PR, which GitHub won't let you approve or reject.

Each rejected or commented item becomes one inline comment: on the line you picked, or else on its first changed hunk, on the added lines (or the deleted lines when nothing was added). If the item spans more files, the comment lists them under “Also covers”. Approved items get no inline comment; they're listed under Approved in the review body, so “reviewed and fine” is distinguishable from “nobody looked”.

The review body summarises the counts, the test result, new env vars, approved items, rejections, items not reviewed, and items with no line changes (such as binary files) that can't take an inline comment. If the PR's head moved on while you were reviewing, the body says so: the review is still posted on the commit you reviewed, and its inline comments may show as outdated.