Skip to content

Commit c53f651

Browse files
committed
Merge branch 'main' into dbaeumer/ts7context
2 parents 9989efa + e6a38b7 commit c53f651

371 files changed

Lines changed: 20967 additions & 7819 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎.eslint-allowed-javascript-files‎

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,13 @@ build/builtin/browser-main.js
1616
build/builtin/main.js
1717
build/npm/stubs/sharp/index.js
1818
build/codex/generate-protocol.mjs
19+
build/next/devTunnelsWebEntry.js
20+
build/next/devTunnelsShims/buffer.js
21+
build/next/devTunnelsShims/bufferutil.cjs
22+
build/next/devTunnelsShims/empty.cjs
23+
build/next/devTunnelsShims/process.js
24+
build/next/devTunnelsShims/utf8Validate.cjs
25+
build/next/devTunnelsShims/vscodeJsonrpc.cjs
1926
eslint.config.js
2027
extensions/copilot/.mocha-multi-reporters.js
2128
extensions/copilot/.mocharc.js

‎.github/CODEOWNERS‎

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,3 +18,12 @@ src/vs/workbench/services/extensions/common/extensionPoints.json @TylerLeonhardt
1818
# Adding entries here lets a new .js/.cjs/.mjs file land in the repo;
1919
# review is required to make sure TypeScript is not a better choice.
2020
.eslint-allowed-javascript-files @alexr00 @alexdima @sbatten @TylerLeonhardt
21+
22+
# Agents Window architecture specifications and their routing policy.
23+
# These files describe stable contracts and should not change for routine fixes.
24+
/src/vs/sessions/*.md @sandy081
25+
/src/vs/sessions/contrib/layout/browser/*.md @sandy081
26+
/src/vs/sessions/contrib/providers/*/*.md @sandy081
27+
/.github/instructions/sessions.instructions.md @sandy081
28+
/.github/skills/sessions/SKILL.md @sandy081
29+
/.github/skills/chat-customizations-editor/SKILL.md @sandy081

‎.github/dependabot.yml‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,5 +14,7 @@ updates:
1414
directory: "/extensions/markdown-language-features"
1515
schedule:
1616
interval: "daily"
17+
time: "16:00"
18+
timezone: "America/Los_Angeles"
1719
allow:
1820
- dependency-name: "@vscode/markdown-editor"

