Skip to main content
Reference · Information

Diff Viewer

Live Pane type

Side-by-side LCS diff — correct insertions, deletions, replacements. Works with file pairs or git revisions.

Hunks + severity-tagged annotations (V.12a)

The diff renders as a sequence of LCS-derived hunk blocks (@@ -orig, +mod) — red removed rows on top, green added rows below — and a sidebar listing annotations grouped by hunk. Each annotation carries a frozen severity tag: [must-fix], [suggestion], [question], [nit]. Sidebar order is hunk-top-to-bottom, then severity-weight DESC, then createdAt ASC. Click any sidebar row to scroll the matching hunk into view; the file bar shows a chip count for each severity (always all four chips, even when the count is zero).

HookRouter denial pipe (V.12b)

Denials that block real work — ConfirmationGate .deny on a write/exec tool, budget gate .block — feed [must-fix] annotations into this sidebar via HookAnnotationFeed. The pane subscribes once on appear and converts each admitted record to a DiffAnnotation pinned to the first hunk when the deny's filePath matches the active comparison's leftPath or rightPath. A per-minute rate cap (default 5 must-fix per 60 s) suppresses floods without changing the deny response — the agent still sees the deny; only the badge in this sidebar is dropped. Closed windows with at least one suppression write a row to annotation_rate_cap_log (Migration v13).

Read / Bash / Grep advisory denials (the routing nudges that send the agent toward mcp__senkani__read / exec / search) deliberately do not emit annotations — those aren't policy violations, and badging every redirect would defeat the rate cap.

Keyboard

Open via ⌘K → type the pane name. Close with ⌘W. Focus with ⌘+digit (the pane's position on the canvas).

Related