Repository navigation
sessions: Add inline remote management actions - #344228
Merged
Christof Marti (chrmarti) merged 5 commits intoOct 26, 2026
Merged
Conversation
Add Copy Address for all Remotes rows and reuse the existing Preferred Agent Location flow for tunnels. Keep copying available offline and during pending operations, with keyboard, accessibility, and fixture coverage. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Contributor
Screenshot ChangesBase: Changed (18)Added (1) |
Contributor
There was a problem hiding this comment.
🟢 Approval recommended
The scoped changes reuse established management behavior, include focused regression coverage, and have no identified blocking defects.
No open issues 🎉
What changed in this PR
Adds inline management actions to the Remote Environments editor, bringing it closer to the Environment picker’s Manage menu while reusing existing connection and preference behavior.
Changes:
- Adds Copy Address to all remote rows, including offline and busy rows.
- Adds Change Preferred Agent Location to tunnel rows, with busy-state guards and existing persistence and reconnect handling.
- Updates accessibility help, regression tests, and four-theme fixtures.
| File | Description |
|---|---|
src/vs/sessions/contrib/providers/remoteAgentHost/test/electron-browser/remotesEditor.test.ts |
Updates the test model for the new actions. |
src/vs/sessions/contrib/providers/remoteAgentHost/test/browser/remotesWidget.test.ts |
Tests action availability, keyboard navigation, focus, and failures. |
src/vs/sessions/contrib/providers/remoteAgentHost/test/browser/remotesWidget.fixture.ts |
Adds inline-action fixtures across four themes. |
src/vs/sessions/contrib/providers/remoteAgentHost/test/browser/remotesModel.test.ts |
Tests address copying, preference persistence, cancellation, and reconnect errors. |
src/vs/sessions/contrib/providers/remoteAgentHost/electron-browser/remotes.contribution.ts |
Documents the new actions in accessibility help. |
src/vs/sessions/contrib/providers/remoteAgentHost/browser/remotesWidget.ts |
Routes new actions and widens the action column. |
src/vs/sessions/contrib/providers/remoteAgentHost/browser/remotesTable.ts |
Adds toolbar actions, labels, and enablement rules. |
src/vs/sessions/contrib/providers/remoteAgentHost/browser/remotesModel.ts |
Implements copying and delegates preference changes to the existing helper. |
Review effort: Balanced
Expose server upgrades only for incompatible hosts advertising an update method, and reuse the existing upgrade flow. Extend agent location actions to SSH with stable preference keys and cover capability changes, duplicate requests, and keyboard focus. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Keep fresh discovery ahead of cached tunnel records and stale provider labels while preserving explicit local renames. Cover metadata precedence, rename reset, offline cache fallback, and canceled discovery. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Reuse the service-side tunnel deletion flow with a shared confirmation dialog. Guard hosted tunnels and stale confirmation state, invalidate in-flight discovery after deletion, and preserve keyboard focus and error recovery. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Christof Marti (chrmarti)
marked this pull request as ready for review
October 26, 2026 12:37
Christof Marti (chrmarti)
enabled auto-merge
October 26, 2026 12:37
Benjamin Christopher Simmonds (benibenj)
approved these changes
Oct 26, 2026
Contributor
|
This PR will be automatically cherry-picked to |
Christof Marti (chrmarti)
deleted the
chrmarti/remotes-inline-management-actions
branch
October 26, 2026 12:53
Christof Marti (chrmarti)
added a commit
that referenced
this pull request
Oct 26, 2026
Cherry-pick of #344228 from `main`. <!-- 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 Bring the Remote Environments editor closer to the Environment picker's Manage action picker: - Add inline **Copy Address** to every remote row, including offline and busy rows. Copy the connection address, not the display name, without connecting. - Add inline **Change Preferred Agent Location** to SSH and tunnel rows. Reuse the existing prompt, preference storage, reconnect, cancellation, and notification behavior. SSH preferences use the stable host identity rather than a forwarded port, including when no provider is currently available. Disable this action during an existing connection or management operation. - Add inline **Update Server** for incompatible hosts advertising an upgrade method. Reuse the existing progress, restart delay, reconnect, and notification flow; revalidate the capability on invocation, prevent duplicate requests, and restore keyboard focus when the action disappears. - Add inline **Delete** for supported tunnel rows, including discovered/offline tunnels. Share the confirmation dialog with the Tunnels picker and delete the service-side registration through the existing service, not the local Remove action. Protect the tunnel currently hosted by this application, revalidate after confirmation, retain rows on failure, and prevent stale discovery from restoring a deleted row. - Prefer fresh tunnel discovery metadata over cached records and stale provider labels in Remotes, while preserving explicit local display-name overrides. - Preserve keyboard navigation, focus restoration, and shared toolbar hover behavior; update accessibility help and add regression tests and four-theme action fixtures. Created from freshly pulled `main` at `ff05b50d4ef`; 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: - **Remove Remote** for removable non-environment hosts. This is distinct from the Environment and tunnel rows' service-side **Delete** operations. - Exact per-row **Open Settings / Open SSH Configuration** access. Section-level configuration actions cover much of this, but do not reproduce every host-specific route (notably WSL and explicit-credential SSH). 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. - The following Electron selection - **245 passing**: ```powershell .\scripts\test.bat --run src\vs\sessions\contrib\providers\remoteAgentHost\test\browser\remotesModel.test.ts --run src\vs\sessions\contrib\providers\remoteAgentHost\test\browser\remotesWidget.test.ts --run src\vs\sessions\contrib\providers\remoteAgentHost\test\browser\remoteHostOptions.test.ts --run src\vs\sessions\contrib\providers\remoteAgentHost\test\browser\remoteAgentHostActions.test.ts --run src\vs\sessions\contrib\providers\remoteAgentHost\test\electron-browser\remotesEditor.test.ts --run src\vs\sessions\contrib\providers\remoteAgentHost\test\electron-browser\tunnelAgentHostServiceImpl.test.ts --reporter dot ``` - Browser tests - **389 passing** across WebKit and Edge: ```powershell npm run test-browser-no-install -- --browser webkit --browser chromium-msedge --run src\vs\sessions\contrib\providers\remoteAgentHost\test\browser\remotesModel.test.ts --run src\vs\sessions\contrib\providers\remoteAgentHost\test\browser\remotesWidget.test.ts --run src\vs\sessions\contrib\providers\remoteAgentHost\test\browser\remoteHostOptions.test.ts --run src\vs\sessions\contrib\providers\remoteAgentHost\test\browser\remoteAgentHostActions.test.ts --reporter dot ``` - Changed-file ESLint and hygiene - **10 files passed**; `git diff --check` passed. Commands were run before committing: ```powershell $files = @(git diff --name-only -- '*.ts') npm run eslint -- $files node build\hygiene.ts $files git diff --check ``` - Component Explorer: all **64 Remotes fixtures** rendered and disposed without errors. Inspected the initial inline actions in all four themes and the final six-action layout in Dark and Light High Contrast. - Browser keyboard check reached all six tunnel actions and verified they fit without clipping. Tests verify confirmation/cancellation, duplicate protection, backend failure, post-confirmation state changes, stale discovery, and focus restoration after deletion. 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 - Open Remote Environments and copy an SSH, tunnel, WSL, and offline Environment address. - On SSH and tunnels, cancel Change Preferred Agent Location and confirm no preference or connection change. - Choose either preferred location and confirm it is saved and the host reconnects; verify a reconnect failure is reported without losing the preference. - Confirm Update Server appears only for incompatible hosts advertising an upgrade method; verify progress, restart/reconnect, and failures on a suitable test host. - Cancel Delete on a test tunnel and confirm it remains; confirm deletion and verify its service-side registration and local row are removed. - Confirm a tunnel hosted by this application cannot be deleted until hosting stops. - Reach the new actions using the keyboard; confirm Copy Address remains available during a pending connection or update.
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 Environments to **GitHub Environments** and Tunnels to **Dev Tunnels** in the Environment picker and Remotes management. - Rename the Remotes connection column to **Status**, including its accessible labels and help. - Put **Compact View / Collapse All Groups** before **Manage Remote Environments / Open Worktree Cleanup** in the Sessions overflow menu, preserving the order within each group. - Keep the Remotes management setting's **Experimental badge**, existing key, default, gates, experiment control, and trigger events unchanged. - Update setup guidance, settings-action labels, accessibility help, and regression tests to match. - Offer confirmed **Delete** only for saved SSH connections absent from SSH config, including disconnected entries with no active provider. Recheck config before and after confirmation, forget the saved connection, and disconnect without editing SSH config or remote files. - Fix the CI compiler error in the accessibility-help test by opening an input and narrowing the active editor to the visible-editor contract. Remotes uses the same section order as the Environment picker's connection entries: **GitHub Environments, Dev Tunnels, WSL, SSH**, omitting unavailable sections. A regression test compares the sections against the actual registered picker menu. Created from freshly fetched `origin/main` at `d2e7f610b88`, not stacked on the previous branch. Follow-up to #344228; related to #344263. ## Validation - `npm run build-fast -- --client-only` - passed. - `npm run typecheck-client` - passed. - Focused Electron tests - **249 passing**: ```powershell .\scripts\test.bat --run src\vs\sessions\contrib\providers\remoteAgentHost\test\browser\remotesWidget.test.ts --run src\vs\sessions\contrib\providers\remoteAgentHost\test\browser\remoteAgentHostActions.test.ts --run src\vs\sessions\contrib\providers\remoteAgentHost\test\browser\missionControlAgentHostContribution.test.ts --run src\vs\sessions\contrib\providers\remoteAgentHost\test\electron-browser\remotesEditor.test.ts --run src\vs\sessions\contrib\sessions\test\browser\sessionsViewMenu.test.ts --run src\vs\sessions\contrib\chat\test\browser\newSessionComposerLayout.test.ts --run src\vs\sessions\contrib\chat\test\browser\sessionsChatAccessibilityHelp.test.ts --run src\vs\sessions\contrib\chat\test\browser\sessionEnvironmentPicker.test.ts --reporter dot ``` - Browser tests - **408 passing** across WebKit and Edge: ```powershell npm run test-browser-no-install -- --browser webkit --browser chromium-msedge --run src\vs\sessions\contrib\providers\remoteAgentHost\test\browser\remotesWidget.test.ts --run src\vs\sessions\contrib\providers\remoteAgentHost\test\browser\remoteAgentHostActions.test.ts --run src\vs\sessions\contrib\sessions\test\browser\sessionsViewMenu.test.ts --run src\vs\sessions\contrib\chat\test\browser\newSessionComposerLayout.test.ts --run src\vs\sessions\contrib\chat\test\browser\sessionsChatAccessibilityHelp.test.ts --run src\vs\sessions\contrib\chat\test\browser\sessionEnvironmentPicker.test.ts --reporter dot ``` - Changed-file lint and hygiene - **16 files passed**; `git diff --check` passed. Commands were run before committing, with a targeted recheck after the final test adjustment: ```powershell $files = @(git diff --name-only -- '*.ts') npm run eslint -- $files node build\hygiene.ts $files git diff --check npm run eslint -- src\vs\sessions\contrib\providers\remoteAgentHost\test\browser\remotesWidget.test.ts node build\hygiene.ts src\vs\sessions\contrib\providers\remoteAgentHost\test\browser\remotesWidget.test.ts ``` - Component Explorer - **64 Remotes fixtures** rendered and disposed without errors; inspected the renamed sections and Status column in Dark and Light High Contrast. After restoring the Experimental badge, the client build passed again, the focused schema test passed (**1 passing**), and hygiene passed for both affected files: ```powershell npm run build-fast -- --client-only .\scripts\test.bat --run src\vs\sessions\contrib\chat\test\browser\newSessionComposerLayout.test.ts --grep 'Manage Remotes is' --reporter dot node build\hygiene.ts src\vs\sessions\contrib\chat\browser\chat.contribution.ts src\vs\sessions\contrib\chat\test\browser\newSessionComposerLayout.test.ts ``` The accessibility review fix passed all **10 Remotes editor tests** and changed-file ESLint. Final section-order validation passed **162 Electron tests**, **166 browser tests**, lint/hygiene for all three changed files, and a refreshed Dark fixture inspection: ```powershell .\scripts\test.bat --run src\vs\sessions\contrib\providers\remoteAgentHost\test\electron-browser\remotesEditor.test.ts --reporter dot npm run build-fast -- --client-only .\scripts\test.bat --run src\vs\sessions\contrib\providers\remoteAgentHost\test\browser\remotesWidget.test.ts --run src\vs\sessions\contrib\providers\remoteAgentHost\test\browser\remoteAgentHostActions.test.ts --run src\vs\sessions\contrib\providers\remoteAgentHost\test\browser\remotesModel.test.ts --reporter dot npm run test-browser-no-install -- --browser webkit --browser chromium-msedge --run src\vs\sessions\contrib\providers\remoteAgentHost\test\browser\remotesWidget.test.ts --run src\vs\sessions\contrib\providers\remoteAgentHost\test\browser\remoteAgentHostActions.test.ts --reporter dot npm run eslint -- src\vs\sessions\contrib\providers\remoteAgentHost\browser\remotesModel.ts src\vs\sessions\contrib\providers\remoteAgentHost\test\browser\remotesWidget.test.ts src\vs\sessions\contrib\providers\remoteAgentHost\test\browser\remoteAgentHostActions.test.ts node build\hygiene.ts src\vs\sessions\contrib\providers\remoteAgentHost\browser\remotesModel.ts src\vs\sessions\contrib\providers\remoteAgentHost\test\browser\remotesWidget.test.ts src\vs\sessions\contrib\providers\remoteAgentHost\test\browser\remoteAgentHostActions.test.ts ``` SSH cleanup and CI-fix validation passed **215 Electron tests**, **337 browser tests**, the client type-check, lint/hygiene for 11 changed files, and all **64 Remotes fixtures**. Tests cover configured/unknown hosts, confirmation cancellation, config changes during confirmation, stale discovery, forwarded SSH addresses, and shared teardown ordering: ```powershell npm run build-fast -- --client-only npm run typecheck-client .\scripts\test.bat --run src\vs\sessions\contrib\providers\remoteAgentHost\test\browser\remotesModel.test.ts --run src\vs\sessions\contrib\providers\remoteAgentHost\test\browser\remotesWidget.test.ts --run src\vs\sessions\contrib\providers\remoteAgentHost\test\browser\remoteHostOptions.test.ts --run src\vs\sessions\contrib\providers\remoteAgentHost\test\browser\sshAgentHost.contribution.test.ts --run src\vs\sessions\contrib\providers\remoteAgentHost\test\electron-browser\remotesEditor.test.ts --reporter dot npm run test-browser-no-install -- --browser webkit --browser chromium-msedge --run src\vs\sessions\contrib\providers\remoteAgentHost\test\browser\remotesModel.test.ts --run src\vs\sessions\contrib\providers\remoteAgentHost\test\browser\remotesWidget.test.ts --run src\vs\sessions\contrib\providers\remoteAgentHost\test\browser\sshAgentHost.contribution.test.ts --reporter dot $files = @(git diff --name-only -- '*.ts') npm run eslint -- $files node build\hygiene.ts $files git diff --check ``` The failing CI job reported TS2322 for assigning `RemotesEditor` without a known input to `IVisibleEditorPane`; the corrected test now sets the input and verifies it rather than casting away the mismatch. No live remote connections or destructive operations were performed. Full smoke/integration suites were not run locally. ## Manual checks - Open the Environment picker and verify GitHub Environments and Dev Tunnels. - Open Remotes and verify the section order matches the picker, along with the Status column, setup links, and accessibility help. - Open the Sessions overflow menu and verify the view-actions group comes before management. - Find the Remotes management setting and verify its Experimental badge and existing saved values remain unchanged. - Verify configured SSH hosts have no Delete action, while previously saved hosts removed from SSH config offer Delete after successful discovery. - Cancel SSH Delete and verify the saved host remains; confirm it and verify the saved entry disappears without changing SSH config or remote files.
Christof Marti (chrmarti)
added a commit
that referenced
this pull request
Oct 26, 2026
… cleanup (#344313) Cherry-pick of #344273 from `main`. <!-- 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 Environments to **GitHub Environments** and Tunnels to **Dev Tunnels** in the Environment picker and Remotes management. - Rename the Remotes connection column to **Status**, including its accessible labels and help. - Put **Compact View / Collapse All Groups** before **Manage Remote Environments / Open Worktree Cleanup** in the Sessions overflow menu, preserving the order within each group. - Keep the Remotes management setting's **Experimental badge**, existing key, default, gates, experiment control, and trigger events unchanged. - Update setup guidance, settings-action labels, accessibility help, and regression tests to match. - Offer confirmed **Delete** only for saved SSH connections absent from SSH config, including disconnected entries with no active provider. Recheck config before and after confirmation, forget the saved connection, and disconnect without editing SSH config or remote files. - Fix the CI compiler error in the accessibility-help test by opening an input and narrowing the active editor to the visible-editor contract. Remotes uses the same section order as the Environment picker's connection entries: **GitHub Environments, Dev Tunnels, WSL, SSH**, omitting unavailable sections. A regression test compares the sections against the actual registered picker menu. Created from freshly fetched `origin/main` at `d2e7f610b88`, not stacked on the previous branch. Follow-up to #344228; related to #344263. ## Validation - `npm run build-fast -- --client-only` - passed. - `npm run typecheck-client` - passed. - Focused Electron tests - **249 passing**: ```powershell .\scripts\test.bat --run src\vs\sessions\contrib\providers\remoteAgentHost\test\browser\remotesWidget.test.ts --run src\vs\sessions\contrib\providers\remoteAgentHost\test\browser\remoteAgentHostActions.test.ts --run src\vs\sessions\contrib\providers\remoteAgentHost\test\browser\missionControlAgentHostContribution.test.ts --run src\vs\sessions\contrib\providers\remoteAgentHost\test\electron-browser\remotesEditor.test.ts --run src\vs\sessions\contrib\sessions\test\browser\sessionsViewMenu.test.ts --run src\vs\sessions\contrib\chat\test\browser\newSessionComposerLayout.test.ts --run src\vs\sessions\contrib\chat\test\browser\sessionsChatAccessibilityHelp.test.ts --run src\vs\sessions\contrib\chat\test\browser\sessionEnvironmentPicker.test.ts --reporter dot ``` - Browser tests - **408 passing** across WebKit and Edge: ```powershell npm run test-browser-no-install -- --browser webkit --browser chromium-msedge --run src\vs\sessions\contrib\providers\remoteAgentHost\test\browser\remotesWidget.test.ts --run src\vs\sessions\contrib\providers\remoteAgentHost\test\browser\remoteAgentHostActions.test.ts --run src\vs\sessions\contrib\sessions\test\browser\sessionsViewMenu.test.ts --run src\vs\sessions\contrib\chat\test\browser\newSessionComposerLayout.test.ts --run src\vs\sessions\contrib\chat\test\browser\sessionsChatAccessibilityHelp.test.ts --run src\vs\sessions\contrib\chat\test\browser\sessionEnvironmentPicker.test.ts --reporter dot ``` - Changed-file lint and hygiene - **16 files passed**; `git diff --check` passed. Commands were run before committing, with a targeted recheck after the final test adjustment: ```powershell $files = @(git diff --name-only -- '*.ts') npm run eslint -- $files node build\hygiene.ts $files git diff --check npm run eslint -- src\vs\sessions\contrib\providers\remoteAgentHost\test\browser\remotesWidget.test.ts node build\hygiene.ts src\vs\sessions\contrib\providers\remoteAgentHost\test\browser\remotesWidget.test.ts ``` - Component Explorer - **64 Remotes fixtures** rendered and disposed without errors; inspected the renamed sections and Status column in Dark and Light High Contrast. After restoring the Experimental badge, the client build passed again, the focused schema test passed (**1 passing**), and hygiene passed for both affected files: ```powershell npm run build-fast -- --client-only .\scripts\test.bat --run src\vs\sessions\contrib\chat\test\browser\newSessionComposerLayout.test.ts --grep 'Manage Remotes is' --reporter dot node build\hygiene.ts src\vs\sessions\contrib\chat\browser\chat.contribution.ts src\vs\sessions\contrib\chat\test\browser\newSessionComposerLayout.test.ts ``` The accessibility review fix passed all **10 Remotes editor tests** and changed-file ESLint. Final section-order validation passed **162 Electron tests**, **166 browser tests**, lint/hygiene for all three changed files, and a refreshed Dark fixture inspection: ```powershell .\scripts\test.bat --run src\vs\sessions\contrib\providers\remoteAgentHost\test\electron-browser\remotesEditor.test.ts --reporter dot npm run build-fast -- --client-only .\scripts\test.bat --run src\vs\sessions\contrib\providers\remoteAgentHost\test\browser\remotesWidget.test.ts --run src\vs\sessions\contrib\providers\remoteAgentHost\test\browser\remoteAgentHostActions.test.ts --run src\vs\sessions\contrib\providers\remoteAgentHost\test\browser\remotesModel.test.ts --reporter dot npm run test-browser-no-install -- --browser webkit --browser chromium-msedge --run src\vs\sessions\contrib\providers\remoteAgentHost\test\browser\remotesWidget.test.ts --run src\vs\sessions\contrib\providers\remoteAgentHost\test\browser\remoteAgentHostActions.test.ts --reporter dot npm run eslint -- src\vs\sessions\contrib\providers\remoteAgentHost\browser\remotesModel.ts src\vs\sessions\contrib\providers\remoteAgentHost\test\browser\remotesWidget.test.ts src\vs\sessions\contrib\providers\remoteAgentHost\test\browser\remoteAgentHostActions.test.ts node build\hygiene.ts src\vs\sessions\contrib\providers\remoteAgentHost\browser\remotesModel.ts src\vs\sessions\contrib\providers\remoteAgentHost\test\browser\remotesWidget.test.ts src\vs\sessions\contrib\providers\remoteAgentHost\test\browser\remoteAgentHostActions.test.ts ``` SSH cleanup and CI-fix validation passed **215 Electron tests**, **337 browser tests**, the client type-check, lint/hygiene for 11 changed files, and all **64 Remotes fixtures**. Tests cover configured/unknown hosts, confirmation cancellation, config changes during confirmation, stale discovery, forwarded SSH addresses, and shared teardown ordering: ```powershell npm run build-fast -- --client-only npm run typecheck-client .\scripts\test.bat --run src\vs\sessions\contrib\providers\remoteAgentHost\test\browser\remotesModel.test.ts --run src\vs\sessions\contrib\providers\remoteAgentHost\test\browser\remotesWidget.test.ts --run src\vs\sessions\contrib\providers\remoteAgentHost\test\browser\remoteHostOptions.test.ts --run src\vs\sessions\contrib\providers\remoteAgentHost\test\browser\sshAgentHost.contribution.test.ts --run src\vs\sessions\contrib\providers\remoteAgentHost\test\electron-browser\remotesEditor.test.ts --reporter dot npm run test-browser-no-install -- --browser webkit --browser chromium-msedge --run src\vs\sessions\contrib\providers\remoteAgentHost\test\browser\remotesModel.test.ts --run src\vs\sessions\contrib\providers\remoteAgentHost\test\browser\remotesWidget.test.ts --run src\vs\sessions\contrib\providers\remoteAgentHost\test\browser\sshAgentHost.contribution.test.ts --reporter dot $files = @(git diff --name-only -- '*.ts') npm run eslint -- $files node build\hygiene.ts $files git diff --check ``` The failing CI job reported TS2322 for assigning `RemotesEditor` without a known input to `IVisibleEditorPane`; the corrected test now sets the input and verifies it rather than casting away the mismatch. No live remote connections or destructive operations were performed. Full smoke/integration suites were not run locally. ## Manual checks - Open the Environment picker and verify GitHub Environments and Dev Tunnels. - Open Remotes and verify the section order matches the picker, along with the Status column, setup links, and accessibility help. - Open the Sessions overflow menu and verify the view-actions group comes before management. - Find the Remotes management setting and verify its Experimental badge and existing saved values remain unchanged. - Verify configured SSH hosts have no Delete action, while previously saved hosts removed from SSH config offer Delete after successful discovery. - Cancel SSH Delete and verify the saved host remains; confirm it and verify the saved entry disappears without changing SSH config or remote files.
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.
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