From 9d7d0363de8a854c19c2df3e520d67d2389db4a3 Mon Sep 17 00:00:00 2001 From: Rob Lourens Date: Fri, 20 Mar 2026 22:23:12 -0700 Subject: [PATCH] When archiving active session, clear it (#303684) --- .../chat/browser/widgetHosts/viewPane/chatViewPane.ts | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.ts b/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.ts index 2adfac1bc56..bdc1c632cb0 100644 --- a/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.ts +++ b/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.ts @@ -13,6 +13,7 @@ import { Event } from '../../../../../../base/common/event.js'; import { MutableDisposable, toDisposable, DisposableStore } from '../../../../../../base/common/lifecycle.js'; import { MarshalledId } from '../../../../../../base/common/marshallingIds.js'; import { autorun, IReader } from '../../../../../../base/common/observable.js'; +import { isEqual } from '../../../../../../base/common/resources.js'; import { URI } from '../../../../../../base/common/uri.js'; import { localize } from '../../../../../../nls.js'; import { MenuWorkbenchToolBar } from '../../../../../../platform/actions/browser/toolbar.js'; @@ -628,6 +629,16 @@ export class ChatViewPane extends ViewPane implements IViewWelcomeDelegate { } })); + // When the currently displayed session is archived, start a new session + this._register(this.agentSessionsService.model.onDidChangeSessionArchivedState(e => { + if (e.isArchived()) { + const currentSessionResource = chatWidget.viewModel?.sessionResource; + if (currentSessionResource && isEqual(currentSessionResource, e.resource)) { + this.clear(); + } + } + })); + // When showing sessions stacked, adjust the height of the sessions list to make room for chat input this._register(autorun(reader => { chatWidget.inputPart.height.read(reader);