From 7853c4fb7f714e4bd76f5339e867d3cb6ce080bb Mon Sep 17 00:00:00 2001 From: Onur <2453968+osolmaz@users.noreply.github.com> Date: Thu, 26 Feb 2026 23:27:09 +0100 Subject: [PATCH] Discord: fix thread binding types in message/reply paths --- src/discord/monitor/message-handler.process.ts | 5 +++-- src/discord/monitor/reply-delivery.ts | 3 ++- src/discord/monitor/thread-bindings.persona.test.ts | 1 + 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/discord/monitor/message-handler.process.ts b/src/discord/monitor/message-handler.process.ts index f33f31ab3af..e31ec0bac97 100644 --- a/src/discord/monitor/message-handler.process.ts +++ b/src/discord/monitor/message-handler.process.ts @@ -117,8 +117,9 @@ export async function processDiscordMessage(ctx: DiscordMessagePreflightContext) return; } - if (ctx.threadBinding?.threadId) { - threadBindings.touchThread({ threadId: ctx.threadBinding.threadId }); + const boundThreadId = ctx.threadBinding?.conversation?.conversationId?.trim(); + if (boundThreadId && typeof threadBindings.touchThread === "function") { + threadBindings.touchThread({ threadId: boundThreadId }); } const ackReaction = resolveAckReaction(cfg, route.agentId, { channel: "discord", diff --git a/src/discord/monitor/reply-delivery.ts b/src/discord/monitor/reply-delivery.ts index 16f1ed520fa..1c79e216555 100644 --- a/src/discord/monitor/reply-delivery.ts +++ b/src/discord/monitor/reply-delivery.ts @@ -20,6 +20,7 @@ export type DiscordThreadBindingLookupRecord = { export type DiscordThreadBindingLookup = { listBySessionKey: (targetSessionKey: string) => DiscordThreadBindingLookupRecord[]; + touchThread?: (params: { threadId: string; at?: number; persist?: boolean }) => unknown; }; function resolveTargetChannelId(target: string): string | undefined { @@ -272,6 +273,6 @@ export async function deliverDiscordReply(params: { } if (binding && deliveredAny) { - params.threadBindings?.touchThread({ threadId: binding.threadId }); + params.threadBindings?.touchThread?.({ threadId: binding.threadId }); } } diff --git a/src/discord/monitor/thread-bindings.persona.test.ts b/src/discord/monitor/thread-bindings.persona.test.ts index 7087cff09a4..91b337d868c 100644 --- a/src/discord/monitor/thread-bindings.persona.test.ts +++ b/src/discord/monitor/thread-bindings.persona.test.ts @@ -26,6 +26,7 @@ describe("thread binding persona", () => { agentId: "codex", boundBy: "system", boundAt: Date.now(), + lastActivityAt: Date.now(), label: "codex-thread", } satisfies ThreadBindingRecord; expect(resolveThreadBindingPersonaFromRecord(record)).toBe("⚙️ codex-thread");