4.0 KiB
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 |
|
moderate | low | phase | 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()'selse 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_notifypresent inpublish_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_sizeguard 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.mdF-1 note anddocs/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