Use per-session gateway lanes (web:sessionId) so concurrent chat tabs stream independently. Add a 15s recovery window after lifecycle errors to accept continuation runIds. Route slash commands through chat.send RPC and forward chat events to the UI.
Use per-session gateway lanes (web:sessionId) so concurrent chat tabs stream independently. Add a 15s recovery window after lifecycle errors to accept continuation runIds. Route slash commands through chat.send RPC and forward chat events to the UI.