Hoist ChatWebSocketProvider above ToolProviders

Fixkamo-internal
Shipped
April 25, 2026 at 10:17 PM UTC
Author
kamo
Commit
3873b0b

ToolDock (and its tool windows like SupportTicketWindow → TicketChat) is mounted inside ToolProviders, which sits ABOVE PresenceWrapper in the tree to avoid unmounting on auth/navigation changes. ChatWebSocketProvider lived inside PresenceWrapper, so tool windows fell back to the default no-op context value — TicketChat's subscribe() was a silent no-op, the agent never sent SUBSCRIBE for /topic/chat/session/{guid}, and visitor messages after the first appeared only after a refresh (REST initial-fetch). Move ChatWebSocketProvider to layout.tsx wrapping ToolProviders. The provider now internally gates on authentication so it stays safe at the top of the tree.

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