Problem
When /reasoning stream is enabled on Telegram, reasoning previews are created as multiple separate messages instead of updating a single preview message. This causes stale reasoning preview messages to accumulate in chat. Tool previews are cleaned up correctly.
Environment
- OpenClaw: 2026.5.7
- Channel: Telegram direct DM
channels.telegram.streaming.mode = partial
channels.telegram.streaming.block.enabled = false
Runtime:
/reasoning stream enabled
Observed Behavior
- Reasoning output creates multiple preview messages via repeated
sendMessage
- No
editMessageText calls are used for reasoning preview updates
- No
deleteMessage cleanup is observed for reasoning previews
- Earlier reasoning preview messages remain in chat
- Tool-progress previews are correctly cleaned up
Expected Behavior
Reasoning stream should follow Telegram preview streaming behavior:
- Create one preview message via
sendMessage
- Update the same preview via
editMessageText
- Delete preview via
deleteMessage after final response
At any time only one reasoning preview message should exist.
Logs
PM2 logs show only sendMessage for reasoning:
[telegram] sendMessage ok chat=5603100281 message=21391
[telegram] sendMessage ok chat=5603100281 message=21392
[telegram] sendMessage ok chat=5603100281 message=21408
No editMessageText calls observed.
No deleteMessage calls observed for reasoning preview cleanup.
Tool previews do not show this issue.
Problem
When
/reasoning streamis enabled on Telegram, reasoning previews are created as multiple separate messages instead of updating a single preview message. This causes stale reasoning preview messages to accumulate in chat. Tool previews are cleaned up correctly.Environment
channels.telegram.streaming.mode = partialchannels.telegram.streaming.block.enabled = falseRuntime:
/reasoning streamenabledObserved Behavior
sendMessageeditMessageTextcalls are used for reasoning preview updatesdeleteMessagecleanup is observed for reasoning previewsExpected Behavior
Reasoning stream should follow Telegram preview streaming behavior:
sendMessageeditMessageTextdeleteMessageafter final responseAt any time only one reasoning preview message should exist.
Logs
PM2 logs show only
sendMessagefor reasoning: