Skip to content

[pull] main from microsoft:main#1388

Merged
pull[bot] merged 21 commits into
code:mainfrom
microsoft:main
Jun 19, 2026
Merged

[pull] main from microsoft:main#1388
pull[bot] merged 21 commits into
code:mainfrom
microsoft:main

Conversation

@pull

@pull pull Bot commented Jun 19, 2026

Copy link
Copy Markdown

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 : )

Giuspepe and others added 21 commits June 19, 2026 11:20
The local agent host runs a single sessions provider whose session cache
holds every agent-host session type (codex, claude, copilot). When a new
session is sent, the provider identifies the freshly-committed backend
session in `_waitForNewSession` purely by novelty — the first cached
session whose raw id was not present before the send. The session's
type/scheme was never checked.

That is wrong when a session of a *different* type appears in the cache
during the send. A slow Codex session (which cold-starts a native
app-server before its first /responses turn) sent while a Claude session
from an earlier run is present would latch onto the Claude session and
return it as the Codex commit. `sendRequest` then reports an
"active session replaced: codex -> claude", the workbench swaps the
active slot to the wrong session, removes the Codex one, and the Codex
reply renders nowhere. A claude harness that is suppressed in the current
window (preferAgentHost=false) additionally throws "Agent host targets
must have an item provider" when activated. This is exactly why the
Codex smoke test timed out on the Windows CI runner (where the cold-start
race is widest), failing build 449022.

Filter `_waitForNewSession` by the `chatResource` scheme so a send only
ever commits a session of its own type, in both the immediate cache scan
and the onDidChangeSessions wait. Re-enable the Codex smoke test that was
disabled in #321983 to keep the build green.

Verified: a new unit test reproduces the cross-type latch (fails before,
passes after); live launch with stale claude sessions present shows the
Codex session stays active with no wrong swap; and the (re-enabled) Codex
smoke test passes locally end-to-end.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
chat: remove letter-spacing from agent sessions title style

Co-authored-by: mrleemurray <mrleemurray@users.noreply.github.com>
* AH skill completions: qualify skill with plugin

* fix tests
…322071)

update scrollbar and minimap slider colors for improved visibility in light and dark themes

Co-authored-by: mrleemurray <mrleemurray@users.noreply.github.com>
#322080)

* fix: suppress edge fades for embedded single-line editors in scroll shadows

* fix: remove unnecessary scroll shadow gradient for monaco list

---------

Co-authored-by: mrleemurray <mrleemurray@users.noreply.github.com>
style: adjust tab sizing to fit content and enable overflow scrolling

Co-authored-by: mrleemurray <mrleemurray@users.noreply.github.com>
…n to pass GitHub token during model retrieval (#322045)

* Enhance logging for model refresh and update CopilotClient integration to pass GitHub token during model retrieval

* Remove token mention from CopilotClient startup log message
…kage-lock files (#322020)

* Update GitHub Copilot and SDK versions to 1.0.64-0 in package and package-lock files

* Increase timeout for CopilotAgent tests to 30 seconds
…2099)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* refactor: rename floatingPanels setting to modernUI and update related configurations

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

* style: clarify comments regarding layout affecting modules and floating panels presentation

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

* fix: add deferred re-clamp for header size changes in Pane layout

* feat: migrate legacy experimental settings to modernUI toggle

* 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>

* Potential fix for pull request finding

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

---------

Co-authored-by: mrleemurray <mrleemurray@users.noreply.github.com>
Co-authored-by: Copilot <copilot@github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
…1637) (#321644)

Co-authored-by: vs-code-engineering[bot] <122617954+vs-code-engineering[bot]@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
)

* fix: plugin skill files not accessible when connected to remote

When connected to an SSH/WSL/dev container remote, local file:// URIs
for agent plugin skill files were being passed as native filesystem
paths to the remote extension host, which can't read them.

Fix getFilePath() to emit vscode-local:// URIs for local file:// paths
when isRemote is true — the remote extension host can resolve these via
the built-in local file bridge.

Also fix _listExtensionPromptFiles to include plugin-storage files so
they pass the trust check without triggering a confirmation dialog on
every read.

