You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(telegram): persist progress in place with lossless overflow spill
Persisted progress keeps every accumulated tool/commentary line (no rolling
maxLines drop) and, when the live draft outgrows a message, rolls the overflow
into a fresh message via the existing supersede primitive (retain the filled
message) instead of truncating. At turn end the standing progress message is
finalized in place rather than deleted, and the final answer goes to a new
message. Gated on streaming.progress.persistProgress.
- `streaming.preview.toolProgress` controls whether tool/progress updates reuse the same edited preview message (default: `true` when preview streaming is active)
321
321
- `streaming.preview.commandText` controls command/exec detail inside those tool-progress lines: `raw` (default, preserves released behavior) or `status` (tool label only)
322
322
- `streaming.progress.commentary` (default: `false`) opts into assistant commentary/preamble text in the temporary progress draft
323
+
- `streaming.progress.persistProgress` (default: `false`) **persists** the progress draft in place above the final answer instead of clearing it, and accumulates every tool/commentary line losslessly (spilling to a new message at the 4096-char limit rather than dropping the oldest line). Progress mode only
323
324
- legacy `channels.telegram.streamMode` and boolean `streaming` values are detected; run `openclaw doctor --fix` to migrate them to `channels.telegram.streaming.mode`
324
325
325
326
Tool-progress preview updates are the short status lines shown while tools run, for example command execution, file reads, planning updates, patch summaries, or Codex preamble/commentary text in Codex app-server mode. Telegram keeps these enabled by default to match released OpenClaw behavior from `v2026.4.22` and later.
- short DM/group/topic previews: OpenClaw keeps the same preview message and performs the final edit in place
407
408
- long text finals that split into multiple Telegram messages reuse the existing preview as the first final chunk when possible, then send only the remaining chunks
408
-
- progress-mode finals clear the status draft and use normal final delivery instead of editing the draft into the answer
409
+
- progress-mode finals clear the status draft and use normal final delivery instead of editing the draft into the answer (unless `streaming.progress.persistProgress` is set, in which case the draft is finalized in place above the answer rather than cleared)
409
410
- if the final edit fails before the completed text is confirmed, OpenClaw uses normal final delivery and cleans up the stale preview
410
411
411
412
For complex replies (for example media payloads), OpenClaw falls back to normal final delivery and then cleans up the preview message.
Copy file name to clipboardExpand all lines: docs/concepts/streaming.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -161,7 +161,7 @@ Telegram:
161
161
162
162
- Uses `sendMessage` + `editMessageText` preview updates across DMs and group/topics.
163
163
- Final text edits the active preview in place; long finals reuse that message for the first chunk and send only the remaining chunks.
164
-
-`progress` mode keeps tool progress in an editable status draft, clears that draft at completion, and sends the final answer through normal delivery.
164
+
-`progress` mode keeps tool progress in an editable status draft, clears that draft at completion, and sends the final answer through normal delivery. Set `streaming.progress.persistProgress: true` to instead **persist** the draft in place above the final answer (finalized, not cleared) and accumulate every tool/commentary line losslessly — spilling to a new message at the channel limit rather than dropping the oldest line. Default `false`.
165
165
- If the final edit fails before the completed text is confirmed, OpenClaw uses normal final delivery and cleans up the stale preview.
166
166
- Preview streaming is skipped when Telegram block streaming is explicitly enabled (to avoid double-streaming).
167
167
-`/reasoning stream` can write reasoning to a transient preview that is deleted after final delivery.
0 commit comments