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 6c7ae754e48..c11c625bc9c 100644 --- a/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.ts +++ b/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.ts @@ -65,7 +65,9 @@ import { IAgentSession } from '../../agentSessions/agentSessionsModel.js'; import { IChatEntitlementService } from '../../../../../services/chat/common/chatEntitlementService.js'; interface IChatViewPaneState extends Partial { + /** @deprecated */ sessionId?: string; + sessionResource?: URI; sessionsSidebarWidth?: number; } @@ -128,7 +130,9 @@ export class ChatViewPane extends ViewPane implements IViewWelcomeDelegate { lifecycleService.startupKind !== StartupKind.ReloadedWindow && this.configurationService.getValue(ChatConfiguration.RestoreLastPanelSession) === false ) { - this.viewState.sessionId = undefined; // clear persisted session on fresh start + // clear persisted session on fresh start + this.viewState.sessionId = undefined; + this.viewState.sessionResource = undefined; } this.sessionsViewerVisible = false; // will be updated from layout code this.sessionsViewerSidebarWidth = Math.max(ChatViewPane.SESSIONS_SIDEBAR_MIN_WIDTH, this.viewState.sessionsSidebarWidth ?? ChatViewPane.SESSIONS_SIDEBAR_DEFAULT_WIDTH); @@ -267,6 +271,10 @@ export class ChatViewPane extends ViewPane implements IViewWelcomeDelegate { return this.chatService.transferredSessionResource; } + if (this.viewState.sessionResource) { + return this.viewState.sessionResource; + } + return this.viewState.sessionId ? LocalChatSessionUri.forSession(this.viewState.sessionId) : undefined; } @@ -675,7 +683,9 @@ export class ChatViewPane extends ViewPane implements IViewWelcomeDelegate { if (model) { await this.updateWidgetLockState(model.sessionResource); // Update widget lock state based on session type - this.viewState.sessionId = model.sessionId; // remember as model to restore in view state + // remember as model to restore in view state + this.viewState.sessionId = model.sessionId; + this.viewState.sessionResource = model.sessionResource; } this._widget.setModel(model);