Skip to content

automations: feat: backport templates and target selection to 1.137 - #334865

Merged
Ulugbek Abdullaev (ulugbekna) merged 1 commit into
release/1.137from
ulugbekna/backport-automation-templates-1.137
Sep 8, 2026
Merged

automations: feat: backport templates and target selection to 1.137#334865
Ulugbek Abdullaev (ulugbekna) merged 1 commit into
release/1.137from
ulugbekna/backport-automation-templates-1.137

Conversation

@ulugbekna

@ulugbekna Ulugbek Abdullaev (ulugbekna) commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

Cherry-pick

Cherry-picks #334836 into release/1.137.

  • Source commit: b6d68fb
  • One signed cherry-pick commit with -x provenance.
  • Rebased onto release commit 15903dfbe84cb7bea8a802624812043da8f3d9ba after [cherry-pick] automations: fix: limit New badge to returning Agents users #334944 brought in the overlapping catalogue-state dependency.
  • Resolved the two test-file conflicts by keeping the release's combined emissions assertion and error-recovery coverage, while retaining the additional local-operation, legacy-readability, and atomic-transition tests.
  • Reuses the release's catalogue/store implementations unchanged. The remaining PR changes 18 files; the template and dialog UI are unchanged from the original cherry-pick.
  • The provider-owned session-template prerequisite is already in this release through [cherry-pick] Automations: preserve provider session templates #334831.

What this brings to 1.137

  • Starter automation templates: editable issue-triage, pull-request-review, dependency-audit, and release-notes suggestions. Selecting a template opens the normal dialog; it does not create or schedule an automation.
  • Explicit targets: new automations no longer silently inherit a recent GitHub workspace and appear locked to Cloud. Users choose a workspace or No workspace first. Single-agent targets explain the restriction and offer Choose Workspace; saved edit/duplicate targets and opaque provider configuration remain preserved.
  • Honest catalogue presentation: use the release's existing loading, ready, unavailable, and error states in the UI, accessible content, and listAutomations. Known automations and usable local targets remain available when a remote provider is offline. Only ready may claim that an empty catalogue means no automations.
  • Regression coverage and focus safeguards: retain the release's migration/readability safeguards, add coverage for unavailable providers and atomic transitions, keep full-text template hovers, and preserve focus without stealing it after delayed updates.

Provider ownership, workspace trust, managed policy, and existing AI feature gating are unchanged. There are no dependency or persistence-schema changes.

Screenshots from the source PR (unchanged UI)
Explicit new-automation target Explanation for a Cloud-only workspace
New automation asks for a workspace or No workspace Cloud-only target explains the restriction and offers Choose Workspace

Release validation

  • 177 targeted Electron tests passed after the rebase: aggregate providers, Agent Host automation stores, New badge eligibility, and the Automations view.
  • Client type checking passed after the rebase.
  • Targeted ESLint passed for both resolved test files.
  • Verified unchanged upstream catalogue/store implementations and unchanged template/dialog UI, a signed single commit, a clean worktree, and no whitespace errors.

The original conflict-free cherry-pick had an identical stable patch ID to the source commit and passed 400 targeted Electron tests, including the dialog and workspace/agent pickers. The source PR also passed its full GitHub CI and completed Copilot review without findings. CI will rerun for the rebased head.

Copilot AI balanced review requested due to automatic review settings September 7, 2026 08:21
@vs-code-engineering

Copy link
Copy Markdown
Contributor

📬 CODENOTIFY

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

Benjamin Christopher Simmonds (@benibenj)

Matched files:

  • src/vs/sessions/browser/parts/customViewNode.ts

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

The unavailable and error states need corrected screen-reader live-region semantics.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Review tier: Balanced
Findings: 1 Medium severity

New issues introduced by this change (1)
Severity Finding
Medium severity src/​vs/​sessions/​contrib/​sessions/​browser/​views/​automationsView.ts — The catalogue can become unavailable asynchronously, but this state has no live-region role. When…
What changed in this PR

Backports starter automation templates, explicit target selection, and catalogue availability handling to release/1.137.

Changes:

  • Adds editable starter templates and explicit workspace selection.
  • Propagates catalogue completeness through stores, tools, UI, and migration.
  • Improves focus, scrolling, accessibility, and regression coverage.
