- tests/conformance/local_column.rs: the first dual-tier column, run
against the kv = mem + large = local factory (ADR-012 §6.3) — fresh
temp-root store per open, per-instance tracked roots, idempotent
teardown safe against abandoned/panicking rows (structural tests
included); never skips (mem-gated — the dual-tier constructor rides
feature mem until wave 3 provides an ungated kv engine)
- the reference INV row set (rows.rs) mirrored against the dual-tier
factory at a column-declared tuned threshold (1024), so the shared
matrix and race fixtures exercise both tiers' bodies (INV-7)
- dispatch rows grown: pure-function routing across put paths and
re-puts with an on-disk placement oracle (tier residency is
facade-invisible; with kv = mem the medium is the oracle), threshold
boundary legs at the tuned and shipped-default thresholds with the
constructor-tuned re-route leg, and fall-through per op with
both-tier miss shapes (ADR-003/ADR-012 §6.1/§6.3/§6.5)
- local-specific rows: on-disk stage-hygiene exact counts over both
put paths (the real stage form, INV-3), pread windows over committed
files with slice digests verified independently (ADR-006/ADR-010),
virgin-store no-ops on a fresh root, and exact sweep counts over a
both-tiers pool (INV-4/INV-5's both-tiers form)
- rows.rs shared fixtures made pub(crate); README records the column's
row inventory (§Columns beyond the reference set), the declared-
threshold posture, and the new current state
- stat-as-stat rides the mirrored INV-6 row's over-threshold legs;
the Drop-cancellation hygiene form stays per-engine (recorded)
Verification: cargo test (default) green; cargo test --features mem
green (97 lib + 37 conformance + 4 git-interop); cargo test
--all-features green; clippy --all-targets -D warnings green in both
feature shapes (default + all-features); cargo fmt --check green;
cargo doc --no-deps shows only the pre-existing warning class
Nine tasks against the wave-1 contract surface as reviewed (no
amendments from the gate):
- engine-mem / engine-local (parallel, dependency-free): the two
engines; local owns the stage-hygiene exact-count tests and the
Drop-cancellation story the wave-1 review recorded
- store-construction: the Store type, constructor modes, size-threshold
dispatch; binds the conformance factory's Store associated type
- store-read-paths ∥ gc-protocol: read ops with the ADR-012 §6.1
fall-through rule; the ADR-005 in-process protocol (pins, liveness,
delete windows, abort-as-data, GcRefuse with the full protection set)
- store-put-paths: the two put paths behind one signature, ADR-003's
three numbered rules, pin-before-publish, Batch, kv-only rejection
- suite-column-mem → suite-column-local: the reference column, then the
dual-tier dispatch-coverage shape mirroring it
- review-wave-2: the gate (facade/dispatch/GC vs ADR-003/005/012)
Verification: dependency graph validated (all ids resolve, no cycles,
topological order clean); docs-only change.
Refs: docs/plans/implementation.md §Wave 2