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.
This commit is contained in:
@@ -264,19 +264,9 @@ export class MessageTurnController {
|
|||||||
// Final arrived — flush any buffered progress that isn't the same text,
|
// Final arrived — flush any buffered progress that isn't the same text,
|
||||||
// then discard the pending buffer so it never shows up.
|
// then discard the pending buffer so it never shows up.
|
||||||
if (text) {
|
if (text) {
|
||||||
// If the progress message already shows the same text as the final
|
await this.flushPendingProgress(text);
|
||||||
// result, finalize it in-place instead of sending a duplicate message.
|
await this.finalizeProgressMessage();
|
||||||
const alreadyVisible =
|
await this.deliverFinalText(text);
|
||||||
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);
|
|
||||||
}
|
|
||||||
} else if (silentOutput || suppressState !== 'none') {
|
} else if (silentOutput || suppressState !== 'none') {
|
||||||
const shouldPromoteVisibleProgressToFinal =
|
const shouldPromoteVisibleProgressToFinal =
|
||||||
this.visiblePhase === 'progress' &&
|
this.visiblePhase === 'progress' &&
|
||||||
|
|||||||
Reference in New Issue
Block a user