docs(review): the wave-2 review gate — every gate check green

Read the wave-2 implementation against the pinned ADR text line by
line (ADR-003/005/006/010/011/012/013 §2, store-api.md): the three
numbered unknown-length rules each test-backed, the delete-window
ordering invariants (arbitrate-at-delete-time, pin-before-publish on
both put paths and both tiers, raced conversion ordering,
delete-then-recover), abort-as-data with all three causes, dispatch
purity + fall-through + constructor modes + kv-only's two put-time
rejection points, stage-hygiene exact counts on both engines (incl.
the Drop-cancellation story), both suite columns green/ADR-stamped/
traceable with the factory binding recorded, the dispatch-coverage
shape exercised, all eight named design points recorded and
consistent, and the staged-put key-at-commit amendment audited
accepted. No wave-3 amendments arise.

Inline fixes applied by the gate:
- facade.rs: stale Batch::add dead-code allow + stale task-pointer
  comment removed (put_in_batch's call sites landed)
- dispatch.rs: module-level allow(dead_code) removed (route/Tier now
  driven; clippy clean without it), scope note updated
- backend.rs: the allow kept but its scope note corrected to what is
  actually dead (trait name, kv put until wave 3)
- mem.rs: stale constructor doc line updated to the landed state
- tasks/gc-protocol.md: stray placeholder lines removed

Verification: cargo test (42 lib + 2 conformance + 3 git-interop),
cargo test --features mem and --all-features (97 lib + 37 conformance
+ 4 git-interop), clippy --all-targets and --all-features --all-targets
(-D warnings), fmt --check — all green post-fix. Wave 3 decomposition
unblocked.
This commit is contained in:
glm-5.3-flash committed 2026-10-11 23:42:42 +00:00
1 parent 45c456989f
commit 79cf1f0220
6 files changed
+195 -25

No files matched your search

+4 -3
View File
@@ -30,9 +30,10 @@
//! (ADR-002/006). GC state never rides this trait either (ADR-010 §2) —
//! the crate-internal engine-state companion seam lives in [`crate::gc`].
//!
//! The `#![allow(dead_code)]` below marks the seam's scope: these items are
//! the wave-1 contract surface, defined ahead of their drivers (the store
//! core and engines of waves 2–5). It shrinks as those waves land.
//! The `#![allow(dead_code)]` below still has real scope: `Backend`
//! trait items with no in-tree caller yet (reporting names, the kv
//! engines' whole-value `put` before wave 3) plus the wave-1 seam
//! tests' doubles. It shrinks as the waves land.
#![allow(dead_code)]
+1 -6
View File
@@ -20,15 +20,10 @@
//! mode machinery, not here: this module routes lengths, it does not
//! own modes.
//!
//! The `#![allow(dead_code)]` below marks the seam's scope: `route` is
//! driven by the facade's write-side tier selection (`Store::tier_for`),
//! whose own caller is the put seam (store-put-paths); the allow shrinks
//! as those land. Read-side ops do not consult `route` — the
//! Read-side ops do not consult `route` — the
//! fall-through consult order is the facade's (kv first, then large;
//! ADR-012 §6.1).
#![allow(dead_code)]
/// The default dispatch threshold in bytes: 128 KiB — the conservative
/// edge of the measured ~128–256 KiB crossover zone (ADR-003; POC #3
/// finding A4's first-party benchmark). Constructor-tunable per
-1
View File
@@ -231,7 +231,6 @@ impl Batch {
/// Contribute a put's pin to the group (store-core call). The
/// contributed guard is defused — its own drop releases nothing;
/// the batch's one-step release owns the protection from here.
#[allow(dead_code)] // the batching put seam wires the call sites (store-put-paths); exercised by the tests
pub(crate) fn add(&mut self, pin: Pin) {
let mut pin = pin;
pin.armed = false;
+2 -3
View File
@@ -35,9 +35,8 @@ use crate::Error;
///
/// Clone shares the map, so a cloned [`Backend`] handle and every
/// [`MemStaging`] issued from either see the same table — the shape
/// `put_staged`'s out-of-band commit requires. Clone is the constructor
/// until dispatch names the engine (ADR-013 §4's feature graph; the
/// store's `mem` construction lands with its wave's dispatch task).
/// `put_staged`'s out-of-band commit requires. The facade's `mem`
/// constructors construct it with `Default`.
#[derive(Clone, Default)]
pub(crate) struct MemBackend {
rows: Arc<Mutex<BTreeMap<Vec<u8>, Vec<u8>>>>,