Skip to content

[pull] main from microsoft:main#1184

Merged
pull[bot] merged 7 commits intocode:mainfrom
microsoft:main
Apr 25, 2026
Merged

[pull] main from microsoft:main#1184
pull[bot] merged 7 commits intocode:mainfrom
microsoft:main

Conversation

@pull
Copy link
Copy Markdown

@pull pull Bot commented Apr 25, 2026

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

dileepyavan and others added 7 commits April 25, 2026 17:06
…312537)

* adding allowRead and testing with defaults

* Rename terminal sandbox read allow list

* Remove Copilot settings change from sandbox PR

* changes

* changes

* Updating sandbox runtime package

* Updating tests

* Add macOS test cases for denyRead/allowRead behavior and ~ path handling

Agent-Logs-Url: https://github.com/microsoft/vscode/sessions/ec5cf3c2-6c7b-4577-bdbb-8ac3d42bdfb0

Co-authored-by: dileepyavan <52841896+dileepyavan@users.noreply.github.com>

* changes for readonly home dir

* skipping integrated tests for sandbox

* running srt in tmp_dir for linux

* running srt in tmp_dir for linux

* skipping failed integration test in linux

* fixing test failures

* fixing test failures

* skipping integration tests in CI pipeline

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
* More effective disabling of browser tools in agents app

Co-authored-by: Copilot <copilot@github.com>

* feedback

Co-authored-by: Copilot <copilot@github.com>

---------

Co-authored-by: Copilot <copilot@github.com>
When a new agent session resolves to a different working directory than
the one requested (e.g. because the server created a git worktree),
file/directory/selection attachments submitted on the first turn still
reference paths under the original source directory.

Fix _convertVariablesToAttachments to rebase each attachment URI from
the requested working directory onto the server-resolved one. The rebase
is a no-op when the two directories are the same, when the attachment
lies outside the requested directory, or when either directory is not a
file:// URI.

The resolved working directory is read from SessionSummary.workingDirectory
(already set by the time the first turn is processed) and the requested
directory is tracked per-session at subscription time.

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

* Replace embedded MCP/plugin editors with compact detail widgets

The Chat Customizations management editor previously embedded the full-page
McpServerEditor and AgentPluginEditor inside its split-pane detail host. Those
editors are designed for a wide standalone editor area and rendered visually
broken in the narrow split pane regardless of CSS overrides.

This change introduces two small dedicated detail components,
EmbeddedMcpServerDetail and EmbeddedAgentPluginDetail, which render compactly
in the split pane (icon, name, scope/source, description) and offer an
'Open in editor' link to launch the full standalone editor for advanced flows.

The previous '.extension-editor' host overrides are removed in favor of focused
'.ai-customization-embedded-detail' styles.

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

* Add standalone fixtures for embedded MCP/plugin detail widgets

Adds six new component-explorer fixtures that render EmbeddedMcpServerDetail
and EmbeddedAgentPluginDetail in isolation (workspace/user/empty for MCP,
installed/marketplace/empty for plugin). These complement the existing host-
editor fixtures and catch regressions in the widgets themselves without
requiring the full management editor stack.

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

* Remove 'Open in editor' link from embedded MCP/plugin detail widgets

The full-page McpServerEditor and AgentPluginEditor are visually broken in
several flows, so linking out to them from the compact detail widget did more
harm than  and the link looked out of place in an otherwise minimalgood
header. Drop the link, its handlers, and the now-unused services
(IHoverService, IEditorService, IInstantiationService) along with the related
CSS.

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

* Address review feedback: fix codicon class & doc inaccuracy

- EmbeddedMcpServerDetail: server.codicon already contains the full codicon
  class name (e.g. "codicon-foo"), matching the pattern in
  mcpServerWidgets.ts. The previous code prefixed it again and validated
  against the Codicon registry, so custom server icons never rendered. Mirror
  the existing pattern: `codicon ${server.codicon}` when set, otherwise the
  themed mcpServerIcon.
- AI_CUSTOMIZATIONS.md: drop stale mention of the "Open in editor" link, which
  was removed earlier in this branch.

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

* fixtures: add findHarnessById to mock ICustomizationHarnessService

The AICustomizationManagementEditor constructor calls
harnessService.findHarnessById, which the fixture mock did not
implement. This caused all renderEditor-based fixtures (including
McpServerDetailNarrow and PluginDetailNarrow) to crash during
construction and produce blank screenshots in CI.

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

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Adopt message attachment URI protocol (Written by Copilot)

* sync
* Lift customization items into a single observable model

Removes debt where the sidebar 'Customizations' widget computed per-section
counts via a parallel discovery code path (customizationCounts.ts) that
diverged from the actual Customizations editor's data (e.g. when a
ChatSessionCustomizationProvider or AHP customization was active).

Introduces  a singleton owning the per-active-IAICustomizationItemsModel
harness ProviderCustomizationItemSource cache and exposing per-section
IObservable<readonly IAICustomizationListItem[]>. Both the editor list
widget and sidebar surfaces (per-link badges + header total) now read from
the same observables, so counts cannot diverge from what the editor shows.

- New: aiCustomizationItemsModel.ts (+ unit tests)
- Editor list widget + management editor: consume the model via autoruns
- Sidebar CustomizationLinkViewItem: single autorun over the model /
  IMcpService.servers / IAgentPluginService.plugins
- AICustomizationShortcutsWidget header total: derived sum
- Deletes customizationCounts.ts and its test
- Updates fixture and AI_CUSTOMIZATIONS.md

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

* Address council review + CI feedback

- Make items model lazy: sections only fetch on first read, avoiding the
  5x provider enumeration on construction. Source.onDidChange / harness
  switch / workspace change refetch only sections that have already been
  observed.
- Cache sources by descriptor identity (not id) and prune entries whose
  descriptor is no longer in availableHarnesses. Fixes stale binding when
  an external harness re-registers under the same id.
- Cache per-section count derived in the constructor (no allocation per
  call).
- Add IAICustomizationItemsModel.whenSectionLoaded(section) so editor's
  setSection (now async again) can await the first  keeps thefetch
  screenshot fixture deterministic.
- Sidebar header total now sums over CUSTOMIZATION_ITEMS (the visible
  links) instead of every prompts-based section, so it cannot exceed the
  sum of per-link badges. Excludes Prompts which the sidebar does not
  surface.
- Wrap items-model unit tests in a sub-suite so per-test teardown disposes
  before the leak-check teardown runs. Add coverage for lazy fetching and
  descriptor re-registration.

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

* Wire IAICustomizationItemsModel into the list widget fixture

The list widget now consumes IAICustomizationItemsModel; the fixture was
still injecting only the underlying services and so failed to instantiate
the widget. Register the real AICustomizationItemsModel (it transparently
fetches through the existing prompts-service mock) and add the missing
mock methods (findAgentSkills, getPromptSlashCommands, getHooks,
getSkillUIIntegrations) that the model's discovery path exercises.

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

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…nd lock folder group for existing sessions (#312562)

Simplifying the options logic sets us up for success to add worktree support.
@pull pull Bot locked and limited conversation to collaborators Apr 25, 2026
@pull pull Bot added the ⤵️ pull label Apr 25, 2026
@pull pull Bot merged commit 4a3156a into code:main Apr 25, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants