From eb8922169d4f2b447e3d88dc97a3535181babc45 Mon Sep 17 00:00:00 2001 From: Osvaldo Ortega Date: Fri, 27 Mar 2026 16:54:23 -0700 Subject: [PATCH] Refactor cloud delegation logic to clarify git repository requirement --- .../chat/browser/actions/chatContinueInAction.ts | 12 ++++++------ .../input/delegationSessionPickerActionItem.ts | 5 ----- 2 files changed, 6 insertions(+), 11 deletions(-) diff --git a/src/vs/workbench/contrib/chat/browser/actions/chatContinueInAction.ts b/src/vs/workbench/contrib/chat/browser/actions/chatContinueInAction.ts index bfdda6b53d7..9050dba31f4 100644 --- a/src/vs/workbench/contrib/chat/browser/actions/chatContinueInAction.ts +++ b/src/vs/workbench/contrib/chat/browser/actions/chatContinueInAction.ts @@ -206,10 +206,10 @@ export class ChatContinueInSessionActionItem extends ActionWidgetDropdownActionV actions.push(this.toAction(AgentSessionProviders.Background, backgroundContrib, instantiationService, location)); } - // Continue in Cloud (requires a git repository) + // Continue in Cloud (disabled when no git repository) const cloudContrib = contributions.find(contrib => contrib.type === AgentSessionProviders.Cloud); - if (cloudContrib && cloudContrib.canDelegate && hasGitRepo) { - actions.push(this.toAction(AgentSessionProviders.Cloud, cloudContrib, instantiationService, location)); + if (cloudContrib && cloudContrib.canDelegate) { + actions.push(this.toAction(AgentSessionProviders.Cloud, cloudContrib, instantiationService, location, hasGitRepo)); } // Offer actions to enter setup if we have no contributions @@ -223,13 +223,13 @@ export class ChatContinueInSessionActionItem extends ActionWidgetDropdownActionV }; } - private static toAction(provider: AgentSessionProviders, contrib: ResolvedChatSessionsExtensionPoint, instantiationService: IInstantiationService, location: ActionLocation): IActionWidgetDropdownAction { + private static toAction(provider: AgentSessionProviders, contrib: ResolvedChatSessionsExtensionPoint, instantiationService: IInstantiationService, location: ActionLocation, enabled: boolean = true): IActionWidgetDropdownAction { return { id: contrib.type, - enabled: true, + enabled, icon: getAgentSessionProviderIcon(provider), class: undefined, - description: `@${contrib.name}`, + description: enabled ? `@${contrib.name}` : localize('chat.cloudRequiresGit', "Requires a Git repository"), label: getAgentSessionProviderName(provider), tooltip: localize('continueSessionIn', "Continue in {0}", getAgentSessionProviderName(provider)), category: { label: localize('continueIn', "Continue In"), order: 0, showHeader: true }, diff --git a/src/vs/workbench/contrib/chat/browser/widget/input/delegationSessionPickerActionItem.ts b/src/vs/workbench/contrib/chat/browser/widget/input/delegationSessionPickerActionItem.ts index de609e67d43..97d7049abd8 100644 --- a/src/vs/workbench/contrib/chat/browser/widget/input/delegationSessionPickerActionItem.ts +++ b/src/vs/workbench/contrib/chat/browser/widget/input/delegationSessionPickerActionItem.ts @@ -107,11 +107,6 @@ export class DelegationSessionPickerActionItem extends SessionTypePickerActionIt return false; } - // Cloud delegation requires a git repository - if (type === AgentSessionProviders.Cloud && !this._hasGitRepository()) { - return false; - } - if (this.delegate.getActiveSessionProvider() === type) { return true; // Always show active session type }