- Shipped
- September 23, 2026 at 2:45 AM UTC
- Author
- Kamo
- Commit
- ceee73e
A social contact has no member row, so everything they send is stored under the connection owner's member. The history read already names such a row as the contact's (SocialVisitorRows), but the QUOTE of it did not: a reply to a contact's message older than the loaded page — and every rep's live reply to one — quoted the owner as its author, with the owner's member id beside the name, which the console would open as the owner's member card. Both paths now ask SocialVisitorRows about the quoted row (namesById, for rows not on the page) and build the quote with wireFieldsForContact: the contact's name (or none, when the provider gave none, the same as the message itself) and no member id — as a web-chat visitor's quote already withheld it.
