Agents workbench layout — covers the fixed layout structure, grid configuration, part visibility, editor modal, titlebar, sidebar footer, and implementation requirements. Use when implementing features or fixing issues in the Agents workbench layout.
When working on the Agents workbench layout, always follow these guidelines:
The authoritative specification for the Agents layout lives at:
src/vs/sessions/LAYOUT.md
Before making any changes to the layout code, read and understand the current spec. It defines:
If you modify the layout implementation, you must update LAYOUT.md to reflect those changes. The spec should always match the code. This includes:
Update the Revision History table at the bottom of LAYOUT.md with a dated entry describing what changed.
When proposing or implementing changes, follow these rules from the spec:
SidebarPart, AuxiliaryBarPart, PanelPart, ChatBarPart, ProjectBarPart), not the standard workbench partsworkbench.agentsession. or workbench.chatbar.) to avoid conflicts with regular workbench stateMenus.* menu IDs (from sessions/browser/menus.ts), not shared MenuId.* constants| File | Purpose |
|---|---|
sessions/LAYOUT.md | Authoritative layout specification |
sessions/browser/workbench.ts | Main layout implementation (Workbench class) |
sessions/browser/menus.ts | Agents menu IDs (Menus export) |
sessions/browser/layoutActions.ts | Layout actions (toggle sidebar, panel, secondary sidebar) |
sessions/browser/paneCompositePartService.ts | AgenticPaneCompositePartService |
sessions/browser/media/style.css | Layout-specific styles |
sessions/browser/parts/parts.ts | AgenticParts enum |
sessions/browser/parts/titlebarPart.ts | Titlebar part, MainTitlebarPart, AuxiliaryTitlebarPart, TitleService |
sessions/browser/parts/sidebarPart.ts | Sidebar part (with footer and macOS traffic light spacer) |
sessions/browser/parts/chatBarPart.ts | Chat Bar part |
sessions/browser/parts/auxiliaryBarPart.ts | Auxiliary Bar part (with run script dropdown) |
sessions/browser/parts/panelPart.ts | Panel part |
sessions/browser/parts/projectBarPart.ts | Project Bar part (folder entries, icon customization) |
sessions/contrib/configuration/browser/configuration.contribution.ts | Sets workbench.editor.useModal to 'all' for modal editor overlay |
sessions/contrib/sessions/browser/sessionsTitleBarWidget.ts | Title bar widget and agent picker |
sessions/contrib/chat/browser/runScriptAction.ts | Run script split button for titlebar |
sessions/contrib/accountMenu/browser/account.contribution.ts | Account widget for sidebar footer |
sessions/electron-browser/parts/titlebarPart.ts | Desktop (Electron) titlebar part |
After modifying layout code:
VS Code - Build taskModalEditorPart overlay and that it closes properly