@@ -2,18 +2,34 @@ import { describe, expect, it } from "vitest";
22import { telegramPlugin } from "./channel.js" ;
33
44describe ( "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 ( ) => {
66 const route = await telegramPlugin . messaging ?. resolveOutboundSessionRoute ?.( {
77 cfg : { } ,
88 agentId : "main" ,
99 target : "12345:topic:99" ,
1010 } ) ;
1111
12- expect ( route ?. sessionKey ) . toBe ( "agent:main:main:thread:99" ) ;
12+ expect ( route ?. sessionKey ) . toBe ( "agent:main:main:thread:12345: 99" ) ;
1313 expect ( route ?. baseSessionKey ) . toBe ( "agent:main:main" ) ;
1414 expect ( route ?. threadId ) . toBe ( 99 ) ;
1515 } ) ;
1616
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+
1733 it ( "recovers direct topic thread routes from currentSessionKey when the DM scope is isolated" , async ( ) => {
1834 const route = await telegramPlugin . messaging ?. resolveOutboundSessionRoute ?.( {
1935 cfg : { session : { dmScope : "per-channel-peer" } } ,
@@ -24,7 +40,8 @@ describe("telegram session route", () => {
2440
2541 expect ( route ?. sessionKey ) . toBe ( "agent:main:telegram:direct:12345:thread:12345:99" ) ;
2642 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" ) ;
2845 } ) ;
2946
3047 it ( 'does not recover currentSessionKey threads for shared dmScope "main" DMs' , async ( ) => {
0 commit comments