diff --git a/extensions/telegram/src/bot-message-dispatch.ts b/extensions/telegram/src/bot-message-dispatch.ts index ac7c1b1aa7c..2c988229c6c 100644 --- a/extensions/telegram/src/bot-message-dispatch.ts +++ b/extensions/telegram/src/bot-message-dispatch.ts @@ -907,7 +907,7 @@ export const dispatchTelegramMessage = async ({ const _hasMedia = reply.hasMedia; const flushBufferedFinalAnswer = async () => { - const buffered = reasoningStepState.takeBufferedFinalAnswer(); + const buffered = reasoningStepState.takeBufferedFinalAnswer(abortFenceGeneration); if (!buffered) { return; } @@ -935,6 +935,7 @@ export const dispatchTelegramMessage = async ({ reasoningStepState.bufferFinalAnswer({ payload, text: segment.text, + bufferedGeneration: abortFenceGeneration, }); continue; } diff --git a/extensions/telegram/src/reasoning-lane-coordinator.ts b/extensions/telegram/src/reasoning-lane-coordinator.ts index 447b60dd1d0..182de6202cd 100644 --- a/extensions/telegram/src/reasoning-lane-coordinator.ts +++ b/extensions/telegram/src/reasoning-lane-coordinator.ts @@ -93,6 +93,7 @@ export function splitTelegramReasoningText(text?: string): TelegramReasoningSpli type BufferedFinalAnswer = { payload: ReplyPayload; text: string; + bufferedGeneration?: number; }; export function createTelegramReasoningStepState() { @@ -117,7 +118,16 @@ export function createTelegramReasoningStepState() { bufferedFinalAnswer = value; }; - const takeBufferedFinalAnswer = (): BufferedFinalAnswer | undefined => { + const takeBufferedFinalAnswer = ( + currentGeneration?: number, + ): BufferedFinalAnswer | undefined => { + if ( + currentGeneration !== undefined && + bufferedFinalAnswer?.bufferedGeneration !== undefined && + bufferedFinalAnswer.bufferedGeneration !== currentGeneration + ) { + return undefined; + } const value = bufferedFinalAnswer; bufferedFinalAnswer = undefined; return value;