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

3.1 KiB
Raw Blame History

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
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