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:
1 parent
89828170f4
commit
e067357de9
9 files changed
+785
-2
No files matched your search
@@ -0,0 +1,82 @@
|
||||
---
|
||||
id: pg-fix-docs-alignment
|
||||
name: Doc alignment — TLS posture, QueueOpts consumer obligations (review 002 Finding 6 remainder)
|
||||
status: pending
|
||||
depends_on: [pg-fix-forwarder-reconnect]
|
||||
scope: single
|
||||
risk: trivial
|
||||
impact: isolated
|
||||
level: implementation
|
||||
tags: [wave-4-fixes, postgres-engine, docs]
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
The doc-alignment remainder of the wave-4 general review
|
||||
(`docs/reviews/002-wave-4-general-review.md` §Finding 6 + §Minor
|
||||
notes) — the items that live in docs rather than the code files the
|
||||
other fix tasks own. (The scheduler and `sweep_expired` doc fixes are
|
||||
NOT here — they ride `pg-fix-scheduler-resilience` and
|
||||
`pg-fix-dedupe-cleanup`, their files' tasks.)
|
||||
|
||||
- **TLS posture honesty**: every connection (pooled `store.rs:161`,
|
||||
listener `store.rs:196`) is hardwired `NoTls`, but
|
||||
`forwarder.rs:53-57`'s doc says the pooled path "rides the
|
||||
consumer's Config sslmode" — misleading; a `sslmode=require` DSN
|
||||
fails at connect. v1 TLS is effectively unavailable. Fix both ends:
|
||||
correct the forwarder doc to match the code, and **`deployment.md`
|
||||
owns the statement** (v1 ships `NoTls` on all connection paths;
|
||||
TLS is a post-v1 deployment concern — the deployment matrix's
|
||||
honesty posture, ADR-016's spirit). Check the crate-level docs and
|
||||
`PgOpts` docs for the same claim while there.
|
||||
- **QueueOpts numeric consumer-obligation note**: queue/`QueueOpts`
|
||||
numeric values are trusted unvalidated (negative
|
||||
`max_attempts`/visibility/retention stamp into rows verbatim; zero
|
||||
`max_attempts` self-dead-letters into churn). The ADR-023 domain
|
||||
table pins extents/durations/boundaries only, so this is not a
|
||||
defect — but a one-sentence doc note (consumer-obligation, like the
|
||||
visibility-budgeting one) prevents surprise. Home: `deployment.md`
|
||||
(the budget/consumer-obligation section), with a mirror sentence in
|
||||
`queue.rs`'s or `opts.rs`'s doc where the opts are documented.
|
||||
- **Light mismatch sweep**: re-read the pg engine's doc comments
|
||||
touched by the fix batch (forwarder, tx, scheduler, store) for any
|
||||
*new* doc-behavior mismatch the fixes introduced — the fix tasks
|
||||
correct their own sites, this is the cross-file consistency pass.
|
||||
|
||||
Doc-only task: no code behavior changes; gates must stay green.
|
||||
|
||||
**Depends on `pg-fix-forwarder-reconnect`** only because the forwarder
|
||||
doc being corrected is in the file that task restructures — land after
|
||||
it and correct against the settled code.
|
||||
|
||||
## Acceptance Criteria
|
||||
|
||||
- [ ] `forwarder.rs`'s sslmode claim matches the code (`NoTls`
|
||||
hardwired); no other doc in the crate repeats the claim
|
||||
- [ ] `deployment.md` states the v1 TLS-unavailable posture on all
|
||||
connection paths
|
||||
- [ ] `deployment.md` (plus the opts' doc home) carries the
|
||||
QueueOpts numeric consumer-obligation note
|
||||
- [ ] Cross-file doc sweep over the fix batch's touched files: no
|
||||
doc-behavior mismatch remains (grep-auditable claims spot-checked)
|
||||
- [ ] `cargo build`, clippy `-D warnings`, fmt clean (doc-only change;
|
||||
tests unaffected)
|
||||
|
||||
## References
|
||||
|
||||
- docs/reviews/002-wave-4-general-review.md §Finding 6 + §Minor notes
|
||||
(TLS bullet, QueueOpts bullet)
|
||||
- docs/architecture/deployment.md (the budget/consumer-obligation
|
||||
home; the visibility-budgeting note's precedent shape)
|
||||
- docs/architecture/decisions/016-deployment-honesty.md (the honesty
|
||||
posture)
|
||||
- docs/architecture/decisions/023-fourth-review-round.md (the domain
|
||||
table — why QueueOpts numerics are consumer-obligation, not defect)
|
||||
|
||||
## Notes
|
||||
|
||||
> To be filled by implementation agent
|
||||
|
||||
## Summary
|
||||
|
||||
> To be filled on completion
|
||||
Reference in new issue
Block a user