Repository navigation
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info
📝 Walkthrough
Priority: ➖ Normal Merge Risk: ⚪ Minimal · up to Completed responses remain visible, and early task checks continue polling until the result is available. No merge-blocking issue was established. Pre-merge checks |
|
7b7b783 to
93f8a5e
Compare
The streaming chat message typed the received text one character every 5 ms and re-rendered the markdown after each character. That caps the display at 200 characters per second, slower than common models stream (about 140 tokens/s, roughly 550 characters/s, for a flash model), so the visible text fell behind the received text and jumped ahead with each new chunk. The first chunk was not displayed at all: the watcher was not immediate, and the streaming message is mounted with the first chunk already set, so it showed "Reasoning…" until the second chunk. Reveal each new chunk over at most 200 ms in ~16 ms steps. That is shorter than the 250 ms interval at which integration_openai reports intermediate output, so the display catches up before the next chunk. Show the content that was received before the component was mounted. Signed-off-by: Daniel <danitex@danvics.com>
The chat checked the generation task only every 2 seconds, so the final message and the re-enabled input came 0 to 2 s (1 s on average) after the task had finished, even when notify_push had already announced it. assistant.js already turns the taskprocessing:task_update push into assistant:task:updated and assistant:task:status:updated events. Listen to them while polling and check right away when the task succeeded, failed or was cancelled. Polling every 2 s stays as the fallback without notify_push. Only one check request runs at a time. Signed-off-by: Daniel <danitex@danvics.com>
93f8a5e to
26d3dc0
Compare
🤖 AI (if applicable)