@@ -584,9 +584,9 @@ async function withTelegramThreadFallback<
584584 verbose : boolean | undefined ,
585585 allowThreadlessRetry : boolean ,
586586 attempt : ( effectiveParams : TParams , effectiveLabel : string ) => Promise < T > ,
587- ) : Promise < T > {
587+ ) : Promise < { result : T ; acceptedParams : TParams } > {
588588 try {
589- return await attempt ( params , label ) ;
589+ return { result : await attempt ( params , label ) , acceptedParams : params } ;
590590 } catch ( err ) {
591591 // Do not widen this fallback to cover "chat not found".
592592 // chat-not-found is routing/auth/membership/token; stripping thread IDs hides root cause.
@@ -603,7 +603,10 @@ async function withTelegramThreadFallback<
603603 ) ;
604604 }
605605 const retriedParams = removeMessageThreadIdParam ( params ) ;
606- return await attempt ( retriedParams , `${ label } -threadless` ) ;
606+ return {
607+ result : await attempt ( retriedParams , `${ label } -threadless` ) ,
608+ acceptedParams : retriedParams ,
609+ } ;
607610 }
608611}
609612
@@ -763,17 +766,22 @@ export async function sendMessageTelegram(
763766 ) : Promise < { messageId : string ; chatId : string } > => {
764767 let lastMessageId = "" ;
765768 let lastChatId = chatId ;
769+ let lastAcceptedParams : TelegramThreadScopedParams | undefined ;
766770 let sentChunkCount = 0 ;
767771 for ( let index = 0 ; index < chunks . length ; index += 1 ) {
768772 const chunk = chunks [ index ] ;
769773 if ( ! chunk ) {
770774 continue ;
771775 }
772- const res = await sendTelegramTextChunk ( chunk , buildTextParams ( index === chunks . length - 1 ) ) ;
776+ const { result : res , acceptedParams } = await sendTelegramTextChunk (
777+ chunk ,
778+ buildTextParams ( index === chunks . length - 1 ) ,
779+ ) ;
773780 const messageId = resolveTelegramMessageIdOrThrow ( res , context ) ;
774781 recordSentMessage ( chatId , messageId , cfg ) ;
775782 lastMessageId = String ( messageId ) ;
776783 lastChatId = String ( res ?. chat ?. id ?? chatId ) ;
784+ lastAcceptedParams = acceptedParams ;
777785 sentChunkCount += 1 ;
778786 }
779787 if ( lastMessageId ) {
@@ -783,7 +791,7 @@ export async function sendMessageTelegram(
783791 messageId : lastMessageId ,
784792 operation : "sendMessage" ,
785793 deliveryKind : "text" ,
786- messageThreadId : threadParams . message_thread_id ,
794+ messageThreadId : lastAcceptedParams ? .message_thread_id ,
787795 replyToMessageId : opts . replyToMessageId ,
788796 silent : opts . silent ,
789797 chunkCount : sentChunkCount ,
@@ -1015,7 +1023,7 @@ export async function sendMessageTelegram(
10151023 } ;
10161024 } ) ( ) ;
10171025
1018- const result = await sendMedia ( mediaSender . label , mediaSender . sender ) ;
1026+ const { result, acceptedParams } = await sendMedia ( mediaSender . label , mediaSender . sender ) ;
10191027 const mediaMessageId = resolveTelegramMessageIdOrThrow ( result , "media send" ) ;
10201028 const resolvedChatId = String ( result ?. chat ?. id ?? chatId ) ;
10211029 recordSentMessage ( chatId , mediaMessageId , cfg ) ;
@@ -1028,7 +1036,7 @@ export async function sendMessageTelegram(
10281036 . map ( ( part ) => part . charAt ( 0 ) . toUpperCase ( ) + part . slice ( 1 ) )
10291037 . join ( "" ) } `,
10301038 deliveryKind : mediaSender . label ,
1031- messageThreadId : threadParams . message_thread_id ,
1039+ messageThreadId : acceptedParams ? .message_thread_id ,
10321040 replyToMessageId : opts . replyToMessageId ,
10331041 silent : opts . silent ,
10341042 } ) ;
@@ -1598,7 +1606,7 @@ export async function sendStickerTelegram(
15981606
15991607 const stickerParams = hasThreadParams ? threadParams : undefined ;
16001608
1601- const result = await withTelegramThreadFallback (
1609+ const { result } = await withTelegramThreadFallback (
16021610 stickerParams ,
16031611 "sticker" ,
16041612 opts . verbose ,
@@ -1706,7 +1714,7 @@ export async function sendPollTelegram(
17061714 ...( opts . silent === true ? { disable_notification : true } : { } ) ,
17071715 } ;
17081716
1709- const result = await withTelegramThreadFallback (
1717+ const { result } = await withTelegramThreadFallback (
17101718 pollParams ,
17111719 "poll" ,
17121720 opts . verbose ,
0 commit comments