‎.github/skills/agent-host-logs/SKILL.md‎

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,12 @@ Files are collected best-effort, so a valid bundle may contain only some of thes
2525
events.jsonl
2626
usage.jsonl
2727
customizations.json
28-
Agent Host.log
29-
Window.log
30-
Shared.log
28+
agenthost.log
29+
agenthost.1.log
30+
agenthost-server.log
31+
vscode-logs/Window/renderer.log
32+
vscode-logs/Window/renderer.1.log
33+
vscode-logs/Shared/sharedprocess.log
3134
ahp/*.jsonl
3235
copilot-logs/*.log
3336
remote-agenthost.log
@@ -47,10 +50,10 @@ Window/client <-> AHP <-> Agent Host process <-> Copilot SDK
4750
| `usage.jsonl` | Client-captured token/credit usage, one record per model call (`turnId`, model, input/output/cache tokens, cumulative `totalNanoAiu`). The SDK's `assistant.usage` event is ephemeral and never reaches `events.jsonl`, so this is the only per-call usage record. Present only when agent-host debug logging was on. |
4851
| `customizations.json` | Snapshot of the skills/hooks/agents/MCP servers loaded for the session. The SDK's `session.*_loaded` events are ephemeral, so this is the only record of what was actually active. Present only when agent-host debug logging was on. |
4952
| `ahp/*.jsonl` | AHP traffic for a client connection. `_ahpLog.dir` is `c2s` or `s2c`; `_ahpLog.ts` is the wire timestamp. Use this to see requests, responses, subscriptions, actions, notifications, and client-visible ordering. |
50-
| `Agent Host.log` | Local Agent Host process behavior: startup, auth, sessions, provider events, tools, Git/worktrees, and host-side errors. |
53+
| `agenthost*.log` | Local or server Agent Host process behavior: startup, auth, sessions, provider events, tools, Git/worktrees, and host-side errors. Numbered files are older rotated segments. |
5154
| `copilot-logs/*.log` | Copilot SDK process logs that mention the selected session ID. A process log may contain other sessions too. |
52-
| `Window.log` | Renderer/client behavior: connections, session adapters, UI state, permissions, rendering, and client-side errors. |
53-
| `Shared.log` | Shared-process activity. Usually secondary evidence and often noisy. |
55+
| `vscode-logs/Window/*` | Current and rotated files from the Window log group, including renderer/client behavior, network activity, views, and other window-owned logs. |
56+
| `vscode-logs/Shared/*` | Current and rotated files from the Shared log group. Usually secondary evidence and often noisy. |
5457
| `Agent Host (<name>).log` | Forwarded logs from a named remote Agent Host. |
5558
| `remote-agenthost.log` | A directly downloaded remote `agenthost.log`, when available. |
5659

@@ -62,9 +65,9 @@ Window/client <-> AHP <-> Agent Host process <-> Copilot SDK
6265
- Turn or provider behavior: `events.jsonl`
6366
- Token/credit usage or cost questions: `usage.jsonl`
6467
- Client/server state or ordering: `ahp/*.jsonl`
65-
- Host implementation failure: `Agent Host.log`
68+
- Host implementation failure: `agenthost*.log`
6669
- SDK behavior: `copilot-logs/*.log`
67-
- UI behavior: `Window.log`
70+
- UI behavior: `vscode-logs/Window/renderer.log` and its rotated segments
6871
4. Search by the known time or ID, then follow the same operation into the adjacent layer.
6972

7073
Useful correlation fields include the raw session ID, session/chat URI, `turnId`, `interactionId`, tool/request IDs, JSON-RPC request `id`, AHP `serverSeq`, and event `id`/`parentId`.

‎.github/skills/chat-customizations-editor/SKILL.md‎

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,15 @@ Split-view management pane for AI customization items across workspace, user, ex
1111

1212
## Spec
1313

14-
**`src/vs/sessions/AI_CUSTOMIZATIONS.md`** — always read before making changes, always update after.
14+
**`src/vs/sessions/AI_CUSTOMIZATIONS.md`** — read for ownership and interface
15+
contracts. Update it only when those contracts change; behavior and regressions
16+
belong in focused tests.
1517

1618
## Key Folders
1719

1820
| Folder | What |
1921
|--------|------|
20-
| `src/vs/workbench/contrib/chat/common/` | `ICustomizationHarnessService`, `ISectionOverride`, `IStorageSourceFilter` — shared interfaces and filter helpers |
22+
| `src/vs/workbench/contrib/chat/common/` | `ICustomizationHarnessService`, `ISectionOverride`, `ICustomizationItemProvider` — shared interfaces |
2123
| `src/vs/workbench/contrib/chat/browser/aiCustomization/` | Management editor, list widgets (prompts, MCP, plugins), harness service registration |
2224
| `src/vs/sessions/contrib/chat/browser/` | Sessions-window overrides (harness service, workspace service) |
2325
| `src/vs/sessions/contrib/sessions/browser/` | Sessions tree view counts and toolbar |
@@ -26,26 +28,25 @@ When changing harness descriptor interfaces or factory functions, verify both co
2628

2729
## Key Interfaces
2830

29-
- **`IHarnessDescriptor`** — drives all UI behavior declaratively (hidden sections, button overrides, file filters, agent gating). See spec for full field reference.
31+
- **`IHarnessDescriptor`** — drives harness behavior declaratively (hidden sections, button overrides, item providers, agent gating). See spec for the stable ownership contract.
3032
- **`ISectionOverride`** — per-section button customization (command invocation, root file creation, type labels, file extensions).
31-
- **`IStorageSourceFilter`** — controls which storage sources and user roots are visible per harness/type.
32-
- **`IExternalCustomizationItemProvider`** / **`IExternalCustomizationItem`** — internal interfaces (in `customizationHarnessService.ts`) for extension-contributed providers that supply items directly. These mirror the proposed extension API types.
33+
- **`ICustomizationItemProvider`** / **`ICustomizationItem`** — internal interfaces (in `customizationHarnessService.ts`) for extension-contributed providers that supply items directly. These mirror the proposed extension API types.
3334

3435
Principle: the UI widgets read everything from the descriptor — no harness-specific conditionals in widget code.
3536

3637
## Extension API (`chatSessionCustomizationProvider`)
3738

38-
The proposed API in `src/vscode-dts/vscode.proposed.chatSessionCustomizationProvider.d.ts` lets extensions register customization providers. Changes to `IExternalCustomizationItem` or `IExternalCustomizationItemProvider` must be kept in sync across the full chain:
39+
The proposed API in `src/vscode-dts/vscode.proposed.chatSessionCustomizationProvider.d.ts` lets extensions register customization providers. Changes to `ICustomizationItem` or `ICustomizationItemProvider` must be kept in sync across the full chain:
3940

4041
| Layer | File | Type |
4142
|-------|------|------|
4243
| Extension API | `vscode.proposed.chatSessionCustomizationProvider.d.ts` | `ChatSessionCustomizationItem` |
4344
| IPC DTO | `extHost.protocol.ts` | `IChatSessionCustomizationItemDto` |
4445
| ExtHost mapping | `extHostChatAgents2.ts` | `$provideChatSessionCustomizations()` |
4546
| MainThread mapping | `mainThreadChatAgents2.ts` | `provideChatSessionCustomizations` callback |
46-
| Internal interface | `customizationHarnessService.ts` | `IExternalCustomizationItem` |
47+
| Internal interface | `customizationHarnessService.ts` | `ICustomizationItem` |
4748

48-
When adding fields to `IExternalCustomizationItem`, update all five layers. The proposed API `.d.ts` is additive-only (new optional fields are backward-compatible and do not require a version bump).
49+
When adding fields to `ICustomizationItem`, update all five layers. The proposed API `.d.ts` is additive-only (new optional fields are backward-compatible and do not require a version bump).
4950

5051
## Testing
5152

‎.github/skills/sessions/SKILL.md‎

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -72,9 +72,26 @@ that preserve these boundaries:
7272
- Shared workbench changes represent shared capability, not Sessions-specific
7373
policy.
7474

75-
Update a specification when its architecture or durable behavior changes. Do not
76-
add implementation chronology, rejected approaches, or bug narratives to a
77-
specification.
75+
### Specification edit gate
76+
77+
Bug fixes do not update specifications when they restore an existing contract.
78+
Before editing an authoritative specification, identify all three:
79+
80+
1. the existing ownership, interface, lifecycle, state-machine, persistence, or
81+
cross-component contract that intentionally changes;
82+
2. the implementation surfaces affected by that contract change;
83+
3. why a regression test and a brief code comment cannot fully represent it.
84+
85+
If any answer is missing, leave the specification unchanged. Put concrete
86+
behavior in a focused test, keep a non-obvious implementation constraint beside
87+
the owning code, and preserve investigation history in the issue or pull
88+
request.
89+
90+
Update a specification only when component ownership, an interface or lifecycle
91+
contract, a state machine, persistence, or a cross-component invariant changes.
92+
Do not update specifications for styling, copy, action placement, telemetry
93+
fields, settings defaults, implementation algorithms, or individual bug fixes.
94+
Those details belong in code and focused tests.
7895

7996
## 5. Validate proportionally
8097

‎.github/skills/ui-scenario-validation/SKILL.md‎

Lines changed: 0 additions & 87 deletions
This file was deleted.

0 commit comments

Comments
 (0)