Repository navigation
feat(beyondleetcode): C33d refuse control and bidi characters in names - #190
Conversation
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Security review (orchestrator-dispatched, 2026-10-22)Verdict: merge. Two readers on one shared brief (the card's decisions as a checklist), both read-only, cwd the C33d worktree at
(An earlier Codex run on 2026-10-16 never read the code: its sandbox could not start after a reboot. That run is not counted.) Both readers: no reachable path stores a forbidden character
Codex's point, decided by the maintainerCodex flagged that Setup and Sign up return the typed name in the form's failure data ( Not blocking (Fable), carried to later cards
|
Refuses control (U+0000-U+001F, U+007F-U+009F) and bidi (U+202A-U+202E, U+2066-U+2069) characters in names. U+200B, U+200D, U+2060 stay allowed, per the maintainer decision.
NAME_INVALID_CHARACTERS, 400, fixed text)Notes for the security review
\p{Cc}(exactly C0+C1) plus the two bidi ranges. Exported helperhasForbiddenNameCharacterfor C38 (OAuth names).Codex second opinion
Two P2 findings: the Setup and Sign up forms hand the rejected name back to the same form (
typed). Not changed: every refusal on these forms (blank, too long, bad email) returns what was typed so the user can fix it, as C33c does, and it goes only to the person who typed it. The API refusal (APIError) and the HTTP body never echo the name (tested).🤖 Generated with Claude Code