audit: cycle 0041 — drift-clean (Source ingestion seam)
Architect drift review over 8b330e3..HEAD (the Source-seam cycle #71 plus the interim #67 optimize work and refactors). No semantic or contract drift: the seam faithfully preserves C3 (ms→epoch-ns at the one ingestion boundary), C4 (tie-by-source-index, byte-for-byte), and C7 (field-per-source SoA); the full suite is byte-identical green and the gated streaming tests pass on real data. Regression gate: `cargo test --workspace` green (the project declares no dedicated regression script; the suite is the gate). Tidied stale prose the cycle left behind (no behaviour change): - docs/design/INDEX.md (C12): replaced the cycle-0011 "deliberate eager gap" status note with a cycle-0041 realization note — the producer `Source` seam + streaming `M1FieldSource` now deliver per-source O(one-chunk) streaming; precisely scopes what remains open (cross-*sim* Arc<[T]> window sharing, still unbuilt until the orchestration families #66/#68/#69 consume it). - aura-core/src/lib.rs: dropped the now-shipped "Source trait + data-server ingestion" from the module doc's "still to come" list (aura-engine's twin line was fixed in the cycle; aura-core's was missed). - aura-ingest/src/lib.rs: module header now documents both coexisting paths (eager load_m1_window/M1Columns vs lazy streaming M1FieldSource). - aura-registry/src/lib.rs: rank_by/optimize doc comments linked to the private `metric_cmp` (a public→private intra-doc-link warning from the #67 commit); demoted to plain code spans, so `cargo doc --workspace` is now warning-clean.
This commit is contained in:
+12
-6
@@ -527,12 +527,18 @@ unit: (1) param-sweep (grid/random), (2) optimization (argmax metric),
|
||||
(3) walk-forward (rolling in-sample optimize + out-of-sample test),
|
||||
(4) Monte-Carlo (N seeded realizations perturbing input). **MC = sweep over
|
||||
seeds**; each realization is itself deterministic given its seed.
|
||||
*Status (cycle 0011).* The first ingestion (`aura-ingest`) **eagerly
|
||||
materializes** a data-server window into owned source streams rather than
|
||||
sharing `data-server`'s `Arc<[T]>` chunks zero-copy across sims — the cross-sim
|
||||
`Arc<[T]>` sharing has no consumer until the orchestration axes above are built.
|
||||
That sharing remains the target for the orchestration cycle that introduces
|
||||
them; the transpose logic is unchanged by it. A known, deliberate gap, not drift.
|
||||
**Realization (cycle 0041).** The eager ingestion of cycle 0011 is no longer the
|
||||
only path. `Harness::run` is re-typed to a **producer seam** — a `Source` trait
|
||||
(`peek`/`next`, object-safe) the k-way merge drives — and a streaming
|
||||
**`M1FieldSource`** (`aura-ingest`) pulls a data-server window lazily, borrowing
|
||||
**one** `Arc<[M1Parsed]>` chunk per pull (zero-copy *within* a source) and
|
||||
decoding each `Scalar` on demand: resident O(one chunk), not O(window length),
|
||||
so a 20-year window streams in the same memory as a one-day one. 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.
|
||||
**Forbids.** Baking a specific search strategy (Bayesian/genetic) into the
|
||||
primitive — those are pluggable policies atop the atomic unit; recompiling on a
|
||||
param change.
|
||||
|
||||
Reference in New Issue
Block a user