docs(tasks): correct the wave-5 pure-build gates — the literal kv-less pg-lo config is not a gate

The wave-5 engine task (d69d9a3) found the literal
--no-default-features --features pg-lo config cannot compile the whole
crate: with no kv feature enabled, KvEngine/KvCursor go empty (E0004)
and the facade's by-reference dispatch matches are non-exhaustive
(references are always considered inhabited). Structural, not a bug —
per ADR-011 §4 every constructor mode pairs a kv engine, so a build
with zero kv engines is not a supported configuration (ADR-013 §4's
supported non-default configurations all include one).

The meaningful pure builds, verified on this tree:
- --no-default-features --features "pg-lo,mem" — check/test/clippy
  green (115 tests ok server-less)
- --no-default-features --features "postgres,pg-lo" — check/clippy
  green, test target compiles

Amended: engine-pg-lo (description + acceptance + gates),
engine-pg-lo-window (acceptance), store-pg-lo-construction (the full
structural reading + acceptance), review-wave-5 (gates). The engine
task's Notes/Summary already recorded the finding; the criteria text
now matches what was verified.

Verification: cargo test 69/19/3 ok, fmt --check green (docs-only
change).
This commit is contained in:
glm-5.3-flash committed 2026-10-12 07:36:32 +00:00
1 parent d69d9a345b
commit fb24f30e0a
4 files changed
+50 -21

No files matched your search

