Skip to content

move sessions management service to services layer#308189

Merged
sandy081 merged 1 commit intomainfrom
sandy081/decisive-asp
Apr 7, 2026
Merged

move sessions management service to services layer#308189
sandy081 merged 1 commit intomainfrom
sandy081/decisive-asp

Conversation

@sandy081
Copy link
Copy Markdown
Member

@sandy081 sandy081 commented Apr 7, 2026

No description provided.

Copilot AI review requested due to automatic review settings April 7, 2026 10:53
@sandy081 sandy081 enabled auto-merge (squash) April 7, 2026 10:53
@sandy081 sandy081 self-assigned this Apr 7, 2026
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 7, 2026

Screenshot Changes

Base: 9f457435 Current: f4b0e67e

Changed (2)

editor/inlineCompletions/WordReplacementView/Light
Before After
before after
editor/inlineCompletionsExtras/JumpToHint/Light
Before After
before after

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR refactors the Sessions “management” and “provider registry” APIs into the src/vs/sessions/services/ layer, updating consumers across vs/sessions/contrib/* (and a few workbench fixtures/tests) to import the new service-layer contracts and implementations.

Changes:

  • Introduces service-layer contracts for sessions management (sessionsManagement.ts) and consolidates core session types/constants into services/sessions/common/session.ts.
  • Adds a new SessionsProvidersService in services/sessions/browser/ and updates SessionsManagementService to subscribe directly to provider events.
  • Updates providers, UI contributions, and tests to use the new service-layer imports and the renamed workspace browse action API (run()).
Show a summary per file
File Description
src/vs/workbench/test/browser/componentFixtures/fixtureUtils.ts Update fixture imports to new sessions management service contract.
src/vs/sessions/sessions.common.main.ts Ensure new sessions management service implementation is loaded/registered.
src/vs/sessions/SESSIONS_PROVIDER.md Update documentation file reference for the common session interface.
src/vs/sessions/services/sessions/common/sessionsProvider.ts Move provider-facing types to services layer; rename browse action type usage.
src/vs/sessions/services/sessions/common/sessionsManagement.ts New service-layer contract for sessions management (interfaces/context key).
src/vs/sessions/services/sessions/common/session.ts Consolidate core session types + Copilot session type constants into services layer.
src/vs/sessions/services/sessions/browser/sessionsProvidersService.ts New providers registry service in the sessions services layer.
src/vs/sessions/services/sessions/browser/sessionsManagementService.ts Move/adjust management service implementation to use new providers registry and contracts.
src/vs/sessions/contrib/workspace/browser/workspaceFolderManagement.ts Update imports to service-layer sessions types/contracts.
src/vs/sessions/contrib/terminal/test/browser/sessionsTerminalContribution.test.ts Update test imports to service-layer sessions types/contracts.
src/vs/sessions/contrib/terminal/browser/sessionsTerminalContribution.ts Update imports for sessions mgmt and Copilot CLI session type constant.
src/vs/sessions/contrib/sessions/test/browser/sessionsList.test.ts Update test imports to service-layer sessions types.
src/vs/sessions/contrib/sessions/test/browser/aiCustomizationShortcutsWidget.fixture.ts Update fixture imports to service-layer sessions management contract.
src/vs/sessions/contrib/sessions/common/sessionsProvidersService.ts Remove old contrib-layer providers service (moved to services layer).
src/vs/sessions/contrib/sessions/common/sessionsProvider.ts Remove old contrib-layer provider contract (moved to services layer).
src/vs/sessions/contrib/sessions/browser/views/sessionsViewActions.ts Update view actions to import sessions mgmt/context key from services layer.
src/vs/sessions/contrib/sessions/browser/views/sessionsView.ts Update view to import session types + management service from services layer.
src/vs/sessions/contrib/sessions/browser/views/sessionsList.ts Update view to import Copilot CLI type + sessions mgmt/types from services layer.
src/vs/sessions/contrib/sessions/browser/sessionTypes.ts Remove old sessionTypes module (moved into services/sessions/common/session.ts).
src/vs/sessions/contrib/sessions/browser/sessionsTitleBarWidget.ts Update imports to use services-layer sessions management/providers services.
src/vs/sessions/contrib/sessions/browser/sessionsProvidersService.ts Remove old contrib-layer providers registry (moved to services layer).
src/vs/sessions/contrib/sessions/browser/sessionsActions.ts Update actions to use services-layer sessions management/types.
src/vs/sessions/contrib/sessions/browser/sessions.contribution.ts Stop registering sessions management singleton from contrib; now registered in services layer.
src/vs/sessions/contrib/sessions/browser/customizationsToolbar.contribution.ts Update imports to services-layer sessions management contract.
src/vs/sessions/contrib/remoteAgentHost/test/browser/remoteAgentHostSessionsProvider.test.ts Update test imports to services-layer session/provider types.
src/vs/sessions/contrib/remoteAgentHost/browser/remoteAgentHostSessionsProvider.ts Update provider to services-layer types; rename browse action method to run().
src/vs/sessions/contrib/remoteAgentHost/browser/remoteAgentHostActions.ts Update imports and browse action invocation (run()).
src/vs/sessions/contrib/remoteAgentHost/browser/remoteAgentHost.contribution.ts Update imports to services-layer providers/mgmt services.
src/vs/sessions/contrib/localAgentHost/test/browser/localAgentHostSessionsProvider.test.ts Update test imports to services-layer session/provider types.
src/vs/sessions/contrib/localAgentHost/browser/localAgentHostSessionsProvider.ts Update provider to services-layer types; rename browse action method to run().
src/vs/sessions/contrib/localAgentHost/browser/localAgentHost.contribution.ts Update imports to services-layer providers service.
src/vs/sessions/contrib/layout/browser/layoutController.ts Update imports to services-layer sessions management contract.
src/vs/sessions/contrib/github/test/browser/githubService.test.ts Update imports to services-layer session constants.
src/vs/sessions/contrib/github/browser/github.contribution.ts Update imports to services-layer sessions management contract.
src/vs/sessions/contrib/fileTreeView/browser/githubFileSystemProvider.ts Update imports to services-layer GITHUB_REMOTE_FILE_SCHEME.
src/vs/sessions/contrib/fileTreeView/browser/fileTreeView.contribution.ts Update imports to services-layer GITHUB_REMOTE_FILE_SCHEME.
src/vs/sessions/contrib/copilotChatSessions/test/browser/copilotChatSessionsProvider.test.ts Update test imports to services-layer provider/session workspace types.
src/vs/sessions/contrib/copilotChatSessions/browser/modePicker.ts Update imports to services-layer mgmt/providers services + session type constants.
src/vs/sessions/contrib/copilotChatSessions/browser/modelPicker.ts Update imports to services-layer mgmt/providers services.
src/vs/sessions/contrib/copilotChatSessions/browser/isolationPicker.ts Update imports to services-layer mgmt/providers services.
src/vs/sessions/contrib/copilotChatSessions/browser/copilotChatSessionsProvider.ts Update provider to services-layer session/provider types; rename browse actions to run().
src/vs/sessions/contrib/copilotChatSessions/browser/copilotChatSessionsActions.ts Update imports to services-layer mgmt/providers services + session type constants.
src/vs/sessions/contrib/copilotChatSessions/browser/copilotChatSessions.contribution.ts Update provider registration to use services-layer providers service.
src/vs/sessions/contrib/copilotChatSessions/browser/branchPicker.ts Update imports to services-layer mgmt/providers services.
src/vs/sessions/contrib/codeReview/test/browser/codeReviewService.test.ts Update test imports to services-layer sessions management/types.
src/vs/sessions/contrib/codeReview/browser/codeReviewService.ts Update imports to services-layer sessions management contract.
src/vs/sessions/contrib/codeReview/browser/codeReview.contributions.ts Update imports to services-layer sessions management + cloud session type.
src/vs/sessions/contrib/chat/test/browser/sessionWorkspacePicker.test.ts Update test to new providers service event shape and APIs.
src/vs/sessions/contrib/chat/test/browser/sessionsConfigurationService.test.ts Update test imports to services-layer sessions management/types.
src/vs/sessions/contrib/chat/browser/sessionWorkspacePicker.ts Update workspace picker to new browse action API (run()) and providers service API.
src/vs/sessions/contrib/chat/browser/sessionTypePicker.ts Update imports for sessions management + session type to services layer.
src/vs/sessions/contrib/chat/browser/sessionsConfigurationService.ts Update imports to services-layer session types.
src/vs/sessions/contrib/chat/browser/runScriptAction.ts Update imports to services-layer sessions management/types.
src/vs/sessions/contrib/chat/browser/newChatViewPane.ts Update imports to services-layer mgmt/providers services.
src/vs/sessions/contrib/chat/browser/newChatPermissionPicker.ts Update imports to services-layer mgmt/providers services.
src/vs/sessions/contrib/chat/browser/chat.contribution.ts Update imports to services-layer sessions management + Copilot CLI type.
src/vs/sessions/contrib/chat/browser/aiCustomizationWorkspaceService.ts Update imports to services-layer sessions management contract.
src/vs/sessions/contrib/changes/browser/checksViewModel.ts Update imports to services-layer sessions management contract.
src/vs/sessions/contrib/changes/browser/checksActions.ts Update imports to services-layer sessions management contract.
src/vs/sessions/contrib/changes/browser/changesViewRenderer.ts Update imports to services-layer sessions management + scheme constant.
src/vs/sessions/contrib/changes/browser/changesViewModel.ts Update imports to services-layer sessions management + cloud type constant.
src/vs/sessions/contrib/changes/browser/changesViewActions.ts Update imports to services-layer sessions management contract.
src/vs/sessions/contrib/changes/browser/changesView.ts Update imports to services-layer sessions management + session constants.
src/vs/sessions/contrib/changes/browser/changesTitleBarWidget.ts Update imports to services-layer sessions management contract.
src/vs/sessions/contrib/applyCommitsToParentRepo/browser/applyChangesToParentRepo.ts Update imports to services-layer sessions management contract.
src/vs/sessions/contrib/agentFeedback/browser/agentFeedbackService.ts Update imports to services-layer sessions management contract.
src/vs/sessions/contrib/agentFeedback/browser/agentFeedbackOverviewRulerContribution.ts Update imports to services-layer sessions management contract.
src/vs/sessions/contrib/agentFeedback/browser/agentFeedbackEditorWidgetContribution.ts Update imports to services-layer sessions management contract.
src/vs/sessions/contrib/agentFeedback/browser/agentFeedbackEditorUtils.ts Update imports to services-layer sessions management contract.
src/vs/sessions/contrib/agentFeedback/browser/agentFeedbackEditorOverlay.ts Update imports to services-layer sessions management contract.
src/vs/sessions/contrib/agentFeedback/browser/agentFeedbackEditorInputContribution.ts Update imports to services-layer sessions management contract.
src/vs/sessions/contrib/agentFeedback/browser/agentFeedbackEditorActions.ts Update imports to services-layer sessions management contract.
src/vs/sessions/contrib/agentFeedback/browser/agentFeedback.contribution.ts Update imports to services-layer sessions management contract.
src/vs/sessions/browser/parts/sessionCompositeBar.ts Update imports to depend on sessions/services rather than contrib/sessions.
eslint.config.js Extend import-layer allowlists to account for new vs/sessions/services/* layer.

Copilot's findings

Comments suppressed due to low confidence (1)

eslint.config.js:2142

  • In the src/vs/sessions/services/*/~ import allowlist, vs/workbench/contrib/*/~ is included unconditionally and again as a { when: 'test' } conditional. With the unconditional entry present, the conditional is ineffective and sessions/services code can import workbench/contrib in non-test code, which seems unintended (the comment suggests this should be test-only). Remove the unconditional entry or keep only the conditional rule (and ensure the intent matches layering constraints).
						'vs/workbench/~',
						'vs/workbench/services/*/~',
						'vs/sessions/~',
						'vs/sessions/services/*/~',
						'vs/workbench/contrib/*/~',
						{
							'when': 'test',
							'pattern': 'vs/workbench/contrib/*/~'
						}, // TODO@layers
  • Files reviewed: 75/75 changed files
  • Comments generated: 3

Comment thread src/vs/sessions/services/sessions/common/sessionsManagement.ts
Comment thread src/vs/sessions/SESSIONS_PROVIDER.md
@sandy081 sandy081 merged commit 77387b3 into main Apr 7, 2026
33 of 34 checks passed
@sandy081 sandy081 deleted the sandy081/decisive-asp branch April 7, 2026 12:58
@vs-code-engineering vs-code-engineering bot added this to the 1.116.0 milestone Apr 7, 2026
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.

3 participants