Repository navigation
sessions: Refine remote management labels and saved SSH cleanup - #344273
Merged
Christof Marti (chrmarti) merged 5 commits intoOct 26, 2026
Merged
Conversation
Use GitHub Environments, Dev Tunnels, and Status consistently in the pickers, Remotes table, and accessibility text. Place view actions before management actions and remove only the Remotes setting's Experimental badge, preserving its key and experiment control. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Contributor
Screenshot ChangesBase: Changed (24) |
Contributor
There was a problem hiding this comment.
🟢 Approval recommended
The changes are narrow and supported by matching regression tests, with only a nonblocking accessibility-help wording correction remaining.
1 open issue
What changed in this PR
This PR clarifies remote terminology in the Agents Window and reorganizes the Sessions overflow menu without changing remote connection behavior.
Changes:
- Rename remote groups to GitHub Environments and Dev Tunnels, and the connection column to Status, with corresponding accessibility and test updates.
- Place view actions before management actions in the Sessions overflow menu.
- Remove the Remotes management setting’s Experimental badge while preserving its key, default, gates, and experiment control.
| File | Description |
|---|---|
src/vs/sessions/contrib/sessions/test/browser/sessionsViewMenu.test.ts |
Verify view actions precede management actions. |
src/vs/sessions/contrib/sessions/browser/views/sessionsViewActions.ts |
Set the view-actions group order. |
src/vs/sessions/contrib/providers/remoteAgentHost/test/electron-browser/remotesEditor.test.ts |
Update management-group expectations. |
src/vs/sessions/contrib/providers/remoteAgentHost/test/browser/remotesWidget.test.ts |
Update labels, alphabetical ordering, and interaction assertions. |
src/vs/sessions/contrib/providers/remoteAgentHost/test/browser/remoteAgentHostActions.test.ts |
Verify renamed picker entries. |
src/vs/sessions/contrib/providers/remoteAgentHost/test/browser/missionControlAgentHostContribution.test.ts |
Verify the GitHub Environments picker label. |
src/vs/sessions/contrib/providers/remoteAgentHost/electron-browser/remotes.contribution.ts |
Reorder management actions and update accessibility help. |
src/vs/sessions/contrib/providers/remoteAgentHost/browser/remotesWidget.ts |
Update setup guidance, Status heading, and accessible labels. |
src/vs/sessions/contrib/providers/remoteAgentHost/browser/remotesTable.ts |
Rename remote settings actions. |
src/vs/sessions/contrib/providers/remoteAgentHost/browser/remotesModel.ts |
Rename remote group labels. |
src/vs/sessions/contrib/providers/remoteAgentHost/browser/remoteAgentHostActions.ts |
Rename environment and tunnel picker actions. |
src/vs/sessions/contrib/providers/remoteAgentHost/browser/missionControlAgentHostContribution.ts |
Rename the contributed environment menu entry. |
src/vs/sessions/contrib/chat/test/browser/sessionsChatAccessibilityHelp.test.ts |
Update accessibility-help expectations. |
src/vs/sessions/contrib/chat/test/browser/newSessionComposerLayout.test.ts |
Verify badge removal preserves experiment metadata. |
src/vs/sessions/contrib/chat/browser/sessionsChatAccessibilityHelp.ts |
Align discovery guidance with GitHub Environments naming. |
src/vs/sessions/contrib/chat/browser/chat.contribution.ts |
Reorder cleanup actions and remove the Experimental badge. |
Review effort: Balanced
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Use GitHub Environments, Dev Tunnels, WSL, and SSH order with existing availability gates. Verify table and accessible-view ordering against the registered picker menu. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Confirm and revalidate orphaned SSH removal without modifying SSH configuration or remote files. Reuse SSH teardown ordering and prevent stale discovery from restoring deleted entries. Fix the accessibility-help test's visible-editor typing that failed CI. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Christof Marti (chrmarti)
marked this pull request as ready for review
October 26, 2026 15:04
Christof Marti (chrmarti)
enabled auto-merge
October 26, 2026 15:04
Benjamin Christopher Simmonds (benibenj)
approved these changes
Oct 26, 2026
Christof Marti (chrmarti)
deleted the
chrmarti/remotes-labels-and-menus
branch
October 26, 2026 15:09
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
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/mainatd2e7f610b88, 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.git diff --checkpassed. Commands were run before committing, with a targeted recheck after the final test adjustment:After restoring the Experimental badge, the client build passed again, the focused schema test passed (1 passing), and hygiene passed for both affected files:
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:
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:
The failing CI job reported TS2322 for assigning
RemotesEditorwithout a known input toIVisibleEditorPane; 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