diff: shows the whole file, changes highlightedA hunk nav-URI like diff:ast/BAST.c#L362 (the U link bro emits on each diff
hunk) currently opens a FILE-SCOPED diff: that shows only that file's changed
hunks, scrolled to the line. For a single file the user wants the opposite of
the dir/tree view: render the WHOLE file content with the changed lines
highlighted in place (like git diff --color over the full file, a review
pane), so a change reads in full surrounding context. Tree/dir diff: keeps
showing only changed hunks. Method: Issues.
diff: is URI-driven (graf/DIFFREF.c: "file or whole tree, ref vs wt or
ref vs ref"). A file path scopes to that file; today it emits only the
file's changed hunks.U nav-URI per hunk carrying a #L<n> line anchor (dog/HUNK.c
fragment grammar; built via HUNKu8sMakeURI, graf/WEAVE.c). Clicking it
re-dispatches diff:<path>#L<n> — the entry point for this view.diff: (changed-hunks-only), which must NOT change.be diff:<file>#L<n> (file-scoped) renders the FULL file, every line, with
added/removed/changed lines highlighted in place and the #L<n> anchor
honored for scroll/jump.diff: (no single-file path) stays changed-hunks-only.graf/DIFFREF.c,
graf/WEAVE.c); emit unchanged context lines tagged so bro highlights.abc/ untouched; read-only dog/HUNK stream; all four URI slots compose.diff: URI should make
DIFFREF emit all file lines (change-tagged), not just hunks — confirm the
branch/flag, and whether the ref-vs-ref line cap must lift for one file.dog/HUNK tok tags bro already has for add/del/
change lines, and whether full-file context needs an "unchanged" tag.diff:; keep tree/dir scope
changed-hunks-only.#L<n> anchor for jump/scroll in the full-file view.diff:<file>#L<n> output contains an UNCHANGED line
far from any change AND the highlighted changed line, in Plain/Color/TLV;
tree-scope diff: still hunks-only (regression).eaa75793: file-scope diff: reuses the cat: emitter
WEAVEEmitFull (change-tagged, no windowing) via a b8 full flag threaded
through GRAFDiff2Layer; tree-scope keeps windowed WEAVEEmitDiff.WEAVEEmitFull gained a scheme param so dog/HUNK routes the full-file
hunk to the unified +/- formatter (cat: passes empty → byte-identical).
Test test/diff/11-file-scope-full; 373/373 green.