fix(tests/e2e#2839): cap concierge creates-workspace slug at 32 chars #2847
Reference in New Issue
Block a user
Delete Branch "fix/concierge-slug-cap-2839"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Fixes the concierge creates-workspace staging E2E slug budget miscalc left over from #2839.
make_collision_proof_slug_suffixbudget fromprefix_len + N + 19to+18; caller prefixes already include their trailing separator.e2e-cncrg-mk-(13 chars) — it now fits the 32-char CP regex while preserving the 8-hex uuid anchor.e2e-cncrg-w-(12 chars) so it also fits.Refs: job 498600 slug-prefix-too-long failure on
fb97c349.The concierge staging E2E was over-budgeting the collision-proof slug helper: literal prefixes already include their trailing separator, so the helper was off-by-one in its budget (19 instead of 18). This left zero/negative room for the run_id segment and caused the 13-char 'e2e-cncrg-mk-' org slug and the 17-char 'e2e-cncrg-worker-' worker name to fail helper validation. - Correct the helper budget from prefix_len + N + 19 to +18. - Shorten the worker name prefix to 'e2e-cncrg-w-' (12 chars) so it fits the corrected 32-char cap while keeping an e2e-* lint-visible head. - Keep the org slug prefix 'e2e-cncrg-mk-' (13 chars); with the corrected budget it now produces a ≤32 char slug that matches ^[a-z][a-z0-9-]{2,31}$ and preserves the 8-hex uuid entropy. - Add a unit assertion for the concierge prefix shape. Co-Authored-By: Claude <noreply@anthropic.com>APPROVED: #2847 is clean on head
3d9f857f26.Reviewed the slug helper, concierge staging script, and unit test. The budget correction is right: the caller prefix already includes the trailing separator, so suffix overhead is date(8) + two separators + uuid(8) = 18, making the cap
prefix_len + N + 18 <= 32. The concierge org path usese2e-cncrg-mk-with prefix_len 13, leaving a 1-char run id segment and preserving the trailing 8-hex entropy at exactly 32 chars. The worker path now usese2e-cncrg-w-with prefix_len 12, so it also stays under the CP regex max.I verified the staging script only has the two relevant concierge slug/name constructions and both use
make_collision_proof_slug_suffixwith the matching literal prefix lengths. The new unit assertion genuinely executes the helper and checks assert_collision_proof_slug, <=32, prefix, and the CP regex; I replayed the unit script locally and the new concierge case passed with a 32-char slug.Exact-head required CI is green: CI/all-required, E2E API Smoke Test, Handlers Postgres Integration, and E2E Peer Visibility are all success on
3d9f857f. Shellcheck is also green. Ceremony/advisory status noise is not part of the required core merge bar.APPROVED: #2847 closes the concierge slug-cap residual I pinned from job 498600. The helper budget is now prefix_len + run_id + 18, which matches the actual suffix layout because caller prefixes already include the trailing separator. I verified locally that both concierge paths produce 32-char, CP-regex-valid, 8-hex-anchored slugs: e2e-cncrg-w-* and e2e-cncrg-mk-*. The worker-name path now uses the capped helper with shortened prefix e2e-cncrg-w-; the org slug path remains capped at e2e-cncrg-mk-. Grep shows no remaining staging concierge creates-workspace slug construction bypassing this helper. Exact-head checks are green: Platform Go 364913/498685, Canvas 364913/498686, all-required 364913/498690, E2E Peer Visibility 364916/498696, E2E API Smoke 364914/498692.