Skip to content

[pull] main from microsoft:main#1222

Merged
pull[bot] merged 25 commits into
code:mainfrom
microsoft:main
May 6, 2026
Merged

[pull] main from microsoft:main#1222
pull[bot] merged 25 commits into
code:mainfrom
microsoft:main

Conversation

@pull
Copy link
Copy Markdown

@pull pull Bot commented May 6, 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 : )

kycutler and others added 25 commits May 5, 2026 22:46
* Layout modal editor with position / during drag updates

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

* clean

---------

Co-authored-by: Copilot <copilot@github.com>
Drop the home/overview button that lived in the customizations sidebar
header. The button and its dedicated test file were added in #312868;
remove them along with their CSS and the now-unused IEditorService and
AICustomizationManagementEditor* dependencies.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Remove the theme selection step from the agents welcome walkthrough
- After sign-in or 'Get Started', the walkthrough now completes directly
- Update welcome title to append '- Agents' to the product name
- Update subtitle from 'AI-powered application' to 'AI-powered coding experience'
- Remove unused theme-related imports and service dependencies

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
… is present (#314548)

Follow-up to #314413. When an itemProvider is set on a customization
harness, ProviderCustomizationItemSource.fetchItems treats the provider
as the single source of truth and skips local syncable enumeration.
However, the constructor still subscribed to syncProvider and prompts
service change events, so providers that already forward those
underlying events via their own onDidChange (e.g.
LocalAgentHostCustomizationItemProvider) caused duplicate refreshes.

Gate the syncProvider/promptsService event subscriptions on the same
condition that gates the data path, plus add regression tests for both
the no-double-counting and event-gating behaviors.

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

* Add Cmd+Shift+A keybinding to switch between VS Code and Agents window

Register new SwitchToAgentsWindowAction and SwitchToVSCodeWindowAction
with Cmd+Shift+A (Ctrl+Shift+A on Win/Linux) as the default keybinding.

- SwitchToAgentsWindowAction: opens/focuses the Agents window from VS Code
- SwitchToVSCodeWindowAction: focuses the most recent VS Code window from
  the Agents window, or opens a new one if none exists

These complement the existing OpenAgentsWindowAction and OpenInVSCodeAction
which transfer the active folder context.

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

* fix compilation

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Fix image preview root for `git:` files
Remove the guard that explicitly prevented the agents window from being
restored during the restoreWindows flow. The agents window is now treated
like any other workspace window and will reopen on restart.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Enable markdown image context menu in custom editors too
)

* Introduce proposed agentsWindow configuration extension point

Add a new `agentsWindow` property to the configuration contribution point
that allows extensions to declare per-setting default value overrides and
read-only behavior for the Agents window.

Shape: `agentsWindow: { default?: unknown; readOnly?: boolean }`

- Gated behind `agentsWindowConfiguration` proposed API
- SessionsDefaultConfiguration uses agentsWindow.default as the default value
- ReadOnly settings are excluded from user configuration parsing and
  cannot be written via updateValue
- Settings editor shows lock indicator for readOnly settings
- `@override:agentsWindow` filter in settings search (agents window only)
- Adopted all existing hardcoded session defaults to use the new schema

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

* revert

* Potential fix for pull request finding

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

* Potential fix for pull request finding

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

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
* Fix stale BYOK models in model picker after API key removal

* Few fixes
…314599)

- Enable Search Editor contribution in the Agents window
- Extract search.searchEditor.* configuration properties from
  search.contribution.ts into searchEditor.contribution.ts
- Create search.common.contribution.ts for shared service registrations
  (ISearchHistoryService, IReplaceService, INotebookSearchService)
- Add Cmd+Shift+F keybinding to open Search Editor in Agents window
- Enable Problems panel (markers) with WindowEnablement.Both
- Fix panel part badge positioning in Agents window CSS

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

