Skip to content

[pull] main from microsoft:main - #1662

Merged
pull[bot] merged 13 commits into
code:mainfrom
microsoft:main
Sep 3, 2026
Merged

[pull] main from microsoft:main#1662
pull[bot] merged 13 commits into
code:mainfrom
microsoft:main

Conversation

@pull

@pull pull Bot commented Sep 3, 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 : )

roblourens and others added 13 commits September 3, 2026 04:51
* agentHost: drain providers during standalone shutdown

Ensure the standalone WebSocket host stops protocol ingress, awaits provider teardown, and flushes persistence before disposal. This lets Claude finish its transcript write before an E2E restart launches the replacement host. (Written by Copilot)

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

* agentHost: dispose pending protocol connections

Track accepted transports before initialization so standalone shutdown closes every connection before waiting for in-flight requests. (Written by Copilot)

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

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: vs-code-engineering[bot] <vs-code-engineering[bot]@users.noreply.github.com>
* Add terminal profile setting change telemetry

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

Copilot-Session: f4bbe757-733f-4851-a490-95b1ba98e743

* Reuse terminal telemetry contribution

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

Copilot-Session: f4bbe757-733f-4851-a490-95b1ba98e743

* Filter terminal profile telemetry by effective changes

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

Copilot-Session: f4bbe757-733f-4851-a490-95b1ba98e743

* Report configured terminal profile settings

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

Copilot-Session: f4bbe757-733f-4851-a490-95b1ba98e743

---------

Copilot-Session: f4bbe757-733f-4851-a490-95b1ba98e743
…scovery (#334039)

* test: ensure cancellation does not cache partially completed agent discovery

* update
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* sessions: address resource label review

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

* label: simplify session home templates

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

* label: restore formatter documentation

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

* label: simplify template parameter matching

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

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
An agent host crash (V8 OOM) left two Codex sessions rendering a running
turn forever. The turns had already aborted with the process; only the
client's view was stale.

Recovery had two independent holes, both in the shared AHP layer:

- The client re-pushed every cached authentication through a single
  `Promise.all`. One rejected per-resource credential (an MCP server the
  restarted host no longer recognised) rejected the whole thing and
  aborted the rest of restart recovery, so subscription restoration
  never ran.

- `initialize` registers a state channel even when its snapshot has not
  materialized (`_addInitialSubscription` uses the synchronous
  `getSnapshot`, unlike `subscribe`, which awaits `AgentService.subscribe`
  and restores evicted state). `canReplay` then compares only a global
  cursor, so the next reconnect answered `replay` to channels holding no
  baseline from the current process. Deltas applied onto nothing leave
  the channel stranded on pre-restart state.

Provider-agnostic: the same paths serve Codex, Claude and Copilot. The
Copilot sessions in the same window were equally stranded and only went
unnoticed because they were idle rather than mid-turn.

Client:
- Only the freshly resolved initial credential is fatal; a rejected
  cached per-resource token is logged and stepped over. The protocol
  requires hosts to reject resources they do not currently advertise,
  so this is an expected response, not a failure.
- `_subscriptionsAwaitingRestore` tracks channels a fresh initialize did
  not snapshot and survives transport drops, so a later reconnect
  finishes the restore even when it resolves to a snapshot-less replay.
- `_authenticationRestorePending` carries an interrupted authentication
  pass to the next reconnect. Authentication is process-global and
  survives a transport drop, so only a frame that never arrived needs
  redelivery.

Subscriptions:
- `beginSnapshotRefresh`/`cancelSnapshotRefresh` buffer envelopes while a
  re-subscribe is in flight. These channels are already live, so an
  action newer than the snapshot can arrive first and would otherwise be
  clobbered by the older snapshot -- losing, for instance, the action
  that ends a turn.

Server:
- `_baselineDebt` records state channels handed out without a snapshot
  and denies `canReplay` while any requested channel still owes one.
  Debt is released when a baseline is delivered, when a channel is
  reported `missing`, and on unsubscribe, so an unrestorable channel
  cannot force the snapshot path for a client's healthy channels.

Each fix has a test verified to fail without it, including a
deterministic reproduction of the reconnect against the real
`ProtocolServerHandler`.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
label: support multiple home template parameters

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* sessions: feat: show New badge for Automations

Show a theme-aware first-use badge until the Automations view is activated. Preserve the decision across local profiles and cover migration, accessibility, recycled templates, and visual states.

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

* Agent Host changes for ulugbekna/agents/sidebar-automation-new-badge-designs

* sessions: fix: address Automations badge review feedback

Fall back when treatment resolution fails, preserve high-contrast badge colors, cover observable accessible labels, and render the production Sessions header in fixtures.

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

Copilot-Session: 922f1dc5-a262-4914-a0b4-7fed0cb79b4b

* sessions: test: accept Automations badge screenshots

Add the Linux-rendered blocks-CI hashes for the new badge style, narrow, running, and high-contrast fixtures.

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

Copilot-Session: 922f1dc5-a262-4914-a0b4-7fed0cb79b4b

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 922f1dc5-a262-4914-a0b4-7fed0cb79b4b
* fix: memory leak in extHostComments

* Attestation commit

---------

Co-authored-by: Alex Ross <38270282+alexr00@users.noreply.github.com>
* Agent Host changes for ulugbekna/agents/enable-default-automations-insiders

* automations: test: capture setting before registry cleanup

The full browser suite clears global configuration registrations after modules load. Capture the Automations setting schema during module initialization so the regression test remains valid regardless of suite order.

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

* automations: test: cover excluded setting registry

Stable builds place the excluded Automations setting in the excluded configuration registry. Capture the schema from either registry at module load so the test works in all product qualities and remains independent of suite cleanup order.

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

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@pull pull Bot locked and limited conversation to collaborators Sep 3, 2026
@pull pull Bot added the ⤵️ pull label Sep 3, 2026
@pull
pull Bot merged commit f13577c into code:main Sep 3, 2026
7 of 10 checks passed
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