From f378de9d5ba9d5fc8637de7fe443d4dfbd516a0b Mon Sep 17 00:00:00 2001 From: Vincent Koc Date: Mon, 22 Jun 2026 19:16:49 +0800 Subject: [PATCH] refactor(slack): share posted chunk loop --- extensions/slack/src/send.ts | 56 ++++++++++++++---------------------- 1 file changed, 21 insertions(+), 35 deletions(-) diff --git a/extensions/slack/src/send.ts b/extensions/slack/src/send.ts index d30821047d3b..d49484f32c36 100644 --- a/extensions/slack/src/send.ts +++ b/extensions/slack/src/send.ts @@ -835,6 +835,7 @@ async function sendMessageSlackQueuedInner(params: { let lastMessageId = ""; let deliveredChannelId = channelId; let canonicalDeliveredThreadTs: string | undefined; + let chunksToPost: string[]; if (opts.mediaUrl) { const [firstChunk, ...rest] = resolvedChunks; lastMessageId = await uploadSlackFile({ @@ -851,42 +852,27 @@ async function sendMessageSlackQueuedInner(params: { maxBytes: mediaMaxBytes, }); sentMessageIds.push(lastMessageId); - for (const chunk of rest) { - const response = await postSlackMessageBestEffort({ - client, - channelId, - text: chunk, - threadTs: opts.threadTs, - replyBroadcast: sentMessageIds.length === 0 ? opts.replyBroadcast : undefined, - identity, - metadata: sentMessageIds.length === 0 ? opts.metadata : undefined, - unfurl, - }); - lastMessageId = response.ts ?? lastMessageId; - deliveredChannelId = resolvePostedMessageChannelId(response, deliveredChannelId); - canonicalDeliveredThreadTs ??= resolvePostedMessageThreadTs(response); - if (response.ts) { - sentMessageIds.push(response.ts); - } - } + chunksToPost = rest; } else { - for (const chunk of resolvedChunks.length ? resolvedChunks : [""]) { - const response = await postSlackMessageBestEffort({ - client, - channelId, - text: chunk, - threadTs: opts.threadTs, - replyBroadcast: sentMessageIds.length === 0 ? opts.replyBroadcast : undefined, - identity, - metadata: sentMessageIds.length === 0 ? opts.metadata : undefined, - unfurl, - }); - lastMessageId = response.ts ?? lastMessageId; - deliveredChannelId = resolvePostedMessageChannelId(response, deliveredChannelId); - canonicalDeliveredThreadTs ??= resolvePostedMessageThreadTs(response); - if (response.ts) { - sentMessageIds.push(response.ts); - } + chunksToPost = resolvedChunks.length ? resolvedChunks : [""]; + } + + for (const chunk of chunksToPost) { + const response = await postSlackMessageBestEffort({ + client, + channelId, + text: chunk, + threadTs: opts.threadTs, + replyBroadcast: sentMessageIds.length === 0 ? opts.replyBroadcast : undefined, + identity, + metadata: sentMessageIds.length === 0 ? opts.metadata : undefined, + unfurl, + }); + lastMessageId = response.ts ?? lastMessageId; + deliveredChannelId = resolvePostedMessageChannelId(response, deliveredChannelId); + canonicalDeliveredThreadTs ??= resolvePostedMessageThreadTs(response); + if (response.ts) { + sentMessageIds.push(response.ts); } }