Skip to content

automations: add customization selection and save progress - #339176

Open
Connor Peet (connor4312) wants to merge 3 commits into
mainfrom
connor4312/automation-customization-ux
Open

Connor Peet (connor4312) wants to merge 3 commits into
mainfrom
connor4312/automation-customization-ux

Conversation

@connor4312

Copy link
Copy Markdown
Member

automations: add customization selection and save progress

Adds a way to select the customizations that an automation syncs, and shows progress while the
agent host syncs them.

  • Adds an "Advanced" section to the automation dialog with a checkbox list of customizations.
    A saved customization that changed locally shows an "Outdated" pill. Saving the automation
    updates it.
  • Keeps the automation dialog open while the agent host saves the change. Shows a progress bar
    and a status, and shows errors in the dialog.
  • Adds getCustomizationChoices and customizationIds to the automation store contract.
  • Uses file plugins at their original paths when a local window saves the automation, so the
    local agent host does not copy them.

(Commit message generated by Copilot)

@connor4312
Connor Peet (connor4312) enabled auto-merge (squash) October 1, 2026 20:53
Copilot AI balanced review requested due to automatic review settings October 1, 2026 20:53
@vs-code-engineering

Copy link
Copy Markdown
Contributor

📬 CODENOTIFY

The following users are being notified based on files changed in this PR:

Ulugbek Abdullaev (@ulugbekna)

Matched files:

  • src/vs/platform/agentHost/node/agentHostAutomationCustomizations.ts
  • src/vs/platform/agentHost/node/agentHostAutomationService.ts
  • src/vs/platform/agentHost/test/node/agentHostAutomationCustomizations.test.ts
  • src/vs/platform/agentHost/test/node/agentHostAutomationService.test.ts
  • src/vs/workbench/contrib/chat/common/automations/automationDialogService.ts
  • src/vs/workbench/contrib/chat/common/automations/automationService.ts

Ben Villalobos (@benvillalobos)

Matched files:

  • src/vs/platform/agentHost/node/agentHostAutomationCustomizations.ts
  • src/vs/platform/agentHost/node/agentHostAutomationService.ts
  • src/vs/platform/agentHost/test/node/agentHostAutomationCustomizations.test.ts
  • src/vs/platform/agentHost/test/node/agentHostAutomationService.test.ts
  • src/vs/workbench/contrib/chat/common/automations/automationDialogService.ts
  • src/vs/workbench/contrib/chat/common/automations/automationService.ts

Adds a way to select the customizations that an automation syncs, and shows progress while the
agent host syncs them.

- Adds an "Advanced" section to the automation dialog with a checkbox list of customizations.
  A saved customization that changed locally shows an "Outdated" pill. Saving the automation
  updates it.
- Keeps the automation dialog open while the agent host saves the change. Shows a progress bar
  and a status, and shows errors in the dialog.
- Adds getCustomizationChoices and customizationIds to the automation store contract.
- Uses file plugins at their original paths when a local window saves the automation, so the
  local agent host does not copy them.

(Commit message generated by Copilot)
@connor4312
Connor Peet (connor4312) force-pushed the connor4312/automation-customization-ux branch from 5bacda4 to 7861ea9 Compare October 1, 2026 20:57

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟡 Changes recommended

Client locality and identity checks expose host file paths to potentially remote clients, alongside customization-loading race conditions.

Review effort: Balanced
Findings: 2 High severity · 2 Medium severity

Open (4)
What changed in this PR

Adds selectable automation customizations, in-dialog save progress/error handling, and local file-plugin reuse for Agent Host automations.

Changes:

  • Adds customization selection and outdated-state handling.
  • Keeps dialogs open during persistence with progress and inline errors.
  • Reuses local file plugins in place and expands supporting tests/documentation.
