[cherry-pick] automations: feat: backport templates and target selection to 1.137 - #335012
[cherry-pick] automations: feat: backport templates and target selection to 1.137#335012vs-code-engineering[bot] wants to merge 1 commit into
Conversation
There was a problem hiding this comment.
🟡 Changes recommended
Unresolved merge conflicts leave production and test files syntactically invalid.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Pull request overview
Backports automation templates, explicit target selection, and catalogue-state handling to release 1.137.
Changes:
- Adds starter templates and accessible presentation.
- Preserves target-selection and catalogue-state safeguards.
- Adds regression coverage for provider and automation behavior.
- Contains unresolved merge conflicts.
File summaries
| File | Review |
|---|---|
src/vs/sessions/contrib/sessions/test/browser/automationsView.test.ts |
Critical: unresolved conflicts prevent compilation. |
src/vs/sessions/contrib/sessions/browser/views/automationTemplates.ts |
Critical: unresolved conflicts in the template contract. |
src/vs/sessions/contrib/sessions/browser/views/automationsView.ts |
Critical: unresolved conflict in template-card rendering. |
src/vs/sessions/contrib/sessions/browser/views/automationsAccessibility.ts |
Critical: unresolved conflict in accessible summaries. |
src/vs/sessions/contrib/providers/agentHost/test/browser/agentHostAutomationStore.test.ts |
Critical: conflicting constructor calls prevent compilation. |
src/vs/sessions/contrib/automations/test/browser/providerAutomationService.test.ts |
Critical: unresolved constructor conflict prevents compilation. |
Review details
Suppressed comments (8)
src/vs/sessions/contrib/providers/agentHost/test/browser/agentHostAutomationStore.test.ts:2299
- This additional unresolved constructor conflict leaves the test file invalid. Select the call matching the target branch API and remove the markers.
<<<<<<< HEAD
src/vs/sessions/contrib/providers/agentHost/test/browser/agentHostAutomationStore.test.ts:2309
- The empty conflict branch and telemetry stub are still enclosed by merge markers, which prevents the test from parsing. Resolve whether this dependency exists on the target branch and remove the markers.
<<<<<<< HEAD
src/vs/sessions/contrib/sessions/browser/views/automationTemplates.ts:22
- Two incompatible template catalogues are still separated by conflict markers, leaving invalid syntax and ambiguous shipped content. Select the intended catalogue and remove the complete conflict block.
<<<<<<< HEAD
src/vs/sessions/contrib/sessions/test/browser/automationsView.test.ts:865
- This second unresolved conflict also makes the test file syntactically invalid. Select the expected template assertion and remove all conflict markers.
<<<<<<< HEAD
src/vs/sessions/contrib/sessions/test/browser/automationsView.test.ts:906
- The committed conflict markers prevent TypeScript from parsing this expected-state assertion. Resolve the template-count variant before merging.
<<<<<<< HEAD
src/vs/sessions/contrib/sessions/test/browser/automationsView.test.ts:968
- Both conflicting test implementations remain in source, which makes the suite uncompilable. Resolve this block to the test coverage matching the retained templates and remove the markers.
<<<<<<< HEAD
src/vs/sessions/contrib/sessions/test/browser/automationsView.test.ts:1046
- This unresolved conflict leaves invalid syntax in the hover test. Choose the expected hover count that matches the final template list and remove the markers.
<<<<<<< HEAD
src/vs/sessions/contrib/sessions/test/browser/automationsView.test.ts:2335
- This remaining conflict marker makes the test source invalid. Resolve the accessibility-content expectation consistently with the final template representation.
<<<<<<< HEAD
- Files reviewed: 6/6 changed files
- Comments generated: 7
- Review effort level: Balanced
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| <<<<<<< HEAD | ||
| const remote = teardown.add(new MutableCatalogueAutomationStore('remote', storage, new NullLogService(), automationStorage)); | ||
| ======= | ||
| const remote = teardown.add(new MutableCatalogueAutomationStore('remote', storage, new NullLogService(), NullTelemetryService, automationStorage)); | ||
| >>>>>>> b90e78d57e8 (automations: feat: backport templates and target selection to 1.137 (#334865)) |
| const storage = disposables.add(new InMemoryStorageService()); | ||
| const automationStorage = new TestAutomationStorageService(storage); | ||
| const storageKey = providerAutomationStorageKey('remote-agent-host'); | ||
| <<<<<<< HEAD |
| export interface IAutomationTemplate { | ||
| readonly id: string; | ||
| readonly name: string; | ||
| <<<<<<< HEAD |
| lines.push(''); | ||
| lines.push(localize('automationsAccessibleView.templates', "Available templates")); | ||
| for (const template of AUTOMATION_TEMPLATES) { | ||
| <<<<<<< HEAD |
|
|
||
| const scheduleElement = DOM.append(card, $('span.automations-template-card-schedule')); | ||
| scheduleElement.textContent = schedule; | ||
| <<<<<<< HEAD |
| descriptions: widget.element.querySelectorAll('.automations-cards-empty-description').length, | ||
| buttons: widget.element.querySelectorAll('.automations-cards-create-button').length, | ||
| templateSections: widget.element.querySelectorAll('.automations-templates').length, | ||
| <<<<<<< HEAD |
| ); | ||
| }); | ||
|
|
||
| <<<<<<< HEAD |
Cherry-pick of #334865 from
release/1.137.<<<<<<</=======/>>>>>>>) are committed to the branch — check it out locally, resolve, and force-push.Conflicting files:
src/vs/sessions/contrib/automations/test/browser/providerAutomationService.test.tssrc/vs/sessions/contrib/providers/agentHost/test/browser/agentHostAutomationStore.test.tssrc/vs/sessions/contrib/sessions/browser/views/automationTemplates.tssrc/vs/sessions/contrib/sessions/browser/views/automationsAccessibility.tssrc/vs/sessions/contrib/sessions/browser/views/automationsView.tssrc/vs/sessions/contrib/sessions/test/browser/automationsView.test.tsCherry-pick
Cherry-picks #334836 into
release/1.137.-xprovenance.15903dfbe84cb7bea8a802624812043da8f3d9baafter [cherry-pick] automations: fix: limit New badge to returning Agents users #334944 brought in the overlapping catalogue-state dependency.What this brings to 1.137
loading,ready,unavailable, anderrorstates in the UI, accessible content, andlistAutomations. Known automations and usable local targets remain available when a remote provider is offline. Onlyreadymay claim that an empty catalogue means no automations.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)
Release validation
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.