93 lines
4.0 KiB
Markdown
93 lines
4.0 KiB
Markdown
---
|
||
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 |