Stop standing workload from flashing the browser tab forever

Fixkamo-internal
Shipped
August 26, 2026 at 4:50 AM UTC
Author
kamo
Commit
6cc673a

TabAttention fed navGrandTotal into a 1100ms title flasher. Four of its eight addends are queue depth that never reaches zero when a member reads something: support.tickets (unions "assigned to me" server-side with "has unread messages" — SupportPendingCountService answers one integer for the whole set), support.systemBugs (platform-wide NEW, clears only on triage), support.webinars and phone.voicemails (both clear only by dismissal, not by reading a conversation). Before this branch the flasher read UnreadContext.totalUnread, which always reaches zero; navGrandTotal looked like its natural successor and wasn't one. Added navAttentionTotal to navCountTotals.ts: chat + support.unreadMessages + phone.text (sms) + ai — message-like arrivals only. navGrandTotal is unchanged and still backs the nav badges. support.unreadMessages is a new NavCounts field (bySurface.support, already correctly cleared by the support ticket windows) threaded through NavCountsContext specifically so the tab flasher has a real support signal instead of the queue-depth one. phone.missedCalls is left out of the attention total on the same reasoning as voicemails: workload for the phone icon, not a message arrival. TabAttention now calls navAttentionTotal instead of navGrandTotal.

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