commit: projection should surface the diff after the metadatabe commit:?<sha> (keeper projector, see Projector) emits only the commit
object body — headers then message — so it shows who/when/why but never what
changed. git show folds the diff in; beagle keeps them split, forcing a
second be diff:?<sha>. This ticket surfaces the diff from commit:.
commit: is keeper-owned and emits headers + message only; diff: is a
separate graf-owned projector. There is no single "show this commit" view.commit: reads
like git show.diff:?<sha> (graf's projector)
that Bro can follow — keeps commit: single-purpose, reuses graf's diff
renderer, no diff code in keeper.commit:,
graf owns diff:. Do NOT re-roll diff rendering inside keeper — link to
(or invoke) graf's diff:.dog/HUNK stream for Bro; no mutation; all four URI slots still
compose.diff:?<sha> for the sha the commit: URI resolved to.KEEPProjCommit (keeper/PROJ.c), diff: query form is the
one that triggers graf's commit-show (# fragment renders empty).diff:?<sha40> U tok32 click-target after the
headers+message; Bro follows it (existing link primitive, no new dep).test/commit/01-diff-link.diff: shows — now fixed for sub-pin-bump
commits by DIFF-001 (landed 018a59c4).dac9dab7 — commit: appends a navigable diff:?<sha> link (query
form) via bro's U click-target; keeper gains no diff logic / no graflib
dep, dog boundary intact. 289/289 green.