Wave-4 fix-batch decomposition: seven pg-fix tasks + review-wave-4-fixes gate from the general review (002) — forwarder reconnect retry (Finding 1, with the failed-connect test seam), tx pg_notify wakes retiring F-1's engine arm (Finding 2), max_size/DSN-options open path (Finding 3), stale-UNLISTEN generation drop (Finding 4), scheduler quarantine/retry (Finding 5), decode dedupe + cleanups, doc alignment; wave 5 gates on the two HIGH fixes landing

This commit is contained in:
glm-5.3-flash committed 2026-10-09 22:11:13 +00:00
1 parent 89828170f4
commit e067357de9
9 files changed
+785 -2

No files matched your search

+93
View File
@@ -0,0 +1,93 @@
---
id: review-wave-4-fixes
name: Review gate — wave-4 fix batch (review 002 resolutions)
status: pending
depends_on: [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]
scope: moderate
risk: low
impact: phase
level: review
tags: [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