sessions: stabilize single pane lifecycle behavior - #330573
Merged
Sandeep Somavarapu (sandy081) merged 5 commits intoAug 13, 2026
Merged
sessions: stabilize single pane lifecycle behavior#330573Sandeep Somavarapu (sandy081) merged 5 commits into
Sandeep Somavarapu (sandy081) merged 5 commits into
Conversation
Consolidate single-pane behavior into New, Existing, and Quick Chat strategies while keeping shared tab and detail mechanics in coordinators. Preserve New Session editor visibility through isolated entry, toggle, and close transitions. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Separate lifecycle visibility policy from shared detail content mechanics, preserve Existing session layouts, and avoid close/open and sizing flicker during session navigation. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Contributor
📬 CODENOTIFYThe following users are being notified based on files changed in this PR: Benjamin Christopher Simmonds (@benibenj)Matched files:
|
Contributor
Screenshot ChangesBase: Changed (12) |
Copilot started reviewing on behalf of
Sandeep Somavarapu (sandy081)
August 13, 2026 00:04
View session
roblourens
previously approved these changes
Aug 13, 2026
Contributor
There was a problem hiding this comment.
Pull request overview
Refactors the Agents window’s single-pane lifecycle into explicit New, Existing, and Quick Chat strategies.
Changes:
- Consolidates tab, detail-panel, and visibility coordination.
- Preserves side-pane sizing and session-specific Changes tabs.
- Updates actions, availability rules, documentation, and tests.
Show a summary per file
| File | Description |
|---|---|
.github/skills/sessions/SKILL.md |
Updates single-pane guidance. |
src/vs/workbench/browser/parts/editor/multiEditorTabsControl.ts |
Configures toolbar separators. |
src/vs/workbench/browser/parts/editor/editorTabsControl.ts |
Supports editor-action trailing separators. |
src/vs/sessions/test/browser/workbench.test.ts |
Tests side-pane hiding lifecycle. |
src/vs/sessions/test/browser/layoutActions.test.ts |
Tests hidden editor actions. |
src/vs/sessions/SINGLE_PANE_SCENARIOS.md |
Revises lifecycle scenarios. |
src/vs/sessions/LAYOUT.md |
Documents updated layout behavior. |
src/vs/sessions/LAYOUT_CONTROLLER.md |
Documents strategy ownership. |
src/vs/sessions/contrib/layout/test/browser/singlePaneStrategies.test.ts |
Tests lifecycle strategies. |
src/vs/sessions/contrib/layout/test/browser/layoutControllerTestUtils.ts |
Expands lifecycle test harness. |
src/vs/sessions/contrib/layout/browser/singlePaneLayoutController.ts |
Composes the new strategies. |
src/vs/sessions/contrib/layout/browser/singlePane/singlePaneVisibilityProfileStore.ts |
Persists Existing-session visibility. |
src/vs/sessions/contrib/layout/browser/singlePane/singlePaneSidePaneVisibilityStrategy.ts |
Removes legacy visibility strategy. |
src/vs/sessions/contrib/layout/browser/singlePane/singlePaneSharedHelpers.ts |
Adds shared editor classifiers. |
src/vs/sessions/contrib/layout/browser/singlePane/singlePaneQuickChatStrategy.ts |
Implements Quick Chat policy. |
src/vs/sessions/contrib/layout/browser/singlePane/singlePaneNewSessionStrategy.ts |
Implements New Session policy. |
src/vs/sessions/contrib/layout/browser/singlePane/singlePaneLayoutStrategy.ts |
Defines strategy boundaries. |
src/vs/sessions/contrib/layout/browser/singlePane/singlePaneExistingSessionStrategy.ts |
Implements Existing Session policy. |
src/vs/sessions/contrib/layout/browser/singlePane/singlePaneEditorAreaCollapseStrategy.ts |
Removes standalone collapse strategy. |
src/vs/sessions/contrib/layout/browser/singlePane/singlePaneDockedTabsCoordinator.ts |
Coordinates managed tabs and collapse. |
src/vs/sessions/contrib/layout/browser/singlePane/singlePaneDetailsStrategy.ts |
Removes standalone details strategy. |
src/vs/sessions/contrib/layout/browser/singlePane/singlePaneDetailPanelStrategy.ts |
Removes legacy detail strategy. |
src/vs/sessions/contrib/layout/browser/singlePane/singlePaneDetailPanelCoordinator.ts |
Coordinates detail content. |
src/vs/sessions/contrib/layout/browser/desktopSessionLayoutController.ts |
Avoids classic cleanup in single-pane. |
src/vs/sessions/contrib/layout/browser/baseSessionLayoutController.md |
Updates controller documentation. |
src/vs/sessions/contrib/editor/test/browser/editor.contribution.test.ts |
Tests dock-only Add Tab behavior. |
src/vs/sessions/contrib/editor/browser/media/editorHeader.css |
Adjusts header spacing. |
src/vs/sessions/contrib/editor/browser/editor.contribution.ts |
Hides editor actions declaratively. |
src/vs/sessions/contrib/editor/browser/addTabActions.ts |
Enables Add Tab in dock-only mode. |
src/vs/sessions/contrib/changes/test/browser/changesViewActions.test.ts |
Tests Changes availability. |
src/vs/sessions/contrib/changes/browser/changes.contribution.ts |
Gates Changes until creation. |
src/vs/sessions/browser/workbench.ts |
Adds semantic side-pane hiding APIs. |
src/vs/sessions/browser/singlePaneWorkbench.ts |
Delegates empty-group policy. |
Review details
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Suppressed comments (1)
.github/skills/sessions/SKILL.md:367
- This says entering Quick Chat never hides Editor, which conflicts with
SinglePaneQuickChatStrategy.hideSidePane()and this file's entry-transition guidance. Describe the ordered whole-pane hide instead; that is specifically what preserves correct width capture.
- **Quick Chat must not participate in side-pane width capture**: entering Quick Chat never hides Editor, so it must not run an ordered Editor/Details hide sequence or create a docked-size memento. Hiding unsupported Details content may transition Details-only to Editor-only through normal workbench layout behavior, while the global side-pane width remains workbench-owned.
- Files reviewed: 34/34 changed files
- Comments generated: 4
- Review effort level: Balanced
Replace session-specific Changes inputs in place while retaining generation safety and restoring default Files tabs for the incoming session. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Handle detail sync failures, gate Changes tab actions to created sessions, and align Quick Chat documentation with its entry policy. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Dmitriy Vasyura (dmitrivMS)
left a comment
Collaborator
There was a problem hiding this comment.
AI Review: The council found two lifecycle issues worth addressing before merge. Details are attached inline.
Dmitriy Vasyura (dmitrivMS)
left a comment
Collaborator
There was a problem hiding this comment.
AI Review: One concrete cleanup nit from the council review is attached inline.
Dmitriy Vasyura (dmitrivMS)
approved these changes
Aug 13, 2026
Benjamin Christopher Simmonds (benibenj)
approved these changes
Aug 13, 2026
Sandeep Somavarapu (sandy081)
deleted the
sandy081/agents/hide-show-hide-editor-action-148c546d
branch
August 13, 2026 07:02
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
Validation
npm run compilenpm run hygienenpm run typecheck-clientnpm run valid-layers-check