Skip to content

[pull] main from microsoft:main - #1598

Merged
pull[bot] merged 14 commits into
code:mainfrom
microsoft:main
Aug 16, 2026
Merged

[pull] main from microsoft:main#1598
pull[bot] merged 14 commits into
code:mainfrom
microsoft:main

Conversation

@pull

@pull pull Bot commented Aug 16, 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 : )

sandy081 and others added 14 commits August 16, 2026 17:16
* sessions: Stabilize docked side pane sizing

Keep the shared editor node width stable across reloads, session transitions, detail-only layouts, and whole-pane closure. Preserve composition-specific sizing so docked Details takes space from Sessions without cumulative width drift.

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

* sessions: Preserve pane sizing across layout restores

Clear transient sash-reset behavior on session switches, keep live Editor widths synchronized for docked restores, and preserve classic hidden-Editor persistence semantics.

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

* sessions: Clear stale sash sizing state

Discard responsive auto-hide state when the side pane closes and cancel reset-only Details sizing after a later manual sash resize.

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

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* agentHost: discover external Copilot sessions

`CopilotAgent` never emitted an external chat. Its only discovery path,
`_discoverExtHostChats()`, matched exclusively legacy VS Code
extension-host CLI sessions (a `vscode.metadata.json` sidecar with
`origin: 'vscode'`), hard-coded `external: false`, and was gated behind
`migrateLegacyCopilotCli.enabled`. A session created by the standalone
CLI or the GitHub Copilot app — which share `~/.copilot` — was dropped
before it ever reached the session registry, so `showExternalSessions`
had nothing to show even when set to `all`. Claude and Codex both emit
every unknown native chat as external; Copilot was the outlier.

Replace it with `_discoverCopilotChats()` / `_emitCopilotChats()`, which
enumerate the SDK catalog and classify each chat Agent Host does not
already own: a legacy extension-host chat stays internal and adoptable
in place (still gated on migrate-legacy), anything else is external and
ungated. Discovery starts on first-listener attach behind a `retry`
wrapper, mirroring Claude and Codex, so a cold CLI client does not lose
the pass; the retry honors `_shutdownPromise` so teardown stops it
rather than sleeping on a dead client.

Chats whose SDK context carries no working directory are still dropped:
`_doResumeSession` requires one and a discovered chat has no other
source for it, so surfacing one would produce a row that throws on open.

Add logging along the whole pipeline — provider enumeration, per-pass
classification counts, registry registration, and how many sessions the
`showExternalSessions` filter is holding back — since a session that was
discovered but filtered was previously indistinguishable from one that
was never discovered at all.

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

* agentHost: address review feedback on Copilot discovery

- Classify each discovered chat inside a try/catch so one unreadable
  session database no longer rejects the whole catalog scan (and fails
  every retry with it); the failing chat is logged and skipped instead.
- Count only mode-excluded rows in the hidden-sessions log. Adoptable
  legacy rows are withheld by migrate-legacy, so attributing them to
  showExternalSessions could report external filtering in 'all' mode.
- Await the memoized discovery pass in the test helper instead of
  polling for a non-empty result, so an expected-empty assertion can no
  longer pass before classification has run.
- Trim inline comments to one line per the coding guidelines.
- Describe discovery in AGENTS.md as emitting provider-classified
  provenance, matching the Copilot legacy exception documented above it.

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

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
test: stabilize agent host reconnect coverage

Use distinct logical client IDs for the dropped transports so reconnect scenarios cannot race the shared client for action delivery.\n\n(Written by Copilot)\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* sessions: Add external session visibility banner

Explain when an Agent Host session came from another application and let users choose which external sessions remain visible. Confirm choices that hide the open session, persist banner dismissal, and reconcile restored session publication with the setting.

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

* sessions: Add external session filter menus

Expose the external-session visibility setting beneath provider filters in both the regular agent sessions list and the Agents Window. Keep the checked option synchronized with effective configuration and update the user setting from either menu.

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

* sessions: Fix external filter menu test mock

Use an overload-compatible configuration service mock so the native TypeScript compiler accepts the external-session menu setting test.

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

* agentHost: Fix external session metadata test

Make the stale metadata overlay test opt into all external sessions so it exercises overlay behavior independently from the new age-based visibility filter.

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

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* sessions: add session details developer command

Add a developer command that opens a copyable list of non-archived session names, working directories, and resources. (Written by Copilot)

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

* sessions: address session details feedback

Localize visible action and editor labels, clarify the empty state, and make path coverage platform-aware. (Written by Copilot)

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

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Record the active host/provider stage when the turn hang watchdog fires so no-progress incidents can be separated by pre-provider and provider execution boundaries.\n\n(Written by Copilot)\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Forward external provenance through visible session wrappers and distinguish summaries recorded for diffing from summaries actually published to clients. This restores the banner in the Agents Window and allows hidden restored sessions to appear when the setting changes.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Require real provider test servers and direct SDK integrations to use temporary provider homes so test sessions, logs, and configuration never reach the developer's real ~/.copilot directory. (Written by Copilot)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Keep pending sash reset intent across session switches and later sash drags, and avoid rewriting the saved Editor width from live composition changes.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Keep summary baselines current for unpublished restored sessions without broadcasting root deltas. When the session is later published, clients receive the latest complete summary before normal incremental updates resume.

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

* Fix session metadata dropdown toggles

Co-authored-by: benibenj <44439583+benibenj@users.noreply.github.com>

* Handle metadata dropdown mouse ordering

Co-authored-by: benibenj <44439583+benibenj@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: benibenj <44439583+benibenj@users.noreply.github.com>
* Clarify restricted telemetry size safeguards

Document the backend chunk-key casing exception and make the oversized telemetry regression test verify the serialized body byte limit directly.

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

* Document restricted telemetry chunk key exception

Name the messagesJSONChunk wire family explicitly in the compressed telemetry documentation.

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

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* agentHost: Add agent merge controller

Add provider-neutral pull request lifecycle automation backed by the shared GitHub service, with scoped repair tools, native merge execution, persisted session controls, and Agents Window commands.

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

* Refactor agent merge feature implementation and update tests

- Improve agent merge logic in various files.
- Update tests to reflect changes in agent merge functionality.
- Enhance documentation for AGENT_HOST_SESSIONS_PROVIDER.

* agentHost: Let providers own autonomous agent merge config

Provider agents now select and restore their native unattended configuration, repair prompts carry bounded authorized review-thread detail, and branch and session-wide turn checks are revalidated before claiming a turn or merging.

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

* agentHost: Advertise agent merge tools only when enabled

Gate the Agent Merge server tool group on the host feature setting so sessions without Agent Merge keep their existing tool catalog and provider prompts, and re-advertise host tools when the setting is toggled.

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 Aug 16, 2026
@pull pull Bot added the ⤵️ pull label Aug 16, 2026
@pull
pull Bot merged commit 30ad9a5 into code:main Aug 16, 2026
6 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.

6 participants