Files
alkstore/tasks/review-wave-4-fixes.md
T

4.0 KiB
Raw Blame History

id, name, status, depends_on, scope, risk, impact, level, tags
id name status depends_on scope risk impact level tags
review-wave-4-fixes Review gate — wave-4 fix batch (review 002 resolutions) pending
pg-fix-forwarder-reconnect
pg-fix-tx-wake
pg-fix-open-path
pg-fix-stale-unlisten
pg-fix-scheduler-resilience
pg-fix-dedupe-cleanup
pg-fix-docs-alignment
moderate low phase review
wave-4-fixes
review

Description

Review the fix batch decomposed from the wave-4 general review (docs/reviews/002-wave-4-general-review.md) before wave 5 decomposes. The batch's own gate — distinct from the general review that found the issues: verify each finding's fix is real (code-read against the review's failure mechanism, not test-name-trust), and that the fixes didn't damage the postures the wave-4 gate pinned.

Check:

  • Finding 1 (forwarder reconnect): the loop survives repeated failed connects — code-read the restructured reconnect arm (no path back to the take()'s else return); the failed-connect arm is test-exercised (the seam/injection is real, not a mock that never fails); the fanout-sender release invariant (receivers terminal iff loop gone) holds on every exit path.
  • Finding 2 (tx wake): pg_notify present in publish_with_key_tx (contract obligation) and the enqueue twins (parity), commit-atomic inside the caller's tx, empty payload (channel-only wakes); the no-ghost rollback arm pinned; the compose test's determinism evidence (repeated solo runs) recorded.
  • Finding 3 (open path): max_size guard before any round trip; the DSN options append (or documented engine-wins) verified against the actual setter semantics.
  • Finding 4 (stale UNLISTEN): the generation-drop/reconcile decision unit-pinned across all four command/staleness combinations; the invariant stated in the forwarder docs.
  • Finding 5 (scheduler): quarantine + retry behavior vs the review's fix shape; the leadership exit-path posture documented; the doc claim corrected.
  • Minor notes: dedupe (one decode owner — grep-auditable), the const, the helper routing, the doc alignments in deployment.md.
  • No regressions: the wave-4 gate's pinned postures re-spot-checked where the fixes touched them — forwarder integrity (the two deadlock pitfalls still structurally excluded), seam integrity, close semantics (the pg arm: open across reconnects, close at shutdown only), the no-replay honesty pin, entry-point validation.
  • Records: tasks/review-wave-4.md F-1 note and docs/plans/implementation.md's review-rounds line consistent with what landed.
  • Gates: full workspace build/test/clippy/fmt; the pg suite green against the harness server; the compose test run repeatedly (the determinism claim verified, not asserted).

Wave-5 gate: per the general review's sequencing, wave 5 decomposes after Findings 1–2's fixes land (the suite's wake-driven rows would otherwise inherit a hang-shaped false failure). This gate confirms both landed; if only they have, say so explicitly — wave 5 may decompose with 3–7 still in flight only if this gate judges the remainder wake-independent (expected: yes — 3–7 touch no wake-driven suite surface).

Acceptance Criteria

  • Each finding's fix verified against the review's failure mechanism (code-read + the new tests' actual coverage)
  • No regressions to the wave-4 gate's pinned postures (re-spot- checked at the touched sites)
  • Records consistent (F-1 retirement, review-rounds line)
  • All gates green (incl. against the harness server); compose-test determinism evidence recorded
  • Findings recorded; wave 5 decomposition disposition stated explicitly

References

  • docs/reviews/002-wave-4-general-review.md (the findings this batch resolves)
  • tasks/review-wave-4.md (the wave-4 gate's pinned postures + F-1's record)
  • docs/plans/implementation.md (Review gates; Review rounds so far)
  • tasks/pg-fix-*.md (the batch's seven tasks)

Notes

To be filled by implementation agent

Summary

To be filled on completion