ymq bac65a61aa SSE mode: text/event-stream + data: prefix + [DONE] end
Backend: _sse() wraps each widget as 'data: <json>\n\n', ends with [DONE]
Frontend: XHR.onprogress splits on 'data: ', extracts json before \n\n
2026-08-08 21:22:34 +08:00
..