diff --git a/src/vs/workbench/contrib/chat/browser/widget/chatListRenderer.ts b/src/vs/workbench/contrib/chat/browser/widget/chatListRenderer.ts index 4a665c1c095..a1ef74cebd9 100644 --- a/src/vs/workbench/contrib/chat/browser/widget/chatListRenderer.ts +++ b/src/vs/workbench/contrib/chat/browser/widget/chatListRenderer.ts @@ -1315,6 +1315,10 @@ export class ChatListItemRenderer extends Disposable implements ITreeRenderer confirmation transition to finalize thinking + if (toolInvocation.kind === 'toolInvocation' && IChatToolInvocation.isStreaming(toolInvocation)) { + let wasStreaming = true; + part.addDisposable(autorun(reader => { + const state = toolInvocation.state.read(reader); + if (wasStreaming && state.type !== IChatToolInvocation.StateKind.Streaming) { + wasStreaming = false; + if (state.type === IChatToolInvocation.StateKind.WaitingForConfirmation) { + if (part.domNode) { + const wrapper = part.domNode.parentElement; + if (wrapper?.classList.contains('chat-thinking-tool-wrapper')) { + wrapper.remove(); + } + templateData.value.appendChild(part.domNode); + } + this.finalizeCurrentThinkingPart(context, templateData); + } + } + })); + } } } else { this.finalizeCurrentThinkingPart(context, templateData);