From 9e3556c893269f21332fd50dace4a7483be847b2 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 6 Nov 2025 20:39:37 +0000 Subject: [PATCH 1/2] Initial plan From b6788071f448931ff84b46b994d58d23f6a8e3ed Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 6 Nov 2025 20:51:11 +0000 Subject: [PATCH 2/2] Align lifecycle management for Copilot Cloud with Claude and CLI implementations Co-authored-by: joshspicer <23246594+joshspicer@users.noreply.github.com> --- src/extension/chatSessions/vscode-node/chatSessions.ts | 3 ++- .../vscode-node/copilotCloudSessionsProvider.ts | 7 ++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/extension/chatSessions/vscode-node/chatSessions.ts b/src/extension/chatSessions/vscode-node/chatSessions.ts index 38b3b1c7db..f6565668c9 100644 --- a/src/extension/chatSessions/vscode-node/chatSessions.ts +++ b/src/extension/chatSessions/vscode-node/chatSessions.ts @@ -135,11 +135,12 @@ export class ChatSessionsContrib extends Disposable implements IExtensionContrib this.copilotCloudRegistrations.add( vscode.chat.registerChatSessionItemProvider(CopilotCloudSessionsProvider.TYPE, cloudSessionsProvider) ); + const cloudChatParticipant = vscode.chat.createChatParticipant(CopilotCloudSessionsProvider.TYPE, cloudSessionsProvider.createHandler()); this.copilotCloudRegistrations.add( vscode.chat.registerChatSessionContentProvider( CopilotCloudSessionsProvider.TYPE, cloudSessionsProvider, - cloudSessionsProvider.chatParticipant, + cloudChatParticipant, { supportsInterruptions: true } ) ); diff --git a/src/extension/chatSessions/vscode-node/copilotCloudSessionsProvider.ts b/src/extension/chatSessions/vscode-node/copilotCloudSessionsProvider.ts index c75f47fc3e..14bbd7642a 100644 --- a/src/extension/chatSessions/vscode-node/copilotCloudSessionsProvider.ts +++ b/src/extension/chatSessions/vscode-node/copilotCloudSessionsProvider.ts @@ -68,9 +68,6 @@ export class CopilotCloudSessionsProvider extends Disposable implements vscode.C private chatSessions: Map = new Map(); private chatSessionItemsPromise: Promise | undefined; private sessionAgentMap: Map = new Map(); - public chatParticipant = vscode.chat.createChatParticipant(CopilotCloudSessionsProvider.TYPE, async (request, context, stream, token) => - await this.chatParticipantImpl(request, context, stream, token) - ); private cachedSessionsSize: number = 0; constructor( @@ -98,6 +95,10 @@ export class CopilotCloudSessionsProvider extends Disposable implements vscode.C this._onDidChangeChatSessionItems.fire(); } + createHandler(): vscode.ChatExtendedRequestHandler { + return this.chatParticipantImpl.bind(this); + } + async provideChatSessionProviderOptions(token: vscode.CancellationToken): Promise { const repoId = await getRepoId(this._gitService); if (!repoId) {