Files
alkstore/tasks/release-findings-2-3-disposition.md
T

75 lines
3.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
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