Bug type
Regression (worked before, now fails)
Summary
In Control UI, streaming responses with thinking/reasoning content display each chunk as a separate message bubble instead of accumulating in a single bubble. This fragments the thinking process across multiple bubbles.
Steps to reproduce
- Open Control UI in browser
- Send a message that triggers a thinking/reasoning response
- Observe that each streaming chunk appears as a new message bubble instead of accumulating in one bubble
Expected behavior
Thinking/reasoning content should accumulate in a single message bubble during streaming, with the content updating in place rather than creating new bubbles.
Actual behavior
Each streaming chunk creates a new message bubble, causing the thinking process to be displayed across multiple separate bubbles.
OpenClaw version
2026.3.2
Operating system
Windows 11
Install method
No response
Logs, screenshots, and evidence
Impact and severity
No response
Additional information
Root cause: In the a$ function (chat rendering), each streaming chunk generates a new stream item with a unique key that includes timestamp: stream:${sessionKey}:${streamStartedAt}. This causes the framework to treat each chunk as a new message.
Suggested fix: Use a fixed key like stream:${sessionKey} so the same bubble is updated instead of creating new ones.
Bug type
Regression (worked before, now fails)
Summary
In Control UI, streaming responses with thinking/reasoning content display each chunk as a separate message bubble instead of accumulating in a single bubble. This fragments the thinking process across multiple bubbles.
Steps to reproduce
Expected behavior
Thinking/reasoning content should accumulate in a single message bubble during streaming, with the content updating in place rather than creating new bubbles.
Actual behavior
Each streaming chunk creates a new message bubble, causing the thinking process to be displayed across multiple separate bubbles.
OpenClaw version
2026.3.2
Operating system
Windows 11
Install method
No response
Logs, screenshots, and evidence
Impact and severity
No response
Additional information
Root cause: In the
a$function (chat rendering), each streaming chunk generates a new stream item with a unique key that includes timestamp:stream:${sessionKey}:${streamStartedAt}. This causes the framework to treat each chunk as a new message.Suggested fix: Use a fixed key like
stream:${sessionKey}so the same bubble is updated instead of creating new ones.