From b5008646a32bef36ff5f08cb79fa16877d65f8f2 Mon Sep 17 00:00:00 2001 From: Vijay Upadya <41652029+vijayupadya@users.noreply.github.com> Date: Mon, 3 Nov 2025 12:11:40 -0800 Subject: [PATCH] Fix SessionViewPane leaks (#274239) * Prevent ChatEditorInput leak * Few minor updates * Revert "Few minor updates" This reverts commit 92ecb6728d7fcb46c8da992d60d0259379e0f79c. * Revert "Prevent ChatEditorInput leak" This reverts commit 38f5c83895ac3c40d1cd5e4a35e2cf34d4c33c50. * Fix sessionViewPane leak * Simplification based on PR feedback --------- Co-authored-by: vijay upadya --- .../chatSessions/view/sessionsViewPane.ts | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/src/vs/workbench/contrib/chat/browser/chatSessions/view/sessionsViewPane.ts b/src/vs/workbench/contrib/chat/browser/chatSessions/view/sessionsViewPane.ts index 30bc3f8d8d3..98ff37868ba 100644 --- a/src/vs/workbench/contrib/chat/browser/chatSessions/view/sessionsViewPane.ts +++ b/src/vs/workbench/contrib/chat/browser/chatSessions/view/sessionsViewPane.ts @@ -8,7 +8,7 @@ import { $, append } from '../../../../../../base/browser/dom.js'; import { IActionViewItem } from '../../../../../../base/browser/ui/actionbar/actionbar.js'; import { IBaseActionViewItemOptions } from '../../../../../../base/browser/ui/actionbar/actionViewItems.js'; import { ITreeContextMenuEvent } from '../../../../../../base/browser/ui/tree/tree.js'; -import { Action, IAction } from '../../../../../../base/common/actions.js'; +import { IAction, toAction } from '../../../../../../base/common/actions.js'; import { coalesce } from '../../../../../../base/common/arrays.js'; import { Codicon } from '../../../../../../base/common/codicons.js'; import { FuzzyScore } from '../../../../../../base/common/filters.js'; @@ -143,9 +143,7 @@ export class SessionsViewPane extends ViewPane { icon: Codicon.plus, }, undefined, undefined, undefined, undefined); - const menu = this.menuService.createMenu(MenuId.ChatSessionsMenu, this.scopedContextKeyService); - - const actions = menu.getActions({ shouldForwardArgs: true }); + const actions = this.menuService.getMenuActions(MenuId.ChatSessionsMenu, this.scopedContextKeyService, { shouldForwardArgs: true }); const primaryActions = getActionBarActions( actions, 'submenu', @@ -165,12 +163,12 @@ export class SessionsViewPane extends ViewPane { return; } - const dropdownAction = new Action( - 'selectNewChatSessionOption', - nls.localize('chatSession.selectOption', 'More...'), - 'codicon-chevron-down', - true - ); + const dropdownAction = toAction({ + id: 'selectNewChatSessionOption', + label: nls.localize('chatSession.selectOption', 'More...'), + class: 'codicon-chevron-down', + run: () => { } + }); const dropdownActions: IAction[] = [];