From f27a5030d898ffd747d394d8c5066a332000ec79 Mon Sep 17 00:00:00 2001 From: Clawdbot Date: Tue, 27 Jan 2026 09:35:40 +0100 Subject: [PATCH] fix: restore verbose tool summaries in DM sessions 875b018ea removed onToolResult from dispatch-from-config.ts to prevent tool summaries leaking into group channels. However, this also broke verbose tool summaries in DM/private sessions where they are expected. This restores onToolResult but gates it behind ChatType !== 'group', so group channels remain unaffected while DM verbose works again. mirror=false is passed to sendPayloadAsync to avoid duplicating tool summaries in the session transcript (matching the block reply behavior). Fixes #2665 --- src/auto-reply/reply/dispatch-from-config.ts | 21 ++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/auto-reply/reply/dispatch-from-config.ts b/src/auto-reply/reply/dispatch-from-config.ts index 58d5d71b5..417caad22 100644 --- a/src/auto-reply/reply/dispatch-from-config.ts +++ b/src/auto-reply/reply/dispatch-from-config.ts @@ -276,6 +276,27 @@ export async function dispatchReplyFromConfig(params: { ctx, { ...params.replyOptions, + onToolResult: + ctx.ChatType !== "group" + ? (payload: ReplyPayload) => { + const run = async () => { + const ttsPayload = await maybeApplyTtsToPayload({ + payload, + cfg, + channel: ttsChannel, + kind: "tool", + inboundAudio, + ttsAuto: sessionTtsAuto, + }); + if (shouldRouteToOriginating) { + await sendPayloadAsync(ttsPayload, undefined, false); + } else { + dispatcher.sendToolResult(ttsPayload); + } + }; + return run(); + } + : undefined, onBlockReply: (payload: ReplyPayload, context) => { const run = async () => { // Accumulate block text for TTS generation after streaming