Wave-3 decomposition: SQLite engine tasks (open/opts, seam+tx, mechanisms, integration, review gate) + core value-constructor pre-work; plan synced for waves-1-2 review + ADR-023 follow-through
This commit is contained in:
1 parent
44637eea5b
commit
1269246faf
11 files changed
+883
-5
No files matched your search
@@ -0,0 +1,74 @@
|
||||
---
|
||||
id: review-wave-3
|
||||
name: Review gate — wave 3 (SQLite engine)
|
||||
status: pending
|
||||
depends_on: [sqlite-engine-integration]
|
||||
scope: moderate
|
||||
risk: low
|
||||
impact: phase
|
||||
level: review
|
||||
tags: [wave-3, review]
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
Review the SQLite engine before wave 4 (or 5) decomposes. Primary
|
||||
lens per the plan's review gates: **engine-vs-contract conformance** —
|
||||
the engine crate now carries the first real consumer surface, so this
|
||||
is the gate that checks the code against the pinned contract text
|
||||
line by line (the wave-1 gate's discipline, now against an
|
||||
implementation that must *honor* the surface, not just declare it).
|
||||
|
||||
Check:
|
||||
|
||||
- **Contract conformance**: every trait method's behavior against
|
||||
core-contract.md's per-mechanism text — validation at entry points
|
||||
(auto-commit AND tx paths), error arms (`Database`-only receivers,
|
||||
`Codec` at payload seams, `LeadershipLost` vs clean stop), value
|
||||
shapes (`Job`/`StreamEvent` field-for-field), the no-work-is-a-value
|
||||
vocabulary (`None`/`false`/empty-`Vec` where pinned, never errors).
|
||||
- **ADR-023 follow-through**: the extent guards actually sit at the
|
||||
trait-impl entry (not substrate-side patches); duration guards on
|
||||
both lock call sites; plain-path open holds; `poll_interval` wired;
|
||||
`encode_payload` consumed fallibly at every call site.
|
||||
- **Seam integrity**: drop = rollback under panic; writer-slot lease
|
||||
released on every path (commit, rollback, drop, error);
|
||||
`spawn_blocking` used consistently (no blocking call inside async
|
||||
context, no connection moved across await).
|
||||
- **Substrate boundary**: still contract-blind (no `alkstore::` under
|
||||
`src/substrate/`); the lint removal didn't leave dead ported code
|
||||
behind; any new divergence registered in PROVENANCE.md.
|
||||
- **Backoff curve**: the engine-side formula matches ADR-010 §3's
|
||||
pinned range and cap exactly (wave 4 re-derives it; wave 5 pins
|
||||
equivalence — this gate checks the one implementation against the
|
||||
text).
|
||||
- **Backlog column**: the engine's suite rows present, stamped, green.
|
||||
- **Family standards**: no panics, no unwrap/expect outside tests, no
|
||||
inline comments (doc comments fine), module-per-file.
|
||||
- **Gates**: full workspace build/test/clippy/fmt.
|
||||
|
||||
## Acceptance Criteria
|
||||
|
||||
- [ ] Contract conformance spot-checked against the spec text (not
|
||||
just the tests)
|
||||
- [ ] ADR-023's five backlog rows verified implemented as decided
|
||||
- [ ] Seam/lease/rollback paths verified (code-read, not test-name-trust)
|
||||
- [ ] Substrate boundary + provenance register still clean
|
||||
- [ ] All gates green
|
||||
- [ ] Findings recorded; wave 4/5 decomposition may proceed
|
||||
|
||||
## References
|
||||
|
||||
- docs/plans/implementation.md (Review gates)
|
||||
- docs/architecture/core-contract.md
|
||||
- docs/architecture/engine-sqlite.md
|
||||
- docs/architecture/decisions/023-fourth-review-round.md
|
||||
- docs/reviews/2026-10-08-waves-1-2-general-review.md (the posture this gate inherits)
|
||||
|
||||
## Notes
|
||||
|
||||
> To be filled by implementation agent
|
||||
|
||||
## Summary
|
||||
|
||||
> To be filled on completion
|
||||
Reference in new issue
Block a user