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

2.1 KiB

id, name, status, depends_on, scope, risk, impact, level, tags
id name status depends_on scope risk impact level tags
docs-pg-identifier-truncation-note Document the pg identifier-truncation collision in the release text (review 004 item 13) pending
single trivial isolated implementation
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