From 1e9e69ed2392a595f4a7e32a7c46d871613f5c1d Mon Sep 17 00:00:00 2001 From: Eyejoker Date: Mon, 30 Mar 2026 01:39:02 +0900 Subject: [PATCH] fix: remove duplicate suppression that swallowed final output The alreadyVisible check compared progress text with final text and skipped deliverFinalText when they matched. This caused legitimate final outputs to vanish when the progress message happened to accumulate the same text through edits. --- src/message-turn-controller.ts | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/src/message-turn-controller.ts b/src/message-turn-controller.ts index 83aee35..105799c 100644 --- a/src/message-turn-controller.ts +++ b/src/message-turn-controller.ts @@ -264,19 +264,9 @@ export class MessageTurnController { // Final arrived — flush any buffered progress that isn't the same text, // then discard the pending buffer so it never shows up. if (text) { - // If the progress message already shows the same text as the final - // result, finalize it in-place instead of sending a duplicate message. - const alreadyVisible = - this.progressMessageId && this.latestProgressText === text; - if (alreadyVisible) { - await this.finalizeProgressMessage(); - this.visiblePhase = toVisiblePhase(phase); - this.latestProgressTextForFinal = null; - } else { - await this.flushPendingProgress(text); - await this.finalizeProgressMessage(); - await this.deliverFinalText(text); - } + await this.flushPendingProgress(text); + await this.finalizeProgressMessage(); + await this.deliverFinalText(text); } else if (silentOutput || suppressState !== 'none') { const shouldPromoteVisibleProgressToFinal = this.visiblePhase === 'progress' &&