- Shipped
- September 29, 2026 at 1:50 AM UTC
- Author
- Kamo
- Commit
- 4ea53c5
**************** trusted Member.usernameAlias over the account's own full name whenever the alias was non-blank. MemberCreationService mirrors the account's username onto that alias column for every new member, human or AI, that the create form doesn't send an explicit nickname for — and neither create form does. An AI hire has no personal email to dedupe a firstname.lastname username against, so a bare first name is the common typed username; a human's hand-picked username usually differs from their bare first name, or gets overwritten by a real, later nickname, so the same mechanism reads as "it only happens to AI". Production evidence: the AI member Luna (member 1200096283021613087, org 1168485648209608710) has members.username_alias='luna', users.username='luna', users.name_first='Luna', users.name_last='Blackwell' — so chat rendered "luna" instead of "Luna Blackwell". Every chat name surface (header, message author, conversation list, mentions, notifications) already funnels through this one function for both humans and AI; no AI-specific branch existed anywhere to remove, and none is added here. Fix: an alias only wins when it differs from the account's username — i.e. is an actual chosen nickname, not the auto-mirrored login handle. Falls through to the full name otherwise, identically for humans and AI. No data migration: chat has no persisted/cached name column (MediaObjMsg, MediaSession and MediaSessionMember carry none), so every past and future render of Luna's name is corrected by this read-time fix alone.
