Repository navigation
[cherry-pick] sessions: Add inline remote management actions - #344266
Merged
Merged
Conversation
Dirk Bäumer (dbaeumer)
approved these changes
Oct 26, 2026
Contributor
Screenshot ChangesBase: Changed (18)Added (1) |
Christof Marti (chrmarti)
enabled auto-merge
October 26, 2026 13:02
Contributor
There was a problem hiding this comment.
🟡 Changes recommended
Stale background discovery can restore deleted tunnels, and asynchronous action changes can lose or unexpectedly move keyboard focus.
3 open issues
What changed in this PR
Cherry-picks inline remote-management actions into the Agents Window’s Remote Environments editor, reusing existing management services and dialogs.
Changes:
- Adds Copy Address, preferred agent location, server update, and supported tunnel deletion actions.
- Prefers fresh tunnel metadata and adds deletion safeguards.
- Expands accessibility guidance, regression tests, and themed fixtures; updates the WSL documentation link.
| File | Description |
|---|---|
src/vs/sessions/contrib/providers/remoteAgentHost/test/electron-browser/remotesEditor.test.ts |
Extends the model stub with new actions. |
src/vs/sessions/contrib/providers/remoteAgentHost/test/browser/remotesWidget.test.ts |
Tests action availability, keyboard behavior, and failures. |
src/vs/sessions/contrib/providers/remoteAgentHost/test/browser/remotesWidget.fixture.ts |
Adds themed inline-action fixtures. |
src/vs/sessions/contrib/providers/remoteAgentHost/test/browser/remotesModel.test.ts |
Tests management flows, metadata precedence, and deletion safeguards. |
src/vs/sessions/contrib/providers/remoteAgentHost/electron-browser/remotes.contribution.ts |
Documents new actions in accessibility help. |
src/vs/sessions/contrib/providers/remoteAgentHost/browser/remotesWidget.ts |
Dispatches actions and manages pending state and focus. |
src/vs/sessions/contrib/providers/remoteAgentHost/browser/remotesTable.ts |
Renders capability-dependent row actions. |
src/vs/sessions/contrib/providers/remoteAgentHost/browser/remotesModel.ts |
Implements management actions and tunnel inventory handling. |
src/vs/sessions/contrib/providers/remoteAgentHost/browser/remoteHostOptions.ts |
Shares deletion confirmation and server-upgrade helpers. |
src/vs/sessions/contrib/providers/remoteAgentHost/browser/remoteAgentHostActions.ts |
Reuses shared confirmation in the Tunnels picker. |
src/vs/platform/agentHost/common/wslRemoteAgentHost.ts |
Updates the WSL setup documentation URL. |
Review effort: Balanced
Comment on lines
+424
to
+425
| this.tunnelDiscoveryVersion++; | ||
| this.targets.delete(id); |
Comment on lines
301
to
+303
| if (template.column === 'actions' && template.actionLayout !== actionLayout) { | ||
| template.actionLayout = actionLayout; | ||
| template.toolbar.setActions(showConnection ? [template.action, template.rename, ...(showDelete ? [template.delete] : [])] : [ | ||
| template.toolbar.setActions(showConnection ? [ |
| const activeRow = dom.isHTMLElement(active) && this.domNode.contains(active) ? active.closest<HTMLElement>('[data-remote-id]') : undefined; | ||
| const index = this.rows.findIndex(row => row.id === id); | ||
| if (activeRow && activeRow.dataset.remoteId !== id && index >= 0) { | ||
| if (index >= 0 && (activeRow && activeRow.dataset.remoteId !== id |
Christof Marti (chrmarti)
approved these changes
Oct 26, 2026
This was referenced Oct 26, 2026
Christof Marti (chrmarti)
added a commit
that referenced
this pull request
Oct 26, 2026
<!-- Thank you for submitting a Pull Request. Please: * Read our Pull Request guidelines: https://github.com/microsoft/vscode/wiki/How-to-Contribute#pull-requests * Associate an issue with the Pull Request. * Ensure that the code is up-to-date with the `main` branch. * Include a description of the proposed changes and how to test them. --> ## Summary - Rename **Manage...** in the Environment picker to **Manage Remote Environments...**. - Align the setting description and chat/Remotes accessibility help with the new label. - Preserve the command, visibility gates, selected environment, and per-host Manage submenus. Rebased onto `origin/release/1.144` at `62620115296` to avoid the unrelated chat-move test regression introduced on main by #344057 (`13832cc4487`). The diff remains the same six-file label-only change. Follow-up to the release backports #344266 and #344313; related to #344263. ## Validation - `npm run build-fast -- --client-only` - passed after rebasing onto release/1.144. - Focused picker and accessibility tests on release/1.144 - **79 passing**: ```powershell .\scripts\test.bat --run src\vs\sessions\contrib\chat\test\browser\sessionEnvironmentPicker.test.ts --run src\vs\sessions\contrib\chat\test\browser\sessionsChatAccessibilityHelp.test.ts --reporter dot ``` - Release-diff ESLint and hygiene - **6 files passed**; whitespace check passed: ```powershell $files = @(git diff --name-only origin/release/1.144...HEAD -- '*.ts') npm run eslint -- $files node build\hygiene.ts $files git diff --check origin/release/1.144...HEAD ``` This is a string-only change; full type-check and smoke/integration suites were not run. ## Manual check Open the Environment picker, select **Manage Remote Environments...**, and verify Remotes management opens without changing the selected environment.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Cherry-pick of #344228 from
main.Summary
Bring the Remote Environments editor closer to the Environment picker's Manage action picker:
Created from freshly pulled
mainatff05b50d4ef; this is not stacked on the previous Remotes PR.Related functional test plan: #344161.
Remaining Manage-action parity gaps
These are reported, not implemented in this PR:
WebSocket hosts remain outside this editor and retain their existing Manage route.
Validation
Passed:
npm run gulp compile-client- initial client compilation and type-check, zero errors.npm run typecheck-client- final client type-check including confirmed tunnel deletion, passed.npm run build-fast -- --client-only- refreshed client output after the final test and fixture changes.git diff --checkpassed. Commands were run before committing:Automated validation did not delete real tunnels or perform a live server upgrade. Clipboard values, preference persistence, cancellation, missing-provider behavior, reconnect failures, duplicate actions, advertised upgrade methods, restart delays, stale capabilities, and error notifications are covered by tests. The maintainer exercised live upgrades and identified separate existing startup-timeout/duplicate-supervisor and reconnect-target issues; those are not fixed by this PR. Custom-hover display could not be verified in the isolated fixture; the actions use the existing shared toolbar hover delegate unchanged.
Manual checks