Slack: treat auto-threaded tool sends as same thread
This commit is contained in:
parent
40d2842443
commit
f04ddea9a1
@ -97,6 +97,7 @@ export function buildReplyPayloads(params: {
|
|||||||
originatingTo: params.originatingTo,
|
originatingTo: params.originatingTo,
|
||||||
originatingThreadId: params.originatingThreadId,
|
originatingThreadId: params.originatingThreadId,
|
||||||
accountId: params.accountId,
|
accountId: params.accountId,
|
||||||
|
replyToMode: params.replyToMode,
|
||||||
});
|
});
|
||||||
const dedupedPayloads = filterMessagingToolDuplicates({
|
const dedupedPayloads = filterMessagingToolDuplicates({
|
||||||
payloads: replyTaggedPayloads,
|
payloads: replyTaggedPayloads,
|
||||||
|
|||||||
@ -243,6 +243,7 @@ export function createFollowupRunner(params: {
|
|||||||
originatingTo: queued.originatingTo,
|
originatingTo: queued.originatingTo,
|
||||||
originatingThreadId: queued.originatingThreadId,
|
originatingThreadId: queued.originatingThreadId,
|
||||||
accountId: queued.run.agentAccountId,
|
accountId: queued.run.agentAccountId,
|
||||||
|
replyToMode,
|
||||||
});
|
});
|
||||||
const finalPayloads = suppressMessagingToolReplies ? [] : dedupedPayloads;
|
const finalPayloads = suppressMessagingToolReplies ? [] : dedupedPayloads;
|
||||||
|
|
||||||
|
|||||||
@ -84,6 +84,7 @@ export function shouldSuppressMessagingToolReplies(params: {
|
|||||||
originatingTo?: string;
|
originatingTo?: string;
|
||||||
originatingThreadId?: string | number;
|
originatingThreadId?: string | number;
|
||||||
accountId?: string;
|
accountId?: string;
|
||||||
|
replyToMode?: ReplyToMode;
|
||||||
}): boolean {
|
}): boolean {
|
||||||
const provider = params.messageProvider?.trim().toLowerCase();
|
const provider = params.messageProvider?.trim().toLowerCase();
|
||||||
if (!provider) return false;
|
if (!provider) return false;
|
||||||
@ -99,6 +100,10 @@ export function shouldSuppressMessagingToolReplies(params: {
|
|||||||
};
|
};
|
||||||
const originThreadId = normalizeThreadId(params.originatingThreadId);
|
const originThreadId = normalizeThreadId(params.originatingThreadId);
|
||||||
const originAccount = normalizeAccountId(params.accountId);
|
const originAccount = normalizeAccountId(params.accountId);
|
||||||
|
const shouldAssumeAutoThread =
|
||||||
|
provider === "slack" &&
|
||||||
|
(params.replyToMode === "all" || params.replyToMode === "first") &&
|
||||||
|
Boolean(originThreadId);
|
||||||
const sentTargets = params.messagingToolSentTargets ?? [];
|
const sentTargets = params.messagingToolSentTargets ?? [];
|
||||||
if (sentTargets.length === 0) return false;
|
if (sentTargets.length === 0) return false;
|
||||||
return sentTargets.some((target) => {
|
return sentTargets.some((target) => {
|
||||||
@ -110,7 +115,10 @@ export function shouldSuppressMessagingToolReplies(params: {
|
|||||||
if (originAccount && targetAccount && originAccount !== targetAccount) {
|
if (originAccount && targetAccount && originAccount !== targetAccount) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
const targetThreadId = normalizeThreadId(target.threadId);
|
let targetThreadId = normalizeThreadId(target.threadId);
|
||||||
|
if (!targetThreadId && shouldAssumeAutoThread) {
|
||||||
|
targetThreadId = originThreadId;
|
||||||
|
}
|
||||||
if (originThreadId || targetThreadId) {
|
if (originThreadId || targetThreadId) {
|
||||||
return originThreadId === targetThreadId;
|
return originThreadId === targetThreadId;
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user