Fixes #305168

* fix: correct vscode-local URI scheme format in comments and test names

* test: fix test failures on Windows CI and missing getConnection stub

---------

Co-authored-by: Martin Aeschlimann <martinae@microsoft.com>
…latch

sessions: match new agent-host session by type, not just novelty
…322025)

* Support rich strictKnwonMarketPlaces managed setting

* config update

* Address PR review: validate allowlist entries, honor url ref, fix docs

* add test and update policy

* fix test

* update ux
* CI: speed up node_modules cache with zstd + shared scripts

Switch the Linux/macOS node_modules cache from single-threaded gzip
(tar -czf) to multi-threaded zstd. The "Create node_modules archive"
step was spending ~5min of single-core gzip on a multi-GB tree on every
cache miss; zstd -T0 uses all cores and decompresses much faster, so
cache-hit jobs benefit too. Windows stays on 7-Zip (already threaded).

Extract the archive/extract commands into shared per-platform scripts
under .github/workflows/node_modules_cache/ (cache.sh / cache.ps1, each
dispatching on an archive|extract argument) so the format and flags live
in one place instead of being duplicated across ~8 workflows. Bump
build/.cachesalt to invalidate existing gzip caches.

Also remove the obsolete extensions/copilot CI workflows
(copilot-setup-steps.yml, ensure-node-modules-cache.yml, pr.yml) and the
unused build/listBuildCacheFiles.js, and drop their now-stale entries
(plus lit-html and signals-core) from .eslint-allowed-javascript-files.

* ci: seed copilot node_modules cache on main and rename cache keys

Add copilot-linux and copilot-windows jobs to pr-node-modules.yml so the
copilot node_modules cache is populated on main. Rename the copilot cache
keys to copilot-node_modules-linux / copilot-node_modules-windows in pr.yml.

* ci: extract node_modules cache into composite actions

Factor the repeated node_modules cache plumbing into two local composite
actions, restore-node-modules and save-node-modules, and migrate all
workflows that used the cache.sh/cache.ps1 archive flow (pr, pr-node-modules,
pr-{linux,darwin,win32}-test, copilot-setup-steps, component-fixtures,
css-order-scan).

- restore-node-modules computes the key, restores the cache, optionally
  extracts on a hit, and exports the resolved key via $GITHUB_ENV.
- save-node-modules archives node_modules and saves it to the cache, reusing
  the key exported by restore so callers don't repeat the prefix.
- Bespoke install steps stay in the workflows, so per-job env/secrets never
  cross the action boundary.
- Only seed the cache on branch pushes (component-fixtures skips PRs, whose
  caches aren't shared).

* save the node_modules cache for now to test it

* ci: fix node_modules cache save dropping the archive

cache.sh wrote its archive as cache.tzst, but actions/cache reserves that
name for its own tarball and passes --exclude cache.tzst, so our archive was
excluded and an empty (~200 B) cache was saved on Linux/macOS. Rename the
archive to node-modules.tzst and bump build/.cachesalt to invalidate the
broken cache entries.

* empty commit

* Remove again saving to the node modules cache from PR steps
…322109)

* Add [PR-ICON-TRACE] trace logs to PR polling/fetching pipeline

Adds trace-level logging across the GitHub PR lookup, fetch, poll and session-icon computation path so the flow can be filtered end-to-end via the shared [PR-ICON-TRACE] token while debugging missing/incorrect session PR icons.

Covers githubService PR-number lookup, githubApiClient request/response, the PR/CI/review-thread models (refresh, poll, startPolling), the polling contribution per-session poller, and the agent-host session icon derivation. Injects ILogService where it was missing and updates the polling contribution test accordingly.

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

* Pass error as separate trace arg to preserve stack formatting

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

---------

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

fix: update icon for continue in background action in chat terminal tool progress part

Co-authored-by: mrleemurray <mrleemurray@users.noreply.github.com>
@pull pull Bot locked and limited conversation to collaborators Jun 19, 2026
@pull pull Bot added the ⤵️ pull label Jun 19, 2026
@pull
pull Bot merged commit 53b36d6 into code:main Jun 19, 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.