- Ya
- 14 Agosti 2026, 01:11 UTC
- Mwandishi
- Kamo
- Ahadi ya
- 2180fd8
The navtop badge and the ticket list have twice drifted apart by answering different questions. findUnreadStateForViewer is the single answer both now read, so they cannot disagree again. Unread means the other side of the conversation spoke and you have not looked. For the assigned agent that is specifically the REQUESTOR speaking — a colleague's note on the same ticket is not something the agent owes a reply to, so it raises no flag. For the requestor it is anyone on the support side. Anyone else is not a party to the conversation and sees nothing, which is why the query is scoped by role rather than by org: a cross-org request is answered by an agent in a different org from the person who raised it, so neither side's org identifies both. handoverUnread is the second way to be unread, with no new message involved. Being handed a conversation is itself the thing you have not seen, so a reassignment lands unread however old its last message — otherwise a ticket moved to you in the morning stays invisible until the customer happens to speak again. assignmentOpenedAt already carried exactly that: cleared on every (re)assignment, stamped only once the agent has really put it on screen. RESOLVED stays eligible on purpose. A requestor replying to something an agent marked resolved is the case most worth getting through, and the one that would otherwise be silently dropped; only CLOSED and VOID end it.