diff --git a/CHANGELOG.md b/CHANGELOG.md index b0c992deaa4..45f953f6f69 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -69,6 +69,7 @@ Docs: https://docs.openclaw.ai - Ollama/custom provider headers: forward resolved model headers into native Ollama stream requests so header-authenticated Ollama proxies receive configured request headers. (#24337) thanks @echoVic. - Daemon/systemd install robustness: treat `systemctl --user is-enabled` exit-code-4 `not-found` responses as not-enabled by combining stderr/stdout detail parsing, so Ubuntu fresh installs no longer fail with `systemctl is-enabled unavailable`. (#33634) Thanks @Yuandiaodiaodiao. - Slack/system-event session routing: resolve reaction/member/pin/interaction system-event session keys through channel/account bindings (with sender-aware DM routing) so inbound Slack events target the correct agent session in multi-account setups instead of defaulting to `agent:main`. (#34045) Thanks @paulomcg, @daht-mad and @vincentkoc. +- Slack/native streaming markdown conversion: stop pre-normalizing text passed to Slack native `markdown_text` in streaming start/append/stop paths to prevent Markdown style corruption from double conversion. (#34931) - Gateway/HTTP tools invoke media compatibility: preserve raw media payload access for direct `/tools/invoke` clients by allowing media `nodes` invoke commands only in HTTP tool context, while keeping agent-context media invoke blocking to prevent base64 prompt bloat. (#34365) Thanks @obviyus. - Agents/Nodes media outputs: add dedicated `photos_latest` action handling, block media-returning `nodes invoke` commands, keep metadata-only `camera.list` invoke allowed, and normalize empty `photos_latest` results to a consistent response shape to prevent base64 context bloat. (#34332) Thanks @obviyus. - TUI/session-key canonicalization: normalize `openclaw tui --session` values to lowercase so uppercase session names no longer drop real-time streaming updates due to gateway/TUI key mismatches. (#33866, #34013) thanks @lynnzc. diff --git a/src/slack/streaming.ts b/src/slack/streaming.ts index e80fe9b2140..936fba79feb 100644 --- a/src/slack/streaming.ts +++ b/src/slack/streaming.ts @@ -14,7 +14,6 @@ import type { WebClient } from "@slack/web-api"; import type { ChatStreamer } from "@slack/web-api/dist/chat-stream.js"; import { logVerbose } from "../globals.js"; -import { normalizeSlackOutboundText } from "./format.js"; // --------------------------------------------------------------------------- // Types @@ -100,7 +99,7 @@ export async function startSlackStream( // If initial text is provided, send it as the first append which will // trigger the ChatStreamer to call chat.startStream under the hood. if (text) { - await streamer.append({ markdown_text: normalizeSlackOutboundText(text) }); + await streamer.append({ markdown_text: text }); logVerbose(`slack-stream: appended initial text (${text.length} chars)`); } @@ -122,7 +121,7 @@ export async function appendSlackStream(params: AppendSlackStreamParams): Promis return; } - await session.streamer.append({ markdown_text: normalizeSlackOutboundText(text) }); + await session.streamer.append({ markdown_text: text }); logVerbose(`slack-stream: appended ${text.length} chars`); } @@ -148,9 +147,7 @@ export async function stopSlackStream(params: StopSlackStreamParams): Promise