mirror of
https://github.com/microsoft/vscode.git
synced 2026-08-25 18:46:06 +01:00
feat(copilot): add AI-generated branch names (#308441)
This commit is contained in:
@@ -4554,6 +4554,14 @@
|
||||
"advanced"
|
||||
]
|
||||
},
|
||||
"github.copilot.chat.cli.aiGenerateBranchNames.enabled": {
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"markdownDescription": "%github.copilot.config.cli.aiGenerateBranchNames.enabled%",
|
||||
"tags": [
|
||||
"advanced"
|
||||
]
|
||||
},
|
||||
"github.copilot.chat.cli.forkSessions.enabled": {
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
|
||||
@@ -406,6 +406,7 @@
|
||||
"github.copilot.config.cli.branchSupport.enabled": "Enable branch support for Copilot CLI.",
|
||||
"github.copilot.config.cli.forkSessions.enabled": "Enable forking sessions in Copilot CLI.",
|
||||
"github.copilot.config.cli.planExitMode.enabled": "Enable Plan Mode exit handling in Copilot CLI.",
|
||||
"github.copilot.config.cli.aiGenerateBranchNames.enabled": "Enable AI-generated branch names in Copilot CLI.",
|
||||
"github.copilot.config.cli.isolationOption.enabled": "Enable the isolation mode option for Copilot CLI. When enabled, users can choose between Worktree and Workspace modes.",
|
||||
"github.copilot.config.cli.autoCommit.enabled": "Enable automatic commit for Copilot CLI. When enabled, changes made by Copilot CLI will be automatically committed to the repository at the end of each turn.",
|
||||
"github.copilot.config.cli.sessionController.enabled": "Enable the new session controller API for Copilot CLI. Requires VS Code reload.",
|
||||
|
||||
@@ -198,7 +198,10 @@ export class ChatSessionsContrib extends Disposable implements IExtensionContrib
|
||||
const gitService = copilotcliAgentInstaService.invokeFunction(accessor => accessor.get(IGitService));
|
||||
const sessionTracker = copilotcliAgentInstaService.invokeFunction(accessor => accessor.get(ICopilotCLISessionTracker));
|
||||
const terminalIntegration = copilotcliAgentInstaService.invokeFunction(accessor => accessor.get(ICopilotCLITerminalIntegration));
|
||||
const branchNameGenerator = copilotcliAgentInstaService.createInstance(GitBranchNameGenerator);
|
||||
const aiGeneratedBranchNames = instantiationService.invokeFunction(accessor =>
|
||||
accessor.get(IConfigurationService).getConfig(ConfigKey.Advanced.CLIAIGenerateBranchNames)
|
||||
);
|
||||
const branchNameGenerator = aiGeneratedBranchNames ? copilotcliAgentInstaService.createInstance(GitBranchNameGenerator) : undefined;
|
||||
|
||||
const copilotcliChatSessionParticipant = this._register(copilotcliAgentInstaService.createInstance(
|
||||
CopilotCLIChatSessionParticipant,
|
||||
|
||||
@@ -522,7 +522,7 @@ export class CopilotCLIChatSessionParticipant extends Disposable {
|
||||
private readonly sessionItemProvider: ICopilotCLIChatSessionItemProvider,
|
||||
private readonly promptResolver: CopilotCLIPromptResolver,
|
||||
private readonly cloudSessionProvider: CopilotCloudSessionsProvider | undefined,
|
||||
private readonly branchNameGenerator: GitBranchNameGenerator,
|
||||
private readonly branchNameGenerator: GitBranchNameGenerator | undefined,
|
||||
@IGitService private readonly gitService: IGitService,
|
||||
@ICopilotCLISessionService private readonly sessionService: ICopilotCLISessionService,
|
||||
@IChatSessionWorktreeService private readonly copilotCLIWorktreeManagerService: IChatSessionWorktreeService,
|
||||
@@ -694,7 +694,7 @@ export class CopilotCLIChatSessionParticipant extends Disposable {
|
||||
history: [requestTurn],
|
||||
yieldRequested: false,
|
||||
};
|
||||
const branchNamePromise = isNewSession && request.prompt ? this.branchNameGenerator.generateBranchName(fakeContext, token) : Promise.resolve(undefined);
|
||||
const branchNamePromise = (isNewSession && request.prompt && this.branchNameGenerator) ? this.branchNameGenerator.generateBranchName(fakeContext, token) : Promise.resolve(undefined);
|
||||
|
||||
const sessionResult = await this.getOrCreateSession(request, chatSessionContext, stream, { branchName: branchNamePromise }, disposables, token);
|
||||
({ session } = sessionResult);
|
||||
|
||||
@@ -611,6 +611,7 @@ export namespace ConfigKey {
|
||||
export const UseResponsesApiTruncation = defineAndMigrateSetting<boolean | undefined>('chat.advanced.useResponsesApiTruncation', 'chat.useResponsesApiTruncation', false);
|
||||
export const OmitBaseAgentInstructions = defineAndMigrateSetting<boolean>('chat.advanced.omitBaseAgentInstructions', 'chat.omitBaseAgentInstructions', false);
|
||||
export const CLIPlanExitModeEnabled = defineSetting<boolean>('chat.cli.planExitMode.enabled', ConfigType.Simple, false);
|
||||
export const CLIAIGenerateBranchNames = defineSetting<boolean>('chat.cli.aiGenerateBranchNames.enabled', ConfigType.Simple, false);
|
||||
export const CLIForkSessionsEnabled = defineSetting<boolean>('chat.cli.forkSessions.enabled', ConfigType.Simple, false);
|
||||
export const CLIMCPServerEnabled = defineAndMigrateSetting<boolean | undefined>('chat.advanced.cli.mcp.enabled', 'chat.cli.mcp.enabled', true);
|
||||
export const CLIBranchSupport = defineSetting<boolean>('chat.cli.branchSupport.enabled', ConfigType.Simple, false);
|
||||
|
||||
Reference in New Issue
Block a user