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:
+26
-6
@@ -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 2–4 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 2–4 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
|
||||
|
||||
Reference in New Issue
Block a user