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
- Channels/preview streaming: centralize draft-preview finalization so Slack, Discord, Mattermost, and Matrix no longer flush temporary preview messages for media/error finals, and preserve first-reply threading for normal fallback delivery.
14
15
- Discord: keep slash command follow-up chunks ephemeral when the command is configured for ephemeral replies, so long `/status` output no longer leaks fallback model or runtime details into the public channel. (#69869) thanks @gumadeiras.
15
16
- Plugins/discovery: reject package plugin source entries that escape the package directory before explicit runtime entries or inferred built JavaScript peers can be used. (#69868) thanks @gumadeiras.
16
17
- CLI/channels: resolve channel presence through a shared policy that keeps ambient env vars and stale persisted auth from surfacing disabled bundled plugins in status, doctor, security audit, and cron delivery validation unless the channel or plugin is effectively enabled or explicitly configured. (#69862) Thanks @gumadeiras.
- `channels.discord.streamMode` is a legacy alias and is auto-migrated.
594
594
- `partial` edits a single preview message as tokens arrive.
595
595
- `block` emits draft-sized chunks (use `draftChunk` to tune size and breakpoints).
596
+
- Media, error, and explicit-reply finals cancel pending preview edits without flushing a temporary draft before normal delivery.
596
597
- `streaming.preview.toolProgress` controls whether tool/progress updates reuse the same draft preview message (default: `true`). Set `false` to keep separate tool/progress messages.
Copy file name to clipboardExpand all lines: docs/channels/mattermost.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
@@ -246,7 +246,7 @@ Notes:
246
246
247
247
## Preview streaming
248
248
249
-
Mattermost streams thinking, tool activity, and partial reply text into a single **draft preview post** that finalizes in place when the final answer is safe to send. The preview updates on the same post id instead of spamming the channel with per-chunk messages.
249
+
Mattermost streams thinking, tool activity, and partial reply text into a single **draft preview post** that finalizes in place when the final answer is safe to send. The preview updates on the same post id instead of spamming the channel with per-chunk messages. Media/error finals cancel pending preview edits and use normal delivery instead of flushing a throwaway preview post.
Copy file name to clipboardExpand all lines: docs/channels/slack.md
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -742,6 +742,7 @@ Notes:
742
742
- Channel and group-chat roots can still use the normal draft preview when native streaming is unavailable.
743
743
- Top-level Slack DMs stay off-thread by default, so they do not show the thread-style preview; use thread replies or `typingReaction` if you want visible progress there.
744
744
- Media and non-text payloads fall back to normal delivery.
745
+
- Media/error finals cancel pending preview edits without flushing a temporary draft; eligible text/block finals flush only when they can edit the preview in place.
745
746
- If streaming fails mid-reply, OpenClaw falls back to normal delivery for remaining payloads.
746
747
747
748
Use draft preview instead of Slack native text streaming:
Copy file name to clipboardExpand all lines: docs/concepts/streaming.md
+8Lines changed: 8 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -149,17 +149,25 @@ Discord:
149
149
- Uses send + edit preview messages.
150
150
-`block` mode uses draft chunking (`draftChunk`).
151
151
- Preview streaming is skipped when Discord block streaming is explicitly enabled.
152
+
- Final media, error, and explicit-reply payloads cancel pending previews without flushing a new draft, then use normal delivery.
152
153
153
154
Slack:
154
155
155
156
-`partial` can use Slack native streaming (`chat.startStream`/`append`/`stop`) when available.
156
157
-`block` uses append-style draft previews.
157
158
-`progress` uses status preview text, then final answer.
159
+
- Final media/error payloads and progress finals do not create throwaway draft messages; only text/block finals that can edit the preview flush pending draft text.
158
160
159
161
Mattermost:
160
162
161
163
- Streams thinking, tool activity, and partial reply text into a single draft preview post that finalizes in place when the final answer is safe to send.
162
164
- Falls back to sending a fresh final post if the preview post was deleted or is otherwise unavailable at finalize time.
165
+
- Final media/error payloads cancel pending preview updates before normal delivery instead of flushing a temporary preview post.
166
+
167
+
Matrix:
168
+
169
+
- Draft previews finalize in place when the final text can reuse the preview event.
170
+
- Media-only, error, and reply-target-mismatch finals cancel pending preview updates before normal delivery; an already-visible stale preview is redacted.
0 commit comments