mirror of
https://github.com/microsoft/vscode.git
synced 2026-08-17 12:35:56 +01:00
agents window: keep workspace-less quick chats out of bogus workspace groups Automation-created quick chats (and any quick chat seen after a reload or a list refresh) rendered in the sessions sidebar under a section header labelled with a raw session UUID instead of under "Chats". Whether a session is a quick chat cannot be derived from its working directory -- the host assigns workspace-less sessions a throwaway scratch cwd at ~/.copilot/chats/<sessionId> -- so it travels as an `agentHost.workspaceless` marker on the generic `_meta` bag. `AgentService.listSessions()` overlays it correctly, but the AHP `root/listSessions` round-trip dropped `_meta` on both ends, so any session first materialized from a listing was classified as a workspace session rooted at that scratch dir. `notify/sessionAdded` does carry `_meta`, which is why a fresh quick chat looked right until the next refresh. - carry `_meta` on the `listSessions` wire item (server) and map it back (client -- the only IAgentConnection implementation, so this covers the local host too) - infer workspace-less in `_buildInitialSummary` from `config?.` so a `createSession()` with no config matches what the agents themselves infer - make the adapter session-kind monotonically promotable instead of frozen at construction, so a mis-classified session heals when an authoritative `_meta` arrives, and report the promotion even when the workspace was already undefined so the list regroups - persist the healed kind by overlaying the adapter live quick-chat state in `_persistCache`, so a stale snapshot cannot resurrect the mis-classification The provider tests could never have caught the wire drop -- the mock host returns its stored metadata verbatim, bypassing both mappers -- so the wire regression tests live at the protocol layer, and the provider tests cover the promotion and the cache round-trip. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: c93359f3-9a7d-411d-9adb-21bdda78c6af