sessions: group the Session Activity Bar into side pane and panel groups #343313

Merged
sandy081 opened 2:18pm on October 21, 2026 wanted to merge 100 Δ into microsoft/vscode main from
agents/the-session-activity-bar-should-have-two-groups
Diff Delta:
100
About 282 Diff Delta/hour
Classified as:  General

sandy081's Description of Work

What changed

The Session Activity Bar now has two groups instead of three:

Toggle Side Panel · Changes · Files · Browser · Canvas ─── Terminal · Show/Hide Panel



  • SessionActivityBarGroup is reduced to SidePanel (1_sidePanel) and Panel (2_panel). The tab entries (Changes, Files, Browser, Canvas) moved into the side panel group, after its toggle.

  • New Terminal entry at the start of the panel group. It runs the existing workbench.action.terminal.focus command, which reveals the terminal in the panel and creates one when none exists. Like the tab entries, it shows whenever a terminal is available and does not depend on the "Show Layout Actions" setting, so with that setting off the second group shows only Terminal. It is disabled while a custom view is shown, matching the panel toggle.

  • The panel toggle now comes after Terminal.

  • The drag gripper gets the same hover and active feedback as the strip's actions. The 50% dimming moved from the handle to its icon so it no longer fades the hover background; the icon is fully opaque on hover, while dragging, and in high contrast themes.

Notes for reviewers


  • Component fixtures now include the Terminal entry and the new grouping, so the activity bar screenshot baselines will change.

How to test


  1. In the Agents window, with the Session Activity Bar and its layout actions enabled, check the strip shows: Toggle Side Panel, tab entries, separator, Terminal, Show/Hide Panel.

  2. Click Terminal: the panel opens with a terminal focused (one is created if none exists).

  3. Hover the gripper at the top of the strip: it shows the same hover background/outline as the action buttons.

Validation



  • npm run typecheck-client: passed


  • node build/hygiene.ts <changed files>: passed (also passed in the pre-commit hook)


  • npm run eslint -- <changed .ts files>: passed


  • ./scripts/test.sh --run src/vs/sessions/test/browser/sessionActivityBar.test.ts --run src/vs/sessions/test/browser/layoutActions.test.ts --run src/vs/sessions/contrib/layout/test/browser/baseSessionLayoutController.test.ts --run src/vs/sessions/contrib/editor/test/browser/editor.contribution.test.ts: 105 passing

  • Not run: screenshot fixtures and a live check of the UI.

11 total changed files
Loading changes...
Loading changes...
Loading changes...
Loading changes...
Loading changes...
Loading changes...
You are now leaving the Pull Request Diff Zone
The diff well is dry.