2.6 KiB
id, name, status, depends_on, scope, risk, impact, level, tags
| id | name | status | depends_on | scope | risk | impact | level | tags | |||
|---|---|---|---|---|---|---|---|---|---|---|---|
| sqlite-commit-error-arm | SQLite engine — commit-error-arm coverage (wave-3 review's deferred test) | pending | narrow | medium | isolated | implementation |
|
Description
Land the wave-3 review gate's deferred coverage item
(tasks/review-wave-3.md Notes: "Coverage of the commit-error arm —
no test induces a failing COMMIT ... natural home is wave 5's suite
hardening"): a test that drives a failing COMMIT through the SQLite
engine's commit path and pins the fix the review verified by
code-read — the writer slot is replenished via the reopen closure on
the failed COMMIT (no stranding), the error surfaces as the opaque
Database, and the store remains fully usable afterward (subsequent
begin_tx/auto-commit ops work).
The injection mechanism is this task's to find — candidates: a
PRAGMA max_page_count squeeze forcing SQLITE_FULL on a
space-consuming commit, or a cfg(test) fault seam in the seam layer
if the PRAGMA route cannot hit the COMMIT arm deterministically. The
wave-4 fix batch's cfg(test) config-seam precedent
(pg-fix-forwarder-reconnect) is the house pattern if a seam is
needed. Prefer the least-invasive mechanism that deterministically
reaches the arm; document the choice.
If the same session has cheap room for it, the waves-1–2 review's optional add — the watcher reconnect-success path test (upstream's W-1 test drives only the failure path; "a reconnect success test would require a file appearing mid-run") — rides here only if the engine kept the current watcher shape and the test is genuinely cheap; otherwise leave it recorded as not-taken in Notes (it was a suggestion, not an order).
Acceptance Criteria
- A test induces a failing
COMMITon the SQLite engine and pins: error surfaces (Database), writer slot replenished (a subsequentbegin_txsucceeds), no partial-commit residue - The injection mechanism documented in Notes (PRAGMA vs seam, and why)
- The watcher reconnect-success test either landed or explicitly recorded as not-taken with the reason
cargo test -p alkstore-sqlitegreen server-less; clippy-D warnings; fmt clean
References
- tasks/review-wave-3.md (Notes: the deferred commit-error-arm coverage)
- tasks/sqlite-engine-seam-tx.md (the
commitreplenish fix the test pins) - tasks/pg-fix-forwarder-reconnect.md (the
cfg(test)seam precedent) - docs/reviews/001-waves-1-2-general-review.md §2 (the watcher reconnect-success suggestion)
Notes
To be filled by implementation agent
Summary
To be filled on completion