docs(ledger, glossary): ratify the fold summary-row timestamp semantics
Fieldtest spec_gap (#335): the timestamp a fold's one summary row carries was undocumented. Ratified as-is (derived decision, minuted on the issue): the row is emitted at finalize and stamped with the instant of the last contributing (warm) value (TapFold::last_ts) — first alone pins the first contributing instant, and min/max deliberately do not carry the extremum's instant (a whole-window row privileges no interior instant, and the extremum ts would cost extra state for no consumer). The issue's initial finalize-ts reading (and the first draft of this ratification) was refuted in review against tap_fold.rs: a tap that goes cold before run end stamps the last WARM eval's instant, not the run-end instant — observationally identical only while the tap stays warm to the end, which is what the fieldtest fixtures did. Correction minuted on the issue. Recorded in C27's Current state and the glossary tap-plan paragraph; the fold-registry roster doc lines state it on the surface itself (sibling commit). closes #335
This commit is contained in:
@@ -84,11 +84,11 @@ consumer (`aura-runner::tap_recorder::TapRecorder`) holds the trace store's
|
||||
streaming writer in-graph — `initialize` opens (deferred acquisition), `eval`
|
||||
appends `(Timestamp, Cell)` (zero per-cycle heap, #77), `finalize` reports
|
||||
exactly one terminal outcome; fold consumers (`aura-std::TapFold`) land one
|
||||
summary row, stamped with the source value's own timestamp for `first`/`last`
|
||||
(they pin a single source instant) and with the finalize timestamp for the
|
||||
accumulator folds (`count`/`sum`/`mean`/`min`/`max` summarise a range and have
|
||||
no single source instant; `min`/`max` deliberately do not carry the extremum's
|
||||
timestamp — ratified as-is, #335); live closures run inline
|
||||
summary row, emitted at finalize and stamped with the instant of the last
|
||||
contributing (warm) value — `first` alone pins the first contributing
|
||||
instant; `min`/`max` deliberately do not carry the extremum's timestamp (a
|
||||
whole-window row privileges no interior instant) — ratified as-is, #335;
|
||||
live closures run inline
|
||||
(`aura-std::TapLive`). The sweep/reduce
|
||||
path never calls `bind_tap`.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user