audit: cycle 0006 tidy (clean) — glossary record-reality (sink is a role)

Architect drift review over 57310b8..HEAD: clean — no drift, no debt.
The C1/C7 boundary is correctly drawn (recorded values escape only via a
node-held mpsc::Sender with no out-edge; nothing recorded re-enters the
graph; the engine surface shrank). C2 holds (Ctx::now() is the present
cycle's ts). The C8/C22 cycle-0006 realization notes accurately describe
what shipped — no overclaim. Test fixtures stayed in #[cfg(test)] (C9).
Regression set is empty (profile) — architect is the sole gate; green.

Record-reality: the glossary 'sink' entry defined a sink as 'a pure
consumer node with no output', which the shipped TapForward node (records
AND forwards an output) now contradicts. Updated to reality: a sink is a
recording *role*, not a type — a node may be a pure consumer or record
and produce in the same eval (C8 'both'). No invention; the entry now
matches the substrate this cycle landed.
This commit is contained in:
2026-06-04 14:41:38 +02:00
parent 1100a60c76
commit 3a02fbf383
+1 -1
View File
@@ -157,7 +157,7 @@ The deterministic, frictionless, perfect-fill broker that emits synthetic equity
### sink
**Avoid:** —
A pure consumer node with no output that persists a stream (equity, position events, a node's output) into the run registry. The sole recording and observability mechanism: displayable = exactly what a sink recorded.
A node in its **recording role**: in `eval` it reads its inputs (and `ctx.now()`) and pushes the record to an out-of-graph destination it holds as a field (a channel, a chart handle, the run registry) — a role, not a type, so a node may be a pure consumer (no output) or record *and* forward an output in the same `eval` (the C8 "both" case). The sole recording and observability mechanism: displayable = exactly what a sink recorded.
### SoA
**Avoid:** Structure-of-Arrays