File Description
src/​vs/​sessions/​AUTOMATIONS.md Documents catalogue states.
src/​vs/​sessions/​browser/​parts/​customViewNode.ts Synchronizes focus-driven scrolling.
src/​vs/​sessions/​contrib/​automations/​browser/​automationDialog.ts Adds explicit target guidance.
src/​vs/​sessions/​contrib/​automations/​browser/​automationService.ts Publishes storage readability.
src/​vs/​sessions/​contrib/​automations/​browser/​automationTools.ts Reports catalogue completeness.
src/​vs/​sessions/​contrib/​automations/​browser/​automations.contribution.ts Tracks initial provider settlement.
src/​vs/​sessions/​contrib/​automations/​browser/​media/​automationDialog.css Styles target guidance.
src/​vs/​sessions/​contrib/​automations/​browser/​providerAutomationService.ts Aggregates provider states.
src/​vs/​sessions/​contrib/​automations/​test/​browser/​automationDialog.test.ts Tests target guidance.
src/​vs/​sessions/​contrib/​automations/​test/​browser/​automationService.test.ts Tests storage states.
src/​vs/​sessions/​contrib/​automations/​test/​browser/​automationTools.test.ts Tests tool output.
src/​vs/​sessions/​contrib/​automations/​test/​browser/​providerAutomationService.test.ts Tests state aggregation.
src/​vs/​sessions/​contrib/​chat/​browser/​sessionWorkspacePicker.ts Honors restoration policy.
src/​vs/​sessions/​contrib/​chat/​test/​browser/​sessionWorkspacePicker.test.ts Tests explicit selection.
src/​vs/​sessions/​contrib/​providers/​agentHost/​browser/​agentHostAutomationStore.ts Tracks host catalogue state.
src/​vs/​sessions/​contrib/​providers/​agentHost/​browser/​reconnectableAgentHostAutomationStore.ts Handles connection states atomically.
src/​vs/​sessions/​contrib/​providers/​agentHost/​test/​browser/​agentHostAutomationStore.test.ts Tests lifecycle and migration.
src/​vs/​sessions/​contrib/​sessions/​browser/​media/​automationsCards.css Styles templates and states.
src/​vs/​sessions/​contrib/​sessions/​browser/​views/​automationTemplates.ts Defines starter templates.
src/​vs/​sessions/​contrib/​sessions/​browser/​views/​automationsAccessibility.ts Extends accessible content.
src/​vs/​sessions/​contrib/​sessions/​browser/​views/​automationsView.ts Renders templates and catalogue states.
src/​vs/​sessions/​contrib/​sessions/​test/​browser/​automationsView.fixture.ts Adds visual scenarios.
src/​vs/​sessions/​contrib/​sessions/​test/​browser/​automationsView.test.ts Tests UI, focus, and accessibility.
src/​vs/​workbench/​contrib/​chat/​common/​automations/​automationDialogService.ts Allows targetless initial values.
src/​vs/​workbench/​contrib/​chat/​common/​automations/​automationService.ts Defines catalogue-state contract.
Suppressed comments (1)

src/vs/sessions/contrib/sessions/browser/views/automationsView.ts:604

  • This catalogue failure is a background provider update, so an assertive alert interrupts the user's current screen-reader speech whenever the state changes. Use a polite status region, as is already done for partial catalogue failures.
		this.errorContainer.setAttribute('role', 'alert');

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

Comment thread src/vs/sessions/contrib/sessions/browser/views/automationsView.ts
@github-actions

github-actions Bot commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

Screenshot Changes

Base: 15903dfb Current: 35a631c8

Changed (2)

sessions/automations/automationsView/Empty/Dark
Before After
before after
sessions/automations/automationsView/Empty/Light
Before After
before after

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

Added (20)

sessions/automations/automationsView/Empty/DarkHighContrast

current

sessions/automations/automationsView/NarrowEmpty/Dark

current

sessions/automations/automationsView/NarrowEmpty/Light

current

sessions/automations/automationsView/ShortEmpty/Dark

current

sessions/automations/automationsView/ShortEmpty/Light

current

sessions/automations/automationsView/Loading/Dark

current

sessions/automations/automationsView/Loading/Light

current

sessions/automations/automationsView/Unavailable/Dark

current

sessions/automations/automationsView/Unavailable/Light

current

sessions/automations/automationsView/Unavailable/DarkHighContrast

current

sessions/automations/automationsView/NarrowUnavailable/Dark

current

sessions/automations/automationsView/NarrowUnavailable/Light

current

sessions/automations/automationsView/PartialLoading/Dark

current

sessions/automations/automationsView/PartialLoading/Light

current

sessions/automations/automationsView/PartialUnavailable/Dark

current

sessions/automations/automationsView/PartialUnavailable/Light

current

sessions/automations/automationsView/PartialError/Dark

current

sessions/automations/automationsView/PartialError/Light

current

sessions/automations/automationsView/Error/Dark

current

sessions/automations/automationsView/Error/Light

current

…#334836)

Offer editable starter templates without silently inheriting a recent workspace. Explain workspace-specific agent choices while preserving saved provider-owned session configuration.

Distinguish catalogue loading, readiness, unavailability, and errors across providers, storage, tools, and accessible UI. Keep usable local automation targets available when a remote host is offline, and preserve focus without stealing it after delayed updates.

Include regression tests and visual fixtures for catalogue lifecycle, migration readability, target selection, and focus behavior.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 13c4c742-2729-4be4-819c-2adf8243f733
(cherry picked from commit b6d68fb)
@ulugbekna
Ulugbek Abdullaev (ulugbekna) force-pushed the ulugbekna/backport-automation-templates-1.137 branch from 4f81ea7 to 52d7fc4 Compare September 7, 2026 22:24
@ulugbekna
Ulugbek Abdullaev (ulugbekna) merged commit b90e78d into release/1.137 Sep 8, 2026
30 checks passed
@ulugbekna
Ulugbek Abdullaev (ulugbekna) deleted the ulugbekna/backport-automation-templates-1.137 branch September 8, 2026 08:07
Ulugbek Abdullaev (ulugbekna) added a commit that referenced this pull request Sep 8, 2026
Correct three fixtures inherited from #334865 that passed a main-only telemetry dependency to the four-argument release AutomationStore. Remove the unused telemetry stub without changing production behavior.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
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