- Se descapó
- 28 de septiembre de 2026 a las 10:46 UTC
- Autor
- Kamo
- Compromit
- 3638081
The assistant had been REST-only since before KamoAI: its WebSocket context reported "connected", opened no socket, and posted each message, so the whole answer arrived at once. It now opens AIService's /ws/ai-chat on api.<the org's domain> with a one-time key (/api/generate-otk?purpose=ws) and shows the answer as it is written: - TOKEN frames stream into the answer bubble; MESSAGE_COMPLETE's saved answer (with its citations) replaces it, and a frame without text keeps what streamed; - a TOOL_RESULT files the text before the tool call and the tool's row, as the transcript reads on reload; - messages go one at a time, so two answers never stream into one bubble; frames of another conversation on the same socket are ignored; - REST stays the fallback when the socket cannot be opened (no key, no api host, a refused or slow handshake); a socket that drops mid-answer ends it with an error instead of asking again; - the socket opens with the first message and closes after five idle minutes. The 501 /api/ai/ws placeholder, which said the socket could not be reached, is removed. SP99-T10.
