Nobody with a login is the anonymous web-chat visitor

Fixkamo-internal
Shipped
August 19, 2026 at 6:49 AM UTC
Author
kamo
Commit
8a377f5

A widget ticket names the org's SYSTEM member as its requestor because the visitor has no member record — and that member is the org owner, usually the person answering. Comparing ids therefore told the owner they were the visitor: the visitor's messages were drawn on the owner's own side of the chat, under the owner's own name, and the satisfaction form meant for the person who asked for help was offered to the person answering. isPublicChat is now an exception to the id comparison rather than a refinement of it. The Interaction Center's chats list reads the same unread state the ticket list and the navtop badge read, instead of its own count of the same messages — that count is the one that cannot see a visitor's message, so a support chat there could never show an indicator. It also stops reading a top-level unreadCount off the activity frame, which has never carried one: every live message was zeroing the badge on the row it had just arrived in. The ticket list re-reads presence on a timer. These dots are driven by one-shot broadcasts, so a frame published while the socket was reconnecting is simply gone and the page kept a stale dot until an unrelated change refreshed it.

All changes

Like what you see shipping?

Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.

Start Free ForeverView Pricing