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
Help authenticated cubers find someone they already know or raced with and open a safe public profile before sending a friend request.
MVP discovery contract
Search only by normalized username and, when the target has explicitly enabled WCA identity visibility, WCA ID.
Never search by email, ingest email for this feature, accept email as an identifier, or reveal whether an email exists.
Require authentication, enforce bounded/rate-limited queries, and return a capped paginated result set.
Respect blocks and profile visibility without telling a blocked user that a block caused an omitted result.
Support entry points from the lobby user list, room users/times/chat, the friends hub, and direct username search.
Do not add algorithmic stranger recommendations in the MVP.
Public profile contract
Use one explicit server-side public projection containing only fields the viewer may see:
stable public user identifier;
display name and username;
WCA identity and WCA-hosted avatar only when the target opted to reveal them;
viewer-relative friend state: none, outgoing request, incoming request, or friends;
relevant actions: request/cancel/accept/decline/unfriend/block and invite when eligible.
Do not reuse the editable /profile response for another user, and never include access tokens, email, hidden real name/WCA ID, private preferences, private-room membership, friend graph, or notification data.
Goal
Help authenticated cubers find someone they already know or raced with and open a safe public profile before sending a friend request.
MVP discovery contract
Public profile contract
Use one explicit server-side public projection containing only fields the viewer may see:
Do not reuse the editable
/profileresponse for another user, and never include access tokens, email, hidden real name/WCA ID, private preferences, private-room membership, friend graph, or notification data.Acceptance criteria
/users/:idclient route with explicit field projection.Dependencies
Deferred