feat(store): the sqlite constructor wiring — the default-build store shapes

- KvEngine::Sqlite slots in; all six kv ops dispatch; the kv cursor
  body dispatches through a new KvCursor sub-enum behind AnyCursor's
  one kv arm (the kv-arm-over-multiple-kv-engines design point,
  recorded)
- dual_tier_sqlite_local (kv = sqlite + large = local, the
  default-build production shape) and kv_only_sqlite constructors —
  both feature-gated on sqlite (default-on), both taking the
  threshold and the delete-window delay, fallible where I/O is
  fallible (Err(Error::Io) per the dual_tier_mem_local pattern)
- ensure_gc_schema runs at construction via the engine-neutral
  KvEngine call (sqlite's body creates gc_window only); the
  window-delay shipped default is the pinned
  DEFAULT_DELETE_WINDOW_DELAY (5 min, ADR-008 §2), constructor-
  tunable, Duration::ZERO legal — the store carries the value for
  the sweep's durable form to consume
- the one-window-host posture recorded in the module doc (the
  durable window hosts on the kv engine when it is SQL-backed; wave
  5's pg-lo dormancy slots in without reshaping)
- stale empty-set scaffolding updated to the landed state: the
  #[allow(unused_variables)] attrs off the KvEngine methods; the
  scope notes in store.rs, backend.rs, sqlite.rs, gc.rs
- constructor unit tests: mode/threshold/window-delay introspection,
  the GC schema observed in the fresh database (window table present,
  gc_pins never), kv-only rejection wiring unchanged, and the
  dual-tier shape round-tripping end-to-end through both tiers

Verification: cargo test 62 passed (default; 5 new tests), cargo test
--all-features 117, cargo test --features mem 117, --no-default-
features --features mem 97; cargo clippy --all-targets -- -D warnings
clean (default + all-features); cargo fmt --check clean; cargo doc
--no-deps at the pre-existing warning baseline.
This commit is contained in:
glm-5.3-flash committed 2026-10-12 04:50:22 +00:00
1 parent 51d8f6525f
commit 2993df0e36
6 files changed
+673 -64

No files matched your search

+7 -3
View File
@@ -31,9 +31,13 @@
//! the crate-internal engine-state companion seam lives in [`crate::gc`].
//!
//! 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.
//! trait items with no in-tree caller yet (the engines' reporting
//! names — the dispatch/conformance identity the reporting and fleet
//! waves consume) plus the wave-1 seam tests' doubles. The kv engines'
//! whole-value `put` gained its in-tree callers in wave 3 (sqlite is
//! the default build's kv engine and the facade's put seam drives the
//! kv tier through it); the allow shrinks as the remaining callers
//! land.
#![allow(dead_code)]