agentHost: initial scaffolding out for completions
Disable doubleClickToSwitchToEditor and markEditorSelection by default
)

When 'Open in Agents Window' is triggered from the workbench, pass
the current workspace folder URI to the agents window and pre-select
it in the new chat workspace picker.

Flow:
- Action passes folderUri via openAgentsWindow API
- Main process sends vscode:selectAgentsFolder IPC to agents window
- Sessions contribution resolves folder via providers and selects it
- Waits for provider registration with Eventually phase timeout

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Remote workspace folders (vscode-remote://) cannot be resolved by
sessions providers, so only pass file:// URIs.

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

* sessions: add command to open events.jsonl for active Copilot CLI AH session

Adds a new command `agentHost.openSessionEventsFile` ('Copilot CLI: Open
Session Events File') accessible from the Command Palette. It opens the
`events.jsonl` file for the currently active Copilot CLI chat session.

Supported session types:
- Local AH (scheme `agent-host-copilotcli`): opens
  `~/.copilot/session-state/<id>/events.jsonl` via IPathService.userHome.
- Remote AH (scheme `remote-<auth>-copilotcli`): looks up the connection
  via IRemoteAgentHostService, uses the host's `defaultDirectory` (reported
  during AHP handshake) to build a `vscode-agent-host://` URI, served by
  the existing remote AH filesystem provider. No new RPC needed.
- EH CLI extension (scheme `copilotcli`): same local path as local AH.

The command is gated on `ChatContextKeys.enabled && IsAgentHostSession` so
it only appears when an AH session is active. The logic is in
`openSessionEventsFileActions.ts` (pure `resolveEventsUri` helper +
exported `Action2`) registered from `remoteAgentHost.contribution.ts`,
which is loaded on both desktop and web. Unit tests cover all cases.

(Written by Copilot)

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

* sessions: rename command to 'Open Copilot CLI State File', move under Developer category

(Written by Copilot)

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

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Persist the user's last-selected session type and isolation mode so
they are restored when opening a new session, matching how the workspace
picker retains its previously selected folder.

Session type picker:
- Add IStorageService to SessionTypePicker and MobileSessionTypePicker
- Store selected type on pick, restore from storage when no session exists

Isolation picker:
- CopilotCLISession reads stored isolation mode as initial value
- CopilotCLISession.setIsolationMode() persists to storage on change
- Picker remains a pure UI widget with no storage dependency

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

The first tokenizer use parses a ~3.6MB BPE file into a 200K-entry Map
(O200K_base.tiktoken), which takes ~225ms locally and several seconds on
slow CI machines. Because the tokenizer is a process-wide singleton,
this one-time cost lands on whichever test calls tokenLength first.

In summarization.spec.tsx that was 'continuation turns are not rendered
in conversation history' (the first test in the suite), which then
occasionally tripped vitest's 5s default test timeout on CI.

Warm the tokenizer once in beforeAll so:
- Per-test timing is predictable (281ms -> 36ms for the first test).
- The cold-start cost is paid in suite setup, where it would surface as
  a clear 'Hook timed out' error rather than a misleading test timeout.

Fixes #314078

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Close mobile sidebar drawer when creating a new session

On the agents mobile web layout, tapping the (+) buttons to create a new
session left the sidebar drawer covering the viewport, hiding the new
session view. Now the drawer is dismissed automatically:

- The (+) button in the mobile titlebar (workbench.ts).
- The per-workspace section (+) button inside the sessions list
  (NewSessionForWorkspaceAction).

Both call sites are gated on `isWeb && isMobile` to match the existing
`onSessionOpen` pattern in sessionsView.ts.

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

* Address PR feedback: route mobile drawer close through proper path

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@pull pull Bot locked and limited conversation to collaborators May 6, 2026
@pull pull Bot added the ⤵️ pull label May 6, 2026
@pull pull Bot merged commit 89fc639 into code:main May 6, 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.

9 participants