@@ -2,18 +2,34 @@ import { describe, expect, it } from "vitest";
|
2 | 2 | import { telegramPlugin } from "./channel.js"; |
3 | 3 | |
4 | 4 | describe("telegram session route", () => { |
5 | | -it("keeps direct topic thread ids in a thread session suffix", async () => { |
| 5 | +it("scopes direct topic session suffixes by chat id", async () => { |
6 | 6 | const route = await telegramPlugin.messaging?.resolveOutboundSessionRoute?.({ |
7 | 7 | cfg: {}, |
8 | 8 | agentId: "main", |
9 | 9 | target: "12345:topic:99", |
10 | 10 | }); |
11 | 11 | |
12 | | -expect(route?.sessionKey).toBe("agent:main:main:thread:99"); |
| 12 | +expect(route?.sessionKey).toBe("agent:main:main:thread:12345:99"); |
13 | 13 | expect(route?.baseSessionKey).toBe("agent:main:main"); |
14 | 14 | expect(route?.threadId).toBe(99); |
15 | 15 | }); |
16 | 16 | |
| 17 | +it("aligns isolated direct topic sessions with inbound reply routing", async () => { |
| 18 | +const route = await telegramPlugin.messaging?.resolveOutboundSessionRoute?.({ |
| 19 | +cfg: { session: { dmScope: "per-account-channel-peer" } }, |
| 20 | +agentId: "finance", |
| 21 | +accountId: "finance", |
| 22 | +target: "104506878:topic:174872", |
| 23 | +}); |
| 24 | + |
| 25 | +expect(route?.sessionKey).toBe( |
| 26 | +"agent:finance:telegram:finance:direct:104506878:thread:104506878:174872", |
| 27 | +); |
| 28 | +expect(route?.baseSessionKey).toBe("agent:finance:telegram:finance:direct:104506878"); |
| 29 | +expect(route?.threadId).toBe(174872); |
| 30 | +expect(route?.from).toBe("telegram:104506878:topic:174872"); |
| 31 | +}); |
| 32 | + |
17 | 33 | it("recovers direct topic thread routes from currentSessionKey when the DM scope is isolated", async () => { |
18 | 34 | const route = await telegramPlugin.messaging?.resolveOutboundSessionRoute?.({ |
19 | 35 | cfg: { session: { dmScope: "per-channel-peer" } }, |
@@ -24,7 +40,8 @@ describe("telegram session route", () => {
|
24 | 40 | |
25 | 41 | expect(route?.sessionKey).toBe("agent:main:telegram:direct:12345:thread:12345:99"); |
26 | 42 | expect(route?.baseSessionKey).toBe("agent:main:telegram:direct:12345"); |
27 | | -expect(route?.threadId).toBe("12345:99"); |
| 43 | +expect(route?.threadId).toBe(99); |
| 44 | +expect(route?.from).toBe("telegram:12345:topic:99"); |
28 | 45 | }); |
29 | 46 | |
30 | 47 | it('does not recover currentSessionKey threads for shared dmScope "main" DMs', async () => { |
|