docs(ledger): correct stale realization notes — C12 sharing, aura-std, C15 SessionNode

Three drift items surfaced by the 2026-06-29 design-goal audit, all
recording shipped reality into the ledger (no contract change):

- C12: cross-sim `Arc<[T]>` sharing is no longer "still open" — the
  sweep/MC/walk-forward families build members over one shared
  `Arc<DataServer>`/`FileCache`, so a window is parsed once and shared
  zero-copy across the disjoint sims (aura-ingest/src/lib.rs:316).
- open-threads: `aura-std` is no longer "doc-only" — ~30 node modules.
- C15: record that `Session` deliberately ships only `bars_since_open`
  (the node's own contract), the other two streams deferred (refs #154).
This commit is contained in:
2026-06-29 11:17:39 +02:00
parent 8d04a845ee
commit d8946b1d7b
+26 -6
View File
@@ -995,10 +995,13 @@ parsed chunks read-only for the pass — ~56 B/record — so process residency i
O(records-touched); that is the **replay-many** sharing C12 wants — one window
parsed once across a sweep family — not a leak. The single-pass cost is tracked as
#95.) The eager `load_m1_window`/`close_stream` path is kept for bounded loads (the
gap closes by a streaming path *existing*, not by deleting the eager one). **Still open:**
cross-*sim* `Arc<[T]>` sharing — one window shared zero-copy across many disjoint
sweep sims — has no consumer until the orchestration families (axes 24 above:
#66/#68/#69) are built, and remains the target for those cycles.
gap closes by a streaming path *existing*, not by deleting the eager one). **Realized
(2026-06-29, family cycles shipped).** cross-*sim* `Arc<[T]>` sharing — one window shared
zero-copy across many disjoint sweep sims — is now in force: the sweep / Monte-Carlo /
walk-forward families (axes 24 above) build their members over **one** shared
`Arc<DataServer>` (one `FileCache`), so a window is parsed once and every member's
`M1FieldSource` borrows the same cached `Arc<[M1Parsed]>` chunks
(`crates/aura-ingest/src/lib.rs:316`). The single-pass *parse* cost stays tracked as #95.
**Realization (cycles 0028, 0049).** Axis 1 (param-sweep) is built. `GridSpace`
(0028) enumerates a cartesian lattice over discrete per-slot value-lists;
`RandomSpace` (0049) draws `N` seeded points over typed continuous `ParamRange`s
@@ -1078,6 +1081,18 @@ the live deploy edge (real broker) — needs them, read from the sidecar geometr
deferred to that consumer; #124 collapses to **recorded sidecar geometry → refuse**
in the meantime.
**Realization (SessionNode — `bars_since_open` only, by design; #154).** The
session-context half of this contract ships **one** scalar stream, not the three the
Guarantee lists: `Session` (`crates/aura-std/src/session.rs`) emits only
`bars_since_open: i64` (tz-aware, DST-correct, baked Frankfurt open). This is a deliberate
narrowing pinned in the node's own contract — *"there is no separate in-session bool gate,
`bars_since_open` alone is the contract"*: a downstream `EqConst(== N)` gate subsumes the
`in_session: bool` stream (pre-open instants give `<= 0`, which never match), and
`session_open_ts: timestamp` has no consumer. The two streams the Guarantee names remain
the original design intent, **deferred until a consumer needs them** (default-simple;
forward-queued as #154). The stream model is untouched — session context is still exposed
as scalar streams fed from beside the hot path.
### C16 — Engine / project separation; three-tier node reuse
**Guarantee.** aura is the reusable **engine**; each research project is a
separate external repo that depends on aura via cargo (the game-engine / game
@@ -1737,8 +1752,13 @@ load-bearing in the flat graph.
stamped on `FamilySelection` (there is no within-family winner to annotate). The
inferential half is now structurally built; the per-candidate OOS bootstrap (#139,
cycle 0075) is its adjacent significance read.
- **`aura-std` contents** — the crate exists (doc-only); which universal blocks
land first follows the walking-skeleton's needs.
- **`aura-std` contents** — substantively populated (~30 node modules): SMA/EMA,
arithmetic (`Add`/`Sub`/`Mul`/`Sqrt`/`LinComb`), logic (`And`/`Gt`/`Latch`/`EqConst`),
the `Delay` z⁻¹ register, `Resample`, `RollingMin`/`RollingMax`, `Session`, the R chain
(`Bias`/`FixedStop`/`Sizer`/`PositionManagement`), the legacy `SimBroker` pip yardstick,
the cost-model graph (`CostNode`/`CostRunner`/`CostSum` + `ConstantCost`/`VolSlippageCost`/
`CarryCost`), and the `Recorder`/`GatedRecorder`/`SeriesReducer` sinks. Further blocks
land demand-driven as the walking-skeleton needs them.
- **`strategies/` split** — a later split, *inside a project*, of top-level
strategies from reusable building blocks in `nodes/`; not a day-1 cut.
- **Sequencing** — the runnable single-harness *substrate* comes first (walking