Blame today prepends a fixed-width gutter to every source line (graf/BLAME.c
~line 757: BLAME_HW chars + an L-tok before each line), so the commit
metadata shares the line with the code. That is the root of the bro
breakage: the gutter is counted in the wrap width (wraps early), soft-wrap
mangles the table, and the line can't be syntax-highlighted. Restructure the
output into dog/HUNK hunks — one per commit-run — moving the metadata off the
code line entirely. See Projector, Bro, BLAME-004.
hunk is { ron60 ts; ron60 verb; u8cs uri; text + tok32 syntax tags }
(dog/HUNK.h). That triple is the DATA; HOW it's drawn (header layout,
highlighting, wrap) is the SHARED bro renderer's job (HUNKu8sFeedText/
Color/Html), not the producer's. So blame's only job is to PRODUCE hunks.ts = commit time, verb,
uri = the commit ref (commit:?<sha>, clickable via the existing
renderer), and the run's verbatim source as the hunk text + tok32
syntax tags.BLAME_HW+L-tok gutter entirely — the commit no longer
rides the source line, so the shared renderer can highlight/wrap the body
correctly (that's where the bro bugs get fixed, for ALL projectors).blame: stays graf-owned; output is a dog/HUNK stream. Presentation is
OUT OF SCOPE here — it belongs to the shared bro renderer.{ts, verb, uri}+body; the renderer draws it.outbuf overflow, so it subsumes
BLAME-004 once landed (BLAME-004 is the minimal crash fix meanwhile).d2a7219c; run-hunk emit at graf/BLAME.c:655,741, BLAME_HW gutter and
the per-line L-tok gone from graf/ entirely; hunk URI commit:?<8hex>#<subject>
refined by 28d0b72d/ea70dbe7.graf/test/blame-runs.sh asserts the hunk-per-run stream; the
large-file overflow is gone with the streaming emit (BLAME-004's rewind
43e90bdb covers the fold scratch).d2a7219c ("BLAME-005: blame produces per-commit-run hunks", 2026-06-15): one dog/HUNK content hunk per maximal commit-run, metadata on the hunk header, body highlighted/wrapped by the shared renderer; gutter removed.28d0b72d (hunk uri commit:?<8hex>#<subject>), ea70dbe7 (resolve those links), 43e90bdb (BLAME-004 BNOROOM rewind, the stopgap this subsumed).