From 5ebbcae8ffa37943c8a719f3d4f4be5cfd267cb8 Mon Sep 17 00:00:00 2001 From: Justin Chen <54879025+justschen@users.noreply.github.com> Date: Sat, 17 Jan 2026 06:06:58 +0800 Subject: [PATCH] fix confirmation widget appearing inside reasoning (#288494) * double check if our tool has confirmations after streaming * fix package.json * fix again --- .../chat/browser/widget/chatListRenderer.ts | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) 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);