File Description
src/​vs/​workbench/​contrib/​chat/​common/​automations/​automationService.ts Extends automation customization contracts.
src/​vs/​workbench/​contrib/​chat/​common/​automations/​automationDialogService.ts Adds dialog commit callback.
src/​vs/​sessions/​contrib/​sessions/​test/​browser/​automationsView.test.ts Updates view persistence tests.
src/​vs/​sessions/​contrib/​sessions/​browser/​views/​automationsView.ts Moves persistence into dialog commits.
src/​vs/​sessions/​contrib/​providers/​agentHost/​test/​browser/​agentHostAutomationStore.test.ts Tests customization selection and capture.
src/​vs/​sessions/​contrib/​providers/​agentHost/​browser/​reconnectableAgentHostAutomationStore.ts Forwards customization queries.
src/​vs/​sessions/​contrib/​providers/​agentHost/​browser/​agentHostAutomationStore.ts Implements customization choices and refresh.
src/​vs/​sessions/​contrib/​automations/​test/​browser/​providerAutomationService.test.ts Tests provider routing.
src/​vs/​sessions/​contrib/​automations/​test/​browser/​automationDialog.test.ts Tests selection, progress, and retries.
src/​vs/​sessions/​contrib/​automations/​browser/​providerAutomationService.ts Routes customization queries.
src/​vs/​sessions/​contrib/​automations/​browser/​media/​automationDialog.css Styles progress and advanced controls.
src/​vs/​sessions/​contrib/​automations/​browser/​automationDialogService.ts Implements commit progress and errors.
src/​vs/​sessions/​contrib/​automations/​browser/​automationDialog.ts Adds customization selection UI.
src/​vs/​sessions/​AUTOMATIONS.md Documents customization capture behavior.
src/​vs/​platform/​agentHost/​test/​node/​protocolServerHandler.test.ts Tests client locality classification.
src/​vs/​platform/​agentHost/​test/​node/​agentPluginManager.test.ts Tests in-place automation plugins.
src/​vs/​platform/​agentHost/​test/​node/​agentHostTurnHangTelemetry.test.ts Updates connection-source fixtures.
src/​vs/​platform/​agentHost/​test/​node/​agentHostToolCallTelemetry.test.ts Updates connection-source fixtures.
src/​vs/​platform/​agentHost/​test/​node/​agentHostClientConnectionService.test.ts Tests locality aggregation.
src/​vs/​platform/​agentHost/​test/​node/​agentHostAutomationService.test.ts Tests local customization persistence.
src/​vs/​platform/​agentHost/​test/​node/​agentHostAutomationCustomizations.test.ts Tests local, virtual, and remote capture.
src/​vs/​platform/​agentHost/​node/​protocolServerHandler.ts Reports client locality.
src/​vs/​platform/​agentHost/​node/​agentPluginManager.ts Reuses automation file plugins.
src/​vs/​platform/​agentHost/​node/​agentHostClientConnectionService.ts Adds locality API.
src/​vs/​platform/​agentHost/​node/​agentHostAutomationService.ts Passes locality into capture.
src/​vs/​platform/​agentHost/​node/​agentHostAutomationCustomizations.ts Captures local files in place.
src/​vs/​platform/​agentHost/​common/​agentPluginManager.ts Defines automation active-client identity.

💡 Configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread src/vs/platform/agentHost/node/agentPluginManager.ts Outdated
Comment thread src/vs/platform/agentHost/node/protocolServerHandler.ts Outdated
Comment thread src/vs/sessions/contrib/automations/browser/automationDialog.ts
Comment thread src/vs/sessions/contrib/automations/browser/automationDialog.ts
- Uses a host-controlled allowlist to decide which file plugins the agent host uses in place,
  instead of trusting the client ID. A client cannot make the host load an arbitrary host path.
- Restores the MessagePort transport check for local agent host clients.
- Waits for the customization choices to load before the dialog saves, so the save always
  includes the selection.
- Reloads the customization choices when the workspace isolation changes.

(Commit message generated by Copilot)
roblourens
roblourens previously approved these changes Oct 1, 2026
@github-actions

github-actions Bot commented Oct 1, 2026 •

Copy link
Copy Markdown
Contributor

Screenshot Changes

Base: 990fb537 Current: ceef6c69

Changed (2)

sessions/accountMenu/WeeklyLimitOnly/Light
Before After
before after
chat/aiCustomizations/aiCustomizationManagementEditor/DiscoverPluginsLoadingMore/Light
Before After
before after

2 insignificant change(s) omitted (≤20 px, Δ≤2). See CI logs for details.

Replaces the allowlist of trusted host plugin directories with a URI scheme. A `file:` plugin URI
now always names a client resource, so a host path cannot be confused with a client path.

- Adds the `vscode-agent-host-file:` scheme for plugin URIs that name a directory on the agent
  host's own disk. The plugin manager uses these directories in place.
- Gives automation run sessions their captured and local in-place plugins with this scheme.
- Removes trustHostPluginDirectory and the in-place rule for paths under hostPluginsPath.

(Commit message generated by Copilot)

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants