* sessions: Cache Agent Host session metadata Persist pull request metadata and aggregate change counts so cached Agent Host sessions render complete list rows before the first live refresh. (Written by Copilot) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * sessions: Clear cached change summaries Handle explicit change-summary clears so stale aggregate counts are not persisted and restored. (Written by Copilot) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * agentHost: Preserve summary clears over the wire Represent aggregate change-summary clears with an additive protocol marker and cover both transport serialization and metadata-only cache persistence. (Written by Copilot) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * sessions: Keep cache change protocol-neutral Remove the locally invented summary-clear wire marker while retaining isolated coverage for change-stat and metadata-only cache persistence. (Written by Copilot) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Agents Window documentation
vs/sessions implements the Agents Window as a top-level layer above
vs/workbench. This directory contains both the implementation and the durable
design specifications that describe its boundaries.
Documentation ownership
Each contract has one authoritative home:
- This file indexes the subsystem and its design documents.
- Focused specifications describe stable architecture and product invariants.
- Tests define concrete behavior and regressions.
.github/skills/sessions/SKILL.mdowns the basic development principles, their maintenance policy, and routing to the relevant specification..github/learnings/sessions.mdis a temporary inbox for reusable feedback that has not yet been promoted.- Git history, issues, and pull requests preserve implementation chronology and rejected approaches.
Do not duplicate detailed guidance across these artifacts. Concise routing summaries may restate enough of a rule to identify its owning specification, which remains authoritative.
Architecture specifications
| Area | Authoritative document |
|---|---|
| Internal layer hierarchy and import rules | LAYERS.md |
| Session/chat model, services, provider contract, and core data flow | SESSIONS.md |
| Workbench parts, grid, title bar, and editor presentation | LAYOUT.md |
| Session-aware layout capture and restoration | LAYOUT_CONTROLLER.md |
| Single-pane behavior scenarios | SINGLE_PANE_SCENARIOS.md |
| Sessions sidebar list | SESSIONS_LIST.md |
| Phone layout and mobile components | MOBILE.md |
| AI customizations | AI_CUSTOMIZATIONS.md |
| Copilot customizations | copilot-customizations-spec.md |
| Copilot Chat provider | COPILOT_CHAT_SESSIONS_PROVIDER.md |
| Agent Host provider | AGENT_HOST_SESSIONS_PROVIDER.md |
| Remote Agent Host provider | REMOTE_AGENT_HOST_SESSIONS_PROVIDER.md |
Structural boundaries
vs/sessionsmay import fromvs/workbenchand lower layers.vs/workbenchmust not import fromvs/sessions.- Core browser and common code lives under
browser/andcommon/. - Shared Sessions services live under
services/. - Features live under
contrib/<feature>/. - Providers live under
contrib/providers/<provider>/. - Non-provider contributions must not import provider implementations.
- Contributions must be imported by the appropriate
sessions.*.main.tsentry point to load.
See LAYERS.md for the enforced import graph.
Updating documentation
Update a specification when a change modifies the architecture or a durable contract it describes. Keep implementation walkthroughs, incident narratives, and transient fixes out of specifications; represent concrete behavior with tests and preserve historical rationale in the associated issue or pull request.