+4 -1
View File
@@ -88,7 +88,10 @@ engine-level contract tests.
- [ ] `cargo test` (default) green; `cargo test --features pg-lo` - [ ] `cargo test` (default) green; `cargo test --features pg-lo`
green server-less (skipping); `cargo clippy --all-targets -- -D green server-less (skipping); `cargo clippy --all-targets -- -D
warnings` and `cargo fmt --check` green (default + `--features warnings` and `cargo fmt --check` green (default + `--features
pg-lo`); the pg-lo-pure check clean pg-lo`); the pg-lo pure builds clean (`--no-default-features
--features "pg-lo,mem"` and `--features "postgres,pg-lo"` — the
literal kv-less config is not a gate, see
`store-pg-lo-construction`)
## References ## References
+17 -9
View File
@@ -22,9 +22,15 @@ posture (pool, prepared statements, schema bootstrap, error mapping);
the local engine (`src/local.rs`) is the structural twin for the the local engine (`src/local.rs`) is the structural twin for the
large-tier bodies (streaming read cursor, staged put). **`pg-lo` does large-tier bodies (streaming read cursor, staged put). **`pg-lo` does
not imply `postgres`** (ADR-013 §4's consequence; the Cargo.toml not imply `postgres`** (ADR-013 §4's consequence; the Cargo.toml
feature carries its own driver deps) — every shared piece must feature carries its own driver deps) — every shared piece must compile
compile under `--no-default-features --features pg-lo` (the pg-lo-pure under the **pg-lo pure builds**: `--no-default-features --features
build). "pg-lo,mem"` and `--no-default-features --features "postgres,pg-lo"`.
**The literal kv-less config (`--no-default-features --features
pg-lo`) is not a gate and cannot compile the whole crate** — with no kv
feature enabled, `KvEngine`/`KvCursor` go empty and the facade's
by-reference dispatch matches are non-exhaustive (E0004; references
are always considered inhabited) — see `store-pg-lo-construction` for
the full reading.
- **Engine shape (POC #7 C1 is the contract)** — two artifacts: LOs - **Engine shape (POC #7 C1 is the contract)** — two artifacts: LOs
hold the bytes; the companion table hold the bytes; the companion table
@@ -47,8 +53,8 @@ build).
helpers) live behind `#[cfg(feature = "postgres")]` today — decide helpers) live behind `#[cfg(feature = "postgres")]` today — decide
and record the sharing shape (the natural one: a crate-internal and record the sharing shape (the natural one: a crate-internal
pg-common module gated `cfg(any(feature = "postgres", pg-common module gated `cfg(any(feature = "postgres",
feature = "pg-lo"))`, one module per file, so the pg-lo-pure build feature = "pg-lo"))`, one module per file, so the pg-lo pure builds
compiles without duplication). The `PgOpts` question rides the same compile without duplication). The `PgOpts` question rides the same
point: it is `pub` and re-exported behind `postgres` (wave 4's point: it is `pub` and re-exported behind `postgres` (wave 4's
constructor signature put it on the public surface) — widening its constructor signature put it on the public surface) — widening its
gate to `any(postgres, pg-lo)` (re-export gate widened with it) vs a gate to `any(postgres, pg-lo)` (re-export gate widened with it) vs a
@@ -193,16 +199,18 @@ engine and its in-module unit tests only.
returned + VACUUM FULL operator line + rel-size monitoring; returned + VACUUM FULL operator line + rel-size monitoring;
autovacuum inherited; the cached-get capacity facts) autovacuum inherited; the cached-get capacity facts)
- [ ] Shared-helper + PgOpts + LO-isolation design points decided and - [ ] Shared-helper + PgOpts + LO-isolation design points decided and
recorded; the pg-lo-pure build (`--no-default-features recorded; the pg-lo pure builds (`--no-default-features
--features pg-lo`) compiles clean --features "pg-lo,mem"` and `--features "postgres,pg-lo"`)
compile clean (the literal kv-less config is not a gate — see
the Description)
- [ ] Unit tests env-driven (`ALKBLOBS_PG_*`), skipping cleanly - [ ] Unit tests env-driven (`ALKBLOBS_PG_*`), skipping cleanly
server-less; green against the harness server at acceptance; server-less; green against the harness server at acceptance;
zero schema + LO residue on the shared db after runs zero schema + LO residue on the shared db after runs
- [ ] `cargo test` (default — pg-lo compiles out) green; - [ ] `cargo test` (default — pg-lo compiles out) green;
`cargo test --features pg-lo` green server-less (skipping); `cargo test --features pg-lo` green server-less (skipping);
`cargo clippy --all-targets -- -D warnings` and `cargo fmt `cargo clippy --all-targets -- -D warnings` and `cargo fmt
--check` green (default + `--features pg-lo` + the pg-lo-pure --check` green (default + `--features pg-lo` + the pg-lo pure
check) builds)
## References ## References
+6 -3
View File
@@ -75,9 +75,12 @@ Gate checks:
`#![allow(dead_code)]` scope notes matching their remaining scope. `#![allow(dead_code)]` scope notes matching their remaining scope.
- **Gates green**: `cargo test` (default), `cargo test --features - **Gates green**: `cargo test` (default), `cargo test --features
pg-lo` (server-less: skipping), `cargo test --features "pg-lo,mem"`, pg-lo` (server-less: skipping), `cargo test --features "pg-lo,mem"`,
`cargo test --all-features` (against the server), the pg-lo-pure `cargo test --all-features` (against the server), the pg-lo pure
checks (`cargo check --no-default-features --features pg-lo` and builds (`cargo check --no-default-features --features "pg-lo,mem"`
`--features "pg-lo,mem"`), `cargo clippy --all-targets -- -D and `--features "postgres,pg-lo"` — the literal kv-less
`--features pg-lo` config is not a gate: with no kv engine the
facade's `KvEngine`/`KvCursor` go empty, E0004; see
`store-pg-lo-construction`), `cargo clippy --all-targets -- -D
warnings` (default + the pg-lo variants + `--all-features`), warnings` (default + the pg-lo variants + `--all-features`),
`cargo fmt --check`, `cargo doc --no-deps`. `cargo fmt --check`, `cargo doc --no-deps`.
+23 -8
View File
@@ -103,12 +103,25 @@ the durable window gains its large-engine host arm.
proof). Env-driven (`ALKBLOBS_PG_*`), skipping cleanly server-less proof). Env-driven (`ALKBLOBS_PG_*`), skipping cleanly server-less
(the engine tests' convention); the janitor discipline rides from (the engine tests' convention); the janitor discipline rides from
the start (amendment A2). the start (amendment A2).
- **The pg-lo-pure builds** — `cargo check --no-default-features - **The pg-lo pure builds** — the supported non-default configurations
--features pg-lo` (engine + window family compile, constructors are `cargo check/test --no-default-features --features "pg-lo,mem"`
cfg'd out where `mem` is absent) and (the one-window-host topology's build; the mem-pglo constructor
`cargo test --no-default-features --features "pg-lo,mem"` (the constructible) and `cargo check --no-default-features --features
mem-pglo constructor constructible): ADR-013 §4's supported "postgres,pg-lo"` (ADR-013 §4's pg-pure consolidation build); verify
non-default configurations; verify both compile clean. both compile clean. **The literal kv-less config
(`--no-default-features --features pg-lo`) is not a gate and cannot
compile the whole crate** — do not burn time on it: with no kv
feature enabled, `KvEngine`/`KvCursor` go empty (E0004) and the
facade's by-reference dispatch matches are non-exhaustive
(references are always considered inhabited, so an empty enum behind
`&` still requires arms). This is structural, not a bug: per ADR-011
§4 every constructor mode pairs a kv engine, so a build with zero kv
engines is not a supported configuration (ADR-013 §4's supported
non-default configurations all include one). The shared pieces
themselves (pg_common, the engines) compile in the literal config —
only store.rs errors. The finding is the wave-5 engine task's
(d69d9a3, recorded in its Notes); this task's verification uses the
two meaningful builds above.
## Acceptance Criteria ## Acceptance Criteria
@@ -128,8 +141,10 @@ the durable window gains its large-engine host arm.
branch keys off the engine representation, never a flag branch keys off the engine representation, never a flag
- [ ] The connection-settings design point (two DSN+opts pairs; the - [ ] The connection-settings design point (two DSN+opts pairs; the
consolidation corollary) decided and recorded consolidation corollary) decided and recorded
- [ ] The pg-lo-pure builds (`--no-default-features --features pg-lo` - [ ] The pg-lo pure builds (`--no-default-features --features
and `--features "pg-lo,mem"`) compile clean "pg-lo,mem"` and `--features "postgres,pg-lo"`) compile clean
(the literal kv-less config is not a gate — see the Description
bullet)
- [ ] `cargo test` (default) green; `cargo test --features pg-lo` and - [ ] `cargo test` (default) green; `cargo test --features pg-lo` and
`--features "pg-lo,mem"` green server-less (skipping); `--features "pg-lo,mem"` green server-less (skipping);
`cargo clippy --all-targets -- -D warnings` and `cargo fmt `cargo clippy --all-targets -- -D warnings` and `cargo fmt