--- id: release-findings-2-3-disposition name: Review 003 Findings 2–3 — the parked pre-release dispositions status: pending depends_on: [] scope: narrow risk: low impact: component level: implementation tags: [wave-8, tests, sqlite-engine, postgres] --- ## 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 house `cfg(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_error` ack, 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` — the `sqlite-commit-error-arm` machinery) covering both drop arms in one small test: `SqliteTxHandle::drop`'s failed-`ROLLBACK` path (`tx.rs:439-447`) and `ConnLease::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-sqlite` green server-less; `cargo test -p alkstore-postgres` green 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