Skip to content

merge to main#299794

Merged
sandy081 merged 22 commits intomainfrom
sandy081/layout-exploration
Mar 6, 2026
Merged

merge to main#299794
sandy081 merged 22 commits intomainfrom
sandy081/layout-exploration

Conversation

@sandy081
Copy link
Copy Markdown
Member

@sandy081 sandy081 commented Mar 6, 2026

No description provided.

bpasero and others added 22 commits March 5, 2026 15:35
style - set width to 100% for `interactive-input-part`
* modal - surface some editor actions in a new toolbar

* ccr
#299636)

sessions customizations: make it easier to scan mcp/plugin marketplace list
* sessions: add built-in prompt files with override support

Ship bundled .prompt.md files with the Sessions app that appear as
slash commands out of the box. Built-in prompts use a BUILTIN_STORAGE
constant (cast as PromptsStorage) defined in the aiCustomization layer,
avoiding changes to the core PromptsStorage enum and prompt service types.

- AgenticPromptsService discovers prompts from vs/sessions/prompts/
  at runtime via FileAccess and injects them into the listing pipeline
- Override logic: user/workspace prompts with matching names take
  precedence over built-in ones
- Built-in prompts open as read-only in the management editor
- Sessions tree view, workspace service, and counts handle BUILTIN_STORAGE
- Add /create-pr as the first built-in prompt
- Bundle prompt files via gulpfile resource includes

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Update src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* sessions: use AICustomizationPromptsStorage type for builtin storage

Adopt the new AICustomizationPromptsStorage union type in the sessions
tree view method signature. Use string-keyed Records and targeted casts
at the PromptsStorage boundary to stay type-safe.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* sessions: remove PromptsStorage casts, widen IStorageSourceFilter

Use AICustomizationPromptsStorage in sessions-local interfaces
(IAICustomizationGroupItem, IAICustomizationFileItem) and widen
IStorageSourceFilter.sources to readonly string[] so BUILTIN_STORAGE
flows through without casts. The only remaining cast is at the
IPromptPath creation boundary in AgenticPromptsService.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* sessions: move BUILTIN_STORAGE to sessions common layer

Move AICustomizationPromptsStorage type and BUILTIN_STORAGE constant
from the workbench browser UI module to sessions/contrib/chat/common
so that AgenticPromptsService (a service) does not depend on UI code.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
…9663)

Replace the `as IPromptPath` cast in discoverBuiltinPrompts with a
createBuiltinPromptPath factory function that contains the type
narrowing in one place, satisfying the code-no-dangerous-type-assertions
ESLint rule.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings March 6, 2026 16:02
@sandy081 sandy081 enabled auto-merge (squash) March 6, 2026 16:02
@sandy081 sandy081 self-assigned this Mar 6, 2026
@vs-code-engineering
Copy link
Copy Markdown
Contributor

📬 CODENOTIFY

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

@lszomoru

Matched files:

  • extensions/github/src/commands.ts

@bpasero

Matched files:

  • src/vs/workbench/browser/parts/editor/editor.contribution.ts
  • src/vs/workbench/browser/parts/editor/media/modalEditorPart.css
  • src/vs/workbench/browser/parts/editor/modalEditorPart.ts
  • src/vs/workbench/services/editor/browser/editorService.ts
  • src/vs/workbench/services/editor/test/browser/modalEditorGroup.test.ts

@rzhao271

Matched files:

  • src/vs/workbench/contrib/preferences/browser/keybindingsEditor.ts
  • src/vs/workbench/contrib/preferences/browser/media/keybindingsEditor.css
  • src/vs/workbench/contrib/preferences/browser/media/settingsEditor2.css
  • src/vs/workbench/contrib/preferences/browser/preferences.contribution.ts
  • src/vs/workbench/contrib/preferences/browser/settingsEditor2.ts

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 adds Sessions-window features around code review and built-in prompts, improves modal editor title actions support, and refactors several Sessions UI/terminal behaviors to better align with those new capabilities.

Changes:

  • Introduces a Sessions Code Review service + toolbar contribution and wires it into the Changes view and Agent Feedback comment UI.
  • Adds “built-in” prompt discovery for the Sessions app (vs/sessions/prompts/*.prompt.md) and surfaces it in AI customization UIs/counting.
  • Adds a dedicated modal editor editor-title menu (modalEditor/editorTitle) and updates modal editor UI behavior/actions.

Reviewed changes

Copilot reviewed 60 out of 60 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
src/vs/workbench/test/browser/componentFixtures/agentSessionsViewer.fixture.ts Updates fixture to new AgentSessionRenderer ctor param.
src/vs/workbench/services/editor/test/browser/modalEditorGroup.test.ts Adds modal preserveFocus behavior test.
src/vs/workbench/services/editor/browser/editorService.ts Overrides preserveFocus for first modal editor open.
src/vs/workbench/services/actions/common/menusExtensionPoint.ts Registers new API menu key for modal editor title.
src/vs/workbench/contrib/preferences/browser/settingsEditor2.ts Moves sync controls container usage; removes JSON button.
src/vs/workbench/contrib/preferences/browser/preferences.contribution.ts Duplicates editor title actions into modal editor title menu.
src/vs/workbench/contrib/preferences/browser/media/settingsEditor2.css Removes settings header right-controls styling.
src/vs/workbench/contrib/preferences/browser/media/keybindingsEditor.css Simplifies header/search CSS selectors.
src/vs/workbench/contrib/preferences/browser/keybindingsEditor.ts Removes JSON button UI; simplifies header DOM.
src/vs/workbench/contrib/chat/common/aiCustomizationWorkspaceService.ts Extends storage-source filter to allow built-in discriminator.
src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.ts Adds internal command pass-through for code review run.
src/vs/workbench/contrib/chat/browser/aiCustomization/pluginListWidget.ts Updates marketplace item layout/height.
src/vs/workbench/contrib/chat/browser/aiCustomization/media/aiCustomizationManagement.css Adds styling for new “extension-list-item” layout.
src/vs/workbench/contrib/chat/browser/aiCustomization/mcpListWidget.ts Updates gallery item layout/height similar to plugins.
src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.ts Treats built-in storage as read-only.
src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.ts Adds BUILTIN_STORAGE discriminator in workbench layer.
src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.ts Adds “Built-in” group and filtering support.
src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationIcons.ts Adds built-in storage icon.
src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsViewer.ts Adds active-session observable to render “Allow” button state.
src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsControl.ts Tracks active session resource as observable for renderer.
src/vs/workbench/browser/parts/editor/modalEditorPart.ts Adds modal editor editor-title toolbar; hides tabs/actions in modal.
src/vs/workbench/browser/parts/editor/media/modalEditorPart.css Adds separator styling for modal header actions.
src/vs/workbench/browser/parts/editor/editor.contribution.ts Adds optional registration into modal editor title menu.
src/vs/sessions/sessions.desktop.main.ts Registers Sessions code review contributions.
src/vs/sessions/prompts/create-pr.prompt.md Adds built-in “create PR” prompt for Sessions.
src/vs/sessions/contrib/terminal/test/browser/sessionsTerminalContribution.test.ts Updates tests for cwd-based terminal visibility + recency logic.
src/vs/sessions/contrib/terminal/browser/sessionsTerminalContribution.ts Refactors terminal management to cwd-based visibility + active selection.
src/vs/sessions/contrib/sessions/test/browser/customizationCounts.test.ts Extends counts tests with built-in storage.
src/vs/sessions/contrib/sessions/browser/customizationCounts.ts Adds built-in storage counting.
src/vs/sessions/contrib/fileTreeView/browser/githubFileSystemProvider.ts Changes auth session acquisition behavior and errors on missing sessions.
src/vs/sessions/contrib/configuration/browser/configuration.contribution.ts Enables Copilot for markdown/plaintext by default in Sessions.
src/vs/sessions/contrib/codeReview/test/browser/codeReviewService.test.ts Adds comprehensive unit tests for Sessions CodeReviewService.
src/vs/sessions/contrib/codeReview/browser/codeReviewService.ts Implements Sessions CodeReviewService + payload normalization.
src/vs/sessions/contrib/codeReview/browser/codeReview.contributions.ts Registers service + toolbar action with state-driven tooltip/icon.
src/vs/sessions/contrib/chat/common/builtinPromptsStorage.ts Defines BUILTIN_STORAGE and built-in prompt path type.
src/vs/sessions/contrib/chat/browser/promptsService.ts Discovers built-in prompts and filters overridden ones.
src/vs/sessions/contrib/chat/browser/newChatViewPane.ts Enables model management in Sessions chat picker.
src/vs/sessions/contrib/chat/browser/folderPicker.ts Removes workspace fallback for folder selection display.
src/vs/sessions/contrib/chat/browser/aiCustomizationWorkspaceService.ts Includes built-in storage in Sessions customization filters.
src/vs/sessions/contrib/changesView/browser/media/changesView.css Adds badge styling for code review comment counts.
src/vs/sessions/contrib/changesView/browser/changesView.ts Shows per-file code review comment counts; tweaks toolbar rendering.
src/vs/sessions/contrib/aiCustomizationTreeView/browser/aiCustomizationTreeViewViews.ts Adds built-in group support in Sessions AI customization tree.
src/vs/sessions/contrib/agentFeedback/test/browser/sessionEditorComments.test.ts Tests merging/sorting/grouping of feedback + review comments.
src/vs/sessions/contrib/agentFeedback/test/browser/agentFeedbackEditorWidget.fixture.ts Adds fixtures for combined comment widget UI states.
src/vs/sessions/contrib/agentFeedback/test/browser/agentFeedbackEditorOverlayWidget.fixture.ts Adds fixtures for overlay widget with/without feedback actions.
src/vs/sessions/contrib/agentFeedback/browser/sessionEditorComments.ts Implements unified comment model for feedback + code review.
src/vs/sessions/contrib/agentFeedback/browser/media/agentFeedbackEditorWidget.css Styles code review badges/actions and suggestion rendering.
src/vs/sessions/contrib/agentFeedback/browser/agentFeedbackService.ts Adds suggestion support + generalized navigation helpers.
src/vs/sessions/contrib/agentFeedback/browser/agentFeedbackEditorWidgetContribution.ts Renders unified comments; supports convert/remove + suggestion display.
src/vs/sessions/contrib/agentFeedback/browser/agentFeedbackEditorOverlay.ts Overlay now reflects combined comments; binds new context keys.
src/vs/sessions/contrib/agentFeedback/browser/agentFeedbackEditorActions.ts Navigation/actions updated to operate on unified comment list.
src/vs/sessions/contrib/accountMenu/test/browser/updateHoverWidget.fixture.ts Fixture layout adjusted (padding moved to CSS).
src/vs/sessions/contrib/accountMenu/browser/media/updateHoverWidget.css Adds padding to hover widget root.
src/vs/sessions/browser/workbench.ts Forces initial editor part layout for view method correctness.
src/vs/sessions/browser/media/style.css Ensures chat input part uses full width.
src/vs/sessions/AI_CUSTOMIZATIONS.md Documents built-in prompt discovery/override behavior (needs correction).
src/vs/platform/actions/common/actions.ts Adds MenuId.ModalEditorEditorTitle.
extensions/markdown-language-features/package.json Contributes markdown preview action to modal editor title menu.
extensions/github/src/commands.ts Removes unused github.checkOpenPullRequest command.
build/gulpfile.vscode.ts Packages built-in Sessions prompt markdown files.
Comments suppressed due to low confidence (1)

src/vs/sessions/contrib/agentFeedback/test/browser/agentFeedbackEditorWidget.fixture.ts:152

  • The mock ICodeReviewService implementation doesn't match the real interface: getReviewState must accept a sessionResource: URI parameter. With the current signature this fixture will not type-check. Update the override signature (it can ignore the argument and return the same observable).
function createMockCodeReviewService(): ICodeReviewService {
	return new class extends mock<ICodeReviewService>() {
		private readonly _state = observableValue<ICodeReviewState>('fixture.reviewState', { kind: CodeReviewStateKind.Idle });

		override getReviewState() {
			return this._state;
		}

		override hasReview(): boolean {
			return false;
		}

		override requestReview(): void { }

		override removeComment(): void { }

		override dismissReview(): void { }
	}();

Comment thread src/vs/workbench/contrib/preferences/browser/settingsEditor2.ts
Comment thread src/vs/sessions/AI_CUSTOMIZATIONS.md
Comment thread src/vs/workbench/services/editor/browser/editorService.ts
@sandy081 sandy081 merged commit 2b32258 into main Mar 6, 2026
24 checks passed
@sandy081 sandy081 deleted the sandy081/layout-exploration branch March 6, 2026 17:09
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.

7 participants