Hoist providers above ToolProviders

Fixkamo-internal
Shipped
April 25, 2026 at 10:44 PM UTC
Author
kamo
Commit
7a4d812

Same root cause as the ChatWebSocketProvider hoist: SupportTicketWindow calls **************** and ChatBox calls useUnread().markAsRead(), but both tool windows render inside ToolDock which sits ABOVE PresenceWrapper. The providers were unreachable from the tool window subtree, so consumers got default no-op values and the badge counts grew indefinitely with no way to decrement. Move UnreadProvider and SupportCountProvider to app/layout.tsx wrapping ToolProviders. Both providers handle the unauthenticated case gracefully (fetch returns 401 silently; STOMP subscriptions only fire when connected).

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