From 898a1a50eade1c815cff350f2d64358bfae0d457 Mon Sep 17 00:00:00 2001 From: Danila Poyarkov Date: Fri, 16 Jan 2026 09:46:50 +0300 Subject: [PATCH] fix(coding-agent): prevent duplicate rendering of extension messages on startup --- .../coding-agent/src/modes/interactive/interactive-mode.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/coding-agent/src/modes/interactive/interactive-mode.ts b/packages/coding-agent/src/modes/interactive/interactive-mode.ts index 268bfccb..7677e116 100644 --- a/packages/coding-agent/src/modes/interactive/interactive-mode.ts +++ b/packages/coding-agent/src/modes/interactive/interactive-mode.ts @@ -145,6 +145,7 @@ export class InteractiveMode { private keybindings: KeybindingsManager; private version: string; private isInitialized = false; + private hasRenderedInitialMessages = false; private onInputCallback?: (text: string) => void; private loadingAnimation: Loader | undefined = undefined; private readonly defaultWorkingMessage = "Working..."; @@ -619,7 +620,9 @@ export class InteractiveMode { this.session .sendCustomMessage(message, options) .then(() => { - if (!wasStreaming && message.display) { + // Don't rebuild if initial render hasn't happened yet + // (renderInitialMessages will handle it) + if (!wasStreaming && message.display && this.hasRenderedInitialMessages) { this.rebuildChatFromMessages(); } }) @@ -2007,6 +2010,7 @@ export class InteractiveMode { } renderInitialMessages(): void { + this.hasRenderedInitialMessages = true; // Get aligned messages and entries from session context const context = this.sessionManager.buildSessionContext(); this.renderSessionContext(context, {