From bb0294ffca5583a768e5ea44350ecc4e9c6e3791 Mon Sep 17 00:00:00 2001 From: Simon Siefke Date: Mon, 13 Oct 2025 18:42:07 +0300 Subject: [PATCH] fix: memory leak in chat welcome (#271121) --- src/vs/workbench/contrib/chat/browser/chatWidget.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/vs/workbench/contrib/chat/browser/chatWidget.ts b/src/vs/workbench/contrib/chat/browser/chatWidget.ts index 4f79d5c281f..8e9db483ed5 100644 --- a/src/vs/workbench/contrib/chat/browser/chatWidget.ts +++ b/src/vs/workbench/contrib/chat/browser/chatWidget.ts @@ -314,6 +314,8 @@ export class ChatWidget extends Disposable implements IChatWidget { private welcomeMessageContainer!: HTMLElement; private readonly welcomePart: MutableDisposable = this._register(new MutableDisposable()); + private readonly welcomeContextMenuDisposable: MutableDisposable = this._register(new MutableDisposable()); + private readonly historyViewStore = this._register(new DisposableStore()); private readonly chatTodoListWidget: ChatTodoListWidget; private historyList: WorkbenchList | undefined; @@ -1066,7 +1068,7 @@ export class ChatWidget extends Disposable implements IChatWidget { dom.append(this.welcomeMessageContainer, this.welcomePart.value.element); // Add right-click context menu to the entire welcome container - this._register(dom.addDisposableListener(this.welcomeMessageContainer, dom.EventType.CONTEXT_MENU, (e) => { + this.welcomeContextMenuDisposable.value = dom.addDisposableListener(this.welcomeMessageContainer, dom.EventType.CONTEXT_MENU, (e) => { e.preventDefault(); e.stopPropagation(); this.contextMenuService.showContextMenu({ @@ -1078,7 +1080,7 @@ export class ChatWidget extends Disposable implements IChatWidget { getAnchor: () => ({ x: e.clientX, y: e.clientY }), getActionsContext: () => ({}) }); - })); + }); } }