Agents - cleanup Changes view menus/actions (#315014)

* Agents - cleanup Changes view menus/actions

* More fixes
This commit is contained in:
Ladislau Szomoru
2026-05-07 14:30:23 +00:00
committed by GitHub
parent 250e6eb936
commit ef8aceeaed
14 changed files with 32 additions and 25 deletions
+1 -1
View File
@@ -5100,7 +5100,7 @@
"group": "navigation@0"
}
],
"chat/input/editing/sessionApplyActions": [
"agents/changes/actions/primary": [
{
"command": "github.copilot.sessions.initializeRepository",
"when": "chatSessionType == copilotcli && isSessionsWindow && sessions.isolationMode == workspace && !sessions.hasGitRepository && !sessions.isAgentHostSession",
+1 -1
View File
@@ -183,7 +183,7 @@
"when": "github.hasGitHubRepo && timelineItem =~ /git:file:commit\\b/"
}
],
"chat/input/editing/sessionApplyActions": []
"agents/changes/actions/primary": []
},
"configuration": [
{
+2 -1
View File
@@ -265,7 +265,6 @@ export class MenuId {
static readonly ChatModePicker = new MenuId('ChatModePicker');
static readonly ChatEditingWidgetToolbar = new MenuId('ChatEditingWidgetToolbar');
static readonly ChatEditingSessionChangesToolbar = new MenuId('ChatEditingSessionChangesToolbar');
static readonly ChatEditingSessionApplySubmenu = new MenuId('ChatEditingSessionApplySubmenu');
static readonly ChatEditingSessionTitleToolbar = new MenuId('ChatEditingSessionTitleToolbar');
static readonly ChatEditingSessionChangeToolbar = new MenuId('ChatEditingSessionChangeToolbar');
static readonly ChatEditingSessionChangesVersionsSubmenu = new MenuId('ChatEditingSessionChangesVersionsSubmenu');
@@ -313,6 +312,8 @@ export class MenuId {
static readonly AgentSessionItemToolbar = new MenuId('AgentSessionItemToolbar');
static readonly AgentSessionSectionToolbar = new MenuId('AgentSessionSectionToolbar');
static readonly AgentsTitleBarControlMenu = new MenuId('AgentsTitleBarControlMenu');
static readonly AgentsChangesToolbar = new MenuId('AgentsChangesToolbar');
static readonly AgentsChangesPrimaryActionSubMenu = new MenuId('AgentsChangesPrimaryActionSubMenu');
static readonly ChatViewSessionTitleNavigationToolbar = new MenuId('ChatViewSessionTitleNavigationToolbar');
static readonly ChatViewSessionTitleToolbar = new MenuId('ChatViewSessionTitleToolbar');
static readonly ChatContextUsageActions = new MenuId('ChatContextUsageActions');
@@ -62,7 +62,7 @@ class ActiveSessionFeedbackContextContribution extends Disposable implements IWo
contextKey.set(count > 0);
if (count > 0) {
menuRegistration.value = MenuRegistry.appendMenuItem(MenuId.ChatEditingSessionApplySubmenu, {
menuRegistration.value = MenuRegistry.appendMenuItem(MenuId.AgentsChangesPrimaryActionSubMenu, {
command: {
id: submitActiveSessionFeedbackActionId,
icon: Codicon.comment,
@@ -171,7 +171,7 @@ function registerAgentHostSkillButton(spec: IAgentHostSkillButtonSpec): void {
icon: spec.icon,
f1: false,
menu: {
id: MenuId.ChatEditingSessionApplySubmenu,
id: MenuId.AgentsChangesPrimaryActionSubMenu,
group: spec.group,
order: spec.order,
when: ContextKeyExpr.and(
@@ -165,7 +165,7 @@ suite('agentHostSkillButtons - menu registration', () => {
ensureNoDisposablesAreLeakedInTestSuite();
function skillButtonItems() {
const all = MenuRegistry.getMenuItems(MenuId.ChatEditingSessionApplySubmenu);
const all = MenuRegistry.getMenuItems(MenuId.AgentsChangesPrimaryActionSubMenu);
const menuItems: { command: { id: string }; when?: ContextKeyExpression }[] = [];
for (const item of all) {
if (!isIMenuItem(item)) {
@@ -209,9 +209,9 @@ suite('agentHostSkillButtons - menu registration', () => {
});
test('the apply submenu is contributed to the changes toolbar in the navigation group', () => {
const toolbarItems = MenuRegistry.getMenuItems(MenuId.ChatEditingSessionChangesToolbar);
const submenuEntry = toolbarItems.find(item => isISubmenuItem(item) && item.submenu === MenuId.ChatEditingSessionApplySubmenu);
assert.ok(submenuEntry, 'expected ChatEditingSessionApplySubmenu to be registered on ChatEditingSessionChangesToolbar');
const toolbarItems = MenuRegistry.getMenuItems(MenuId.AgentsChangesToolbar);
const submenuEntry = toolbarItems.find(item => isISubmenuItem(item) && item.submenu === MenuId.AgentsChangesPrimaryActionSubMenu);
assert.ok(submenuEntry, 'expected AgentsChangesPrimaryActionSubMenu to be registered on AgentsChangesToolbar');
assert.strictEqual((submenuEntry as { group?: string }).group, 'navigation');
});
@@ -65,7 +65,7 @@ class ApplyChangesToParentRepoAction extends Action2 {
),
menu: [
{
id: MenuId.ChatEditingSessionApplySubmenu,
id: MenuId.AgentsChangesPrimaryActionSubMenu,
group: 'navigation',
order: 2,
when: ContextKeyExpr.and(
@@ -165,8 +165,8 @@ registerAction2(ApplyChangesToParentRepoAction);
registerWorkbenchContribution2(ApplyChangesToParentRepoContribution.ID, ApplyChangesToParentRepoContribution, WorkbenchPhase.AfterRestored);
// Register the apply submenu in the session changes toolbar
MenuRegistry.appendMenuItem(MenuId.ChatEditingSessionChangesToolbar, {
submenu: MenuId.ChatEditingSessionApplySubmenu,
MenuRegistry.appendMenuItem(MenuId.AgentsChangesToolbar, {
submenu: MenuId.AgentsChangesPrimaryActionSubMenu,
title: localize2('applyActions', 'Apply Actions'),
group: 'navigation',
order: 1,
@@ -158,7 +158,7 @@ class ChangesButtonBarWidget extends Disposable {
reader.store.add(new MenuWorkbenchButtonBar(
container,
MenuId.ChatEditingSessionChangesToolbar,
MenuId.AgentsChangesToolbar,
{
telemetrySource: 'changesView',
menuOptions: sessionResource
@@ -78,7 +78,7 @@ class OpenPullRequestAction extends Action2 {
icon: Codicon.gitPullRequest,
f1: false,
menu: {
id: MenuId.ChatEditingSessionChangesToolbar,
id: MenuId.AgentsChangesToolbar,
group: 'navigation',
order: 9,
when: ContextKeyExpr.and(
@@ -129,7 +129,7 @@ class FixCIChecksAction extends Action2 {
category: CHAT_CATEGORY,
precondition: ContextKeyExpr.and(ChatContextKeys.enabled, hasActiveSessionFailedCIChecks),
menu: [{
id: MenuId.ChatEditingSessionApplySubmenu,
id: MenuId.AgentsChangesPrimaryActionSubMenu,
group: 'navigation',
order: 4,
when: ContextKeyExpr.and(IsSessionsWindowContext, hasActiveSessionFailedCIChecks),
@@ -47,7 +47,7 @@ function registerSessionCodeReviewAction(tooltip: string, icon: ThemeIcon): Disp
canRunSessionCodeReviewContextKey),
menu: [
{
id: MenuId.ChatEditingSessionChangesToolbar,
id: MenuId.AgentsChangesToolbar,
group: 'navigation',
order: 7,
when: ContextKeyExpr.and(
@@ -791,7 +791,7 @@ registerAction2(class MarkSessionAsDoneAction extends Action2 {
icon: Codicon.check,
precondition: ChatContextKeys.requestInProgress.negate(),
menu: [{
id: MenuId.ChatEditingSessionChangesToolbar,
id: MenuId.AgentsChangesToolbar,
group: 'navigation',
order: 1,
when: ContextKeyExpr.and(
@@ -824,7 +824,7 @@ registerAction2(class RestoreSessionAction extends Action2 {
title: localize2('restore', "Restore"),
icon: Codicon.discard,
menu: [{
id: MenuId.ChatEditingSessionChangesToolbar,
id: MenuId.AgentsChangesToolbar,
group: 'navigation',
order: 1,
when: ContextKeyExpr.and(
@@ -83,7 +83,7 @@
"group": "navigation@1"
}
],
"chat/input/editing/sessionApplyActions": [
"agents/changes/actions/primary": [
{
"command": "github.copilot.chat.mergeCopilotCLIAgentSessionChanges.merge",
"when": "chatSessionType == copilotcli && isSessionsWindow && !sessions.isMergeBaseBranchProtected",
@@ -484,12 +484,6 @@ const apiMenus: IAPIMenu[] = [
description: localize('menus.chatEditingSessionChangesToolbar', "The Chat Editing widget toolbar menu for session changes."),
proposed: 'chatSessionsProvider'
},
{
key: 'chat/input/editing/sessionApplyActions',
id: MenuId.ChatEditingSessionApplySubmenu,
description: localize('menus.chatEditingSessionApplySubmenu', "Submenu for apply actions in the Chat Editing session changes toolbar."),
proposed: 'chatSessionsProvider'
},
{
key: 'chat/input/editing/sessionTitleToolbar',
id: MenuId.ChatEditingSessionTitleToolbar,
@@ -557,6 +551,18 @@ const apiMenus: IAPIMenu[] = [
description: localize('menus.chatNewSession', "The Chat new session menu."),
proposed: 'chatSessionsProvider'
},
{
key: 'agents/changes/actions',
id: MenuId.AgentsChangesToolbar,
description: localize('menus.agentsChangesToolbar', "The Changes view toolbar of the agents window."),
proposed: 'chatSessionsProvider'
},
{
key: 'agents/changes/actions/primary',
id: MenuId.AgentsChangesPrimaryActionSubMenu,
description: localize('menus.agentsChangesPrimaryActionSubMenu', "The Changes view toolbar primary action submenu in the agents window."),
proposed: 'chatSessionsProvider'
},
];
namespace schema {