commit: should inline the full diff as relayed hunks
COMMIT-001 (landed dac9dab7) made be commit:?<sha> append a navigable diff:?<sha> link after the metadata, keeping keeper diff-free. In use that is one click too many: the user wants commit: to read like git show — commit metadata immediately followed by the FULL diff, inline, as dog/HUNK hunks. Since keeper owns commit: and graf owns diff: (separate dog binaries, DOG routes), keeper must NOT re-roll diff rendering; instead the dispatcher RUNS graf's diff:?<sha> for the SAME resolved sha and RELAYS its hunk stream after the commit-metadata hunk — exactly the capture-and-replay mechanism the sub recursion already uses. This supersedes COMMIT-001's link.
commit:→keeper, diff:→graf in DOG_PROJECTORS (dog/DOG.c:36,41); they are separate executables, so keeper cannot call graf's renderer.KEEPProjCommit (keeper/PROJ.c ~501-508) appends a diff:?<sha40> U tok32 click-target after headers+message.beagle/BE.cli.c:1104 (DOGProjectorDog(u->scheme) → exec). A capture-and-relay primitive already exists for subs: beagle/SUBS.c be_recurse_capture (fork + execvp self, capture child TLV, re-emit) and dog/HUNK.c HUNKu8sRelay (rebases each child hunk's uri, re-emits in the parent's HUNKMode).be commit:?<sha> emits: (1) the commit-metadata hunk (headers + message, subject bold per the landed tweak), then (2) the full unified diff of that commit as the hunks graf's diff:?<sha> produces — relayed, not re-rolled.diff: does (so sub-pin-bump commits inherit DIFF-001's structural sub-diff for free).diff:?<sha> link from KEEPProjCommit (or keep it only as the machine-mode U nav anchor if TLV consumers still want it — decide during impl).diff: is the one commit: resolved (keeper already resolves it; reuse that, don't re-resolve in two places).dog/HUNK stream; no mutation; all four URI slots still compose.HUNKu8sRelay / be_recurse_capture; do not invent a second relay.commit: — run keeper commit:?<sha> for the metadata hunk, then run graf diff:?<sha> and relay its hunks into the same output, single resolved sha threaded through. Option B: keeper keeps emitting the link and BE expands any diff:? U-link into the actual relayed hunks (more general, more surface). Lean A — it is literally "run it, relay hunks".commit: on a parent must emit parent metadata + parent diff, THEN recurse into subs (mirror diff:'s existing sub fan-out so pins render once, in order) — audit against the DIFF-001 diff-sub relay so the two stay coherent.BE.cli.c:1104 dispatch.commit: step into a diff:?<sha> graf run; relay via HUNKu8sRelay.test/commit/01-diff-link (or a new commit/02-inline-diff) — assert be commit:?<sha> output contains BOTH the metadata header AND the diff body (e.g. the changed token), in Color/Text/TLV; sub case asserts the sub's pin-range diff is relayed under the subpath.diff: shows — DIFF-001 (landed 018a59c4) already fixed sub-pin-bump commits, so commit-show on a pin bump should now render the sub's content diff once chained.df596d0f (Option A): be dispatcher resolves ?<ref>→sha40 once (becommit_resolve_sha), runs keeper commit:?<sha> as a reaped pre-producer for metadata, then relays graf diff:?<sha> hunks after via the existing diff sub-fanout (BERunPipeSubs pre-producer leg). COMMIT-001 link dropped from KEEPProjCommit. Tests 01 rewritten + 02/03 added; 372/372 green.