3.1 KiB
3.1 KiB
id, name, status, depends_on, scope, risk, impact, level, tags
| id | name | status | depends_on | scope | risk | impact | level | tags | ||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| release-findings-2-3-disposition | Review 003 Findings 2–3 — the parked pre-release dispositions | pending | narrow | low | component | implementation |
|
Description
Review 003's Findings 2–3, parked to the pre-release pass by the
wave-6 gate (docs/reviews/003-wave-5-general-review.md; the park
trail: tasks/review-wave-6.md §Rider closed). The review's own
recommendation shapes the task — the cheap seams land, the
race-shaped arm stays parked with its disposition recorded, so the
next general review does not re-derive the inventory:
- Finding 2 (LOW, pg forwarder narrow untested arms): land the
cheap seam for (a) — the "connection died before/during the LISTEN"
fall-through to the reconnect path (
forwarder.rs:693-698) — using the housecfg(test)seam pattern (pg-fix-forwarder-reconnect's config seam;sqlite-commit-error-arm's one-shot flag). The mid-recv-loop stale-command abandonment race arm (b) (forwarder.rs:719-727) and the small defensive arms (mid_listen_errorack, forwarder-gone, shutdown abort/await) stay parked with the code-read as their pin — record that disposition explicitly (the review's "either way the disposition should be recorded"). - Finding 3 (LOW, SQLite rollback-failure-on-drop arms): a
rollback-fault arm on the existing commit-fault seam
(
alkstore-sqlite/src/seam.rs— thesqlite-commit-error-armmachinery) covering both drop arms in one small test:SqliteTxHandle::drop's failed-ROLLBACKpath (tx.rs:439-447) andConnLease::drop's (tx.rs:166-175) — pin the same properties the commit test pins (error surfaced/printed, connection dropped, writer slot replenished, store usable).
If a seam proves more invasive than the review estimated, the acceptable fallback is the code-read-as-pin disposition for that arm — recorded, not silent. The line between "landed" and "parked with disposition" is this task's judgment call, made explicitly in Notes.
Acceptance Criteria
- Finding 2's (a) arm seam-tested (or its not-taken disposition recorded with the invasiveness reason); the race arm + defensive arms' parked disposition recorded
- Finding 3's rollback-fault test landed covering both drop arms (or its not-taken disposition recorded)
- The disposition record written so a future general review reads the inventory as closed, not re-derivable
cargo test -p alkstore-sqlitegreen server-less;cargo test -p alkstore-postgresgreen server-less (SKIP posture) and — if the pg seam landed — green against the harness server; clippy-D warnings; fmt clean
References
- docs/reviews/003-wave-5-general-review.md §Finding 2, §Finding 3
- tasks/review-wave-6.md (the park record)
- tasks/sqlite-commit-error-arm.md (the seam pattern + the commit-arm test this mirrors)
- tasks/pg-fix-forwarder-reconnect.md (the pg config-seam precedent)
Notes
To be filled by implementation agent
Summary
To be filled on completion