You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
perf(people): bind separation support references to canonical token_urlsafe output #391
Fresh audit of Draft #317 against canonical People #64 found one remaining response-envelope false-GREEN in tests/performance/employment_separation_response_contract.mjs.
The active People owner generates every client-visible support_reference through _send_error() with _SUPPORT_REFERENCE_RANDOM_BYTES = 24 and token_urlsafe(24). Python secrets.token_urlsafe() URL-safe-base64-encodes the requested random bytes and strips padding; 24 bytes are exactly 32 base64url characters because 24 is divisible by 3. Canonical #64 therefore emits err_ plus exactly 32 [A-Za-z0-9_-] characters.
The current performance consumer accepts ^err_[A-Za-z0-9_-]{20,80}$. A governed-looking 409 response can therefore pass commercial response validation with a 20-, 24-, 31-, 33-, or 80-character suffix that canonical #64 cannot emit. This is evidence-contract drift, not an HR-domain change.
Required repair
Test first with a canonical 32-character suffix and at least one currently accepted non-canonical length.
Narrow only the response-side support-reference representation to err_ plus exactly 32 base64url characters.
Repair lineage is now present on Draft #317 without moving People/domain truth. Test-first 3abbd2600c7301b820a5fee34fdaed8a3ae35ad4 changes the nominal conflict fixture to the canonical 32-character suffix and adds false-GREEN cases for 24/31/33/80 characters; the predecessor {20,80} regex accepted those non-canonical lengths. Causal successor de8b8ea71600e8b5c1f5acda4258562cde17dce0 narrows only SUPPORT_REFERENCE_PATTERN to ^err_[A-Za-z0-9_-]{32}$. Focused boundary reproduction is GREEN for 32 and fail-closed for the non-canonical lengths. No hosted k6 workflow exists on this exact head, so this is not commercial latency or hosted acceptance evidence. Keep #391 open through protected/integration acceptance.
Activity
seonghobae commentedon Sep 15, 2026
Repair lineage is now present on Draft #317 without moving People/domain truth. Test-first
3abbd2600c7301b820a5fee34fdaed8a3ae35ad4changes the nominal conflict fixture to the canonical 32-character suffix and adds false-GREEN cases for 24/31/33/80 characters; the predecessor{20,80}regex accepted those non-canonical lengths. Causal successorde8b8ea71600e8b5c1f5acda4258562cde17dce0narrows onlySUPPORT_REFERENCE_PATTERNto^err_[A-Za-z0-9_-]{32}$. Focused boundary reproduction is GREEN for 32 and fail-closed for the non-canonical lengths. No hosted k6 workflow exists on this exact head, so this is not commercial latency or hosted acceptance evidence. Keep #391 open through protected/integration acceptance.