Skip to content

sessions: stabilize single pane lifecycle behavior - #330573

Merged
Sandeep Somavarapu (sandy081) merged 5 commits into
mainfrom
sandy081/agents/hide-show-hide-editor-action-148c546d
Aug 13, 2026
Merged

sessions: stabilize single pane lifecycle behavior#330573
Sandeep Somavarapu (sandy081) merged 5 commits into
mainfrom
sandy081/agents/hide-show-hide-editor-action-148c546d

Conversation

@sandy081

Copy link
Copy Markdown
Member

Summary

  • split New, Existing, and Quick Chat single-pane lifecycle behavior into explicit, isolated policies
  • keep shared detail coordination limited to Changes/Files content while lifecycle strategies own visibility
  • preserve Existing Editor/Details state and replace session-specific Changes tabs in place to avoid navigation flicker
  • keep side-pane sizing stable by routing whole-pane hides through the workbench toggle lifecycle
  • hide single-pane Editor actions without unregistering them and keep Changes unavailable for uncreated sessions

Validation

  • npm run compile
  • npm run hygiene
  • npm run typecheck-client
  • npm run valid-layers-check
  • focused and affected single-pane/workbench unit tests

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>
Copilot AI balanced review requested due to automatic review settings August 12, 2026 23:52
@sandy081 Sandeep Somavarapu (sandy081) added this to the 1.134.0 milestone Aug 12, 2026
@vs-code-engineering

Copy link
Copy Markdown
Contributor

📬 CODENOTIFY

The following users are being notified based on files changed in this PR:

Benjamin Christopher Simmonds (@benibenj)

Matched files:

  • src/vs/sessions/browser/workbench.ts
  • src/vs/sessions/contrib/layout/browser/baseSessionLayoutController.md
  • src/vs/sessions/contrib/layout/browser/desktopSessionLayoutController.ts
  • src/vs/sessions/contrib/layout/browser/singlePane/singlePaneDetailPanelCoordinator.ts
  • src/vs/sessions/contrib/layout/browser/singlePane/singlePaneDetailPanelStrategy.ts
  • src/vs/sessions/contrib/layout/browser/singlePane/singlePaneDetailsStrategy.ts
  • src/vs/sessions/contrib/layout/browser/singlePane/singlePaneDockedTabsCoordinator.ts
  • src/vs/sessions/contrib/layout/browser/singlePane/singlePaneEditorAreaCollapseStrategy.ts
  • src/vs/sessions/contrib/layout/browser/singlePane/singlePaneExistingSessionStrategy.ts
  • src/vs/sessions/contrib/layout/browser/singlePane/singlePaneLayoutStrategy.ts
  • src/vs/sessions/contrib/layout/browser/singlePane/singlePaneNewSessionStrategy.ts
  • src/vs/sessions/contrib/layout/browser/singlePane/singlePaneQuickChatStrategy.ts
  • src/vs/sessions/contrib/layout/browser/singlePane/singlePaneSharedHelpers.ts
  • src/vs/sessions/contrib/layout/browser/singlePane/singlePaneSidePaneVisibilityStrategy.ts
  • src/vs/sessions/contrib/layout/browser/singlePane/singlePaneVisibilityProfileStore.ts
  • src/vs/sessions/contrib/layout/browser/singlePaneLayoutController.ts
  • src/vs/sessions/contrib/layout/test/browser/desktopSessionLayoutController.test.ts
  • src/vs/sessions/contrib/layout/test/browser/layoutControllerTestUtils.ts
  • src/vs/sessions/contrib/layout/test/browser/singlePaneStrategies.test.ts
  • src/vs/workbench/browser/parts/editor/editorTabsControl.ts
  • src/vs/workbench/browser/parts/editor/multiEditorTabsControl.ts

@github-actions

github-actions Bot commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

Screenshot Changes

Base: c5f5985a Current: dbb8d26d

Changed (12)

sessions/editorHeader/editorHeader/FullHeader/Dark
Before After
before after
sessions/editorHeader/editorHeader/FullHeader/Light
Before After
before after
sessions/editorHeader/editorHeader/BreadcrumbsAndAction/Dark
Before After
before after
sessions/editorHeader/editorHeader/BreadcrumbsAndAction/Light
Before After
before after
sessions/editorHeader/editorHeader/BreadcrumbsAndSecondaryAction/Dark
Before After
before after
sessions/editorHeader/editorHeader/BreadcrumbsAndSecondaryAction/Light
Before After
before after
sessions/editorHeader/editorHeader/SecondaryActionOnly/Dark
Before After
before after
sessions/editorHeader/editorHeader/SecondaryActionOnly/Light
Before After
before after
sessions/editorHeader/editorHeader/LayoutActionsOnly/Dark
Before After
before after
sessions/editorHeader/editorHeader/LayoutActionsOnly/Light
Before After
before after
sessions/editorHeader/editorHeader/SingleTabFullHeader/Dark
Before After
before after
sessions/editorHeader/editorHeader/SingleTabFullHeader/Light
Before After
before after

roblourens
roblourens previously approved these changes Aug 13, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

Comment thread src/vs/sessions/contrib/changes/browser/changes.contribution.ts
Comment thread src/vs/sessions/LAYOUT_CONTROLLER.md Outdated
Comment thread .github/skills/sessions/SKILL.md Outdated
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>

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

AI Review: The council found two lifecycle issues worth addressing before merge. Details are attached inline.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

AI Review: One concrete cleanup nit from the council review is attached inline.

@sandy081
Sandeep Somavarapu (sandy081) merged commit f45fb53 into main Aug 13, 2026
27 checks passed
@sandy081
Sandeep Somavarapu (sandy081) deleted the sandy081/agents/hide-show-hide-editor-action-148c546d branch August 13, 2026 07:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants