Files
alkstore/tasks/docs-pg-identifier-truncation-note.md
T

58 lines
2.1 KiB
Markdown

---
id: docs-pg-identifier-truncation-note
name: Document the pg identifier-truncation collision in the release text (review 004 item 13)
status: pending
depends_on: []
scope: single
risk: trivial
impact: isolated
level: implementation
tags: [review-004-fixes, postgres-engine, docs]
---
## Description
The pg identifier-truncation cross-channel collision, per
`docs/reviews/004-pre-release-general-review.md` §"Findings recorded,
not fixed" item 13: `LISTEN`/`UNLISTEN` interpolate the channel as a
quoted identifier (truncated at 63 bytes server-side) while
`pg_notify` carries it as a parameter — two distinct names sharing a
63-byte prefix can silently collapse into one wake channel. Names are
unbounded by the validation contract (the no-cap "length-independence"
verdict is deliberate — do not change it; the honest cheap fix is the
doc note the review prescribed).
Land the note in `deployment.md` (the pg rows / wherever the matrix
discusses naming or limits) and in `engine-postgres.md` if it has a
wake-channel section. The note states the mechanism (63-byte
identifier truncation; the `pg_notify` payload path unaffected) and
the mitigation (keep mechanism names under the PG identifier limit).
The deployment matrix is stable release text — a dated amendment
annotation per the family's convention.
## Acceptance Criteria
- [ ] `deployment.md` carries the truncation-collision note with a
dated annotation (mechanism + mitigation, honestly worded)
- [ ] `engine-postgres.md` carries it too if a wake-channel section
exists there (or the absence recorded in Notes)
- [ ] The validation contract's no-cap verdict untouched
- [ ] Doc gate green
## References
- docs/reviews/004-pre-release-general-review.md §"Findings recorded,
not fixed" item 13 (the finding, the "fold into whichever doc pass
runs next" disposition this task discharges)
- docs/architecture/deployment.md, engine-postgres.md (the landing
sites)
- alkstore-postgres/src/forwarder.rs (the LISTEN/UNLISTEN
interpolation sites, for the note's accuracy)
## Notes
> To be filled by implementation agent
## Summary
> To be filled on completion