From 049f00ab574781a41a39343bb53350aa68774b0b Mon Sep 17 00:00:00 2001 From: Brian Le Date: Sun, 1 Mar 2026 18:21:39 -0500 Subject: [PATCH] fix(telegram): scope DM topic thread keys by chat id --- src/telegram/bot-handlers.ts | 2 +- src/telegram/bot-message-context.dm-threads.test.ts | 2 +- src/telegram/bot-message-context.ts | 2 +- src/telegram/bot-native-commands.ts | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/telegram/bot-handlers.ts b/src/telegram/bot-handlers.ts index 096c7f6a746..59e84ab0f28 100644 --- a/src/telegram/bot-handlers.ts +++ b/src/telegram/bot-handlers.ts @@ -290,7 +290,7 @@ export const registerTelegramHandlers = ({ const dmThreadId = !params.isGroup ? params.messageThreadId : undefined; const threadKeys = dmThreadId != null - ? resolveThreadSessionKeys({ baseSessionKey, threadId: String(dmThreadId) }) + ? resolveThreadSessionKeys({ baseSessionKey, threadId: `${params.chatId}:${dmThreadId}` }) : null; const sessionKey = threadKeys?.sessionKey ?? baseSessionKey; const storePath = resolveStorePath(cfg.session?.store, { agentId: route.agentId }); diff --git a/src/telegram/bot-message-context.dm-threads.test.ts b/src/telegram/bot-message-context.dm-threads.test.ts index 1132a2e072c..26812b4c891 100644 --- a/src/telegram/bot-message-context.dm-threads.test.ts +++ b/src/telegram/bot-message-context.dm-threads.test.ts @@ -19,7 +19,7 @@ describe("buildTelegramMessageContext dm thread sessions", () => { expect(ctx).not.toBeNull(); expect(ctx?.ctxPayload?.MessageThreadId).toBe(42); - expect(ctx?.ctxPayload?.SessionKey).toBe("agent:main:main:thread:42"); + expect(ctx?.ctxPayload?.SessionKey).toBe("agent:main:main:thread:1234:42"); }); it("keeps legacy dm session key when no thread id", async () => { diff --git a/src/telegram/bot-message-context.ts b/src/telegram/bot-message-context.ts index 495af587261..10aa207c7f2 100644 --- a/src/telegram/bot-message-context.ts +++ b/src/telegram/bot-message-context.ts @@ -204,7 +204,7 @@ export const buildTelegramMessageContext = async ({ const dmThreadId = threadSpec.scope === "dm" ? threadSpec.id : undefined; const threadKeys = dmThreadId != null - ? resolveThreadSessionKeys({ baseSessionKey, threadId: String(dmThreadId) }) + ? resolveThreadSessionKeys({ baseSessionKey, threadId: `${chatId}:${dmThreadId}` }) : null; const sessionKey = threadKeys?.sessionKey ?? baseSessionKey; const mentionRegexes = buildMentionRegexes(cfg, route.agentId); diff --git a/src/telegram/bot-native-commands.ts b/src/telegram/bot-native-commands.ts index e2e615ea777..cc9846cbcd5 100644 --- a/src/telegram/bot-native-commands.ts +++ b/src/telegram/bot-native-commands.ts @@ -551,7 +551,7 @@ export const registerTelegramNativeCommands = ({ dmThreadId != null ? resolveThreadSessionKeys({ baseSessionKey, - threadId: String(dmThreadId), + threadId: `${chatId}:${dmThreadId}`, }) : null; const sessionKey = threadKeys?.sessionKey ?? baseSessionKey;