Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
59 commits
Select commit Hold shift + click to select a range
12b11d2
Add availableModels to routerDecisionRestricted telemetry
Apr 28, 2026
a8ed6f8
Revert to previous vscode-markdown-languageserver
mjbvz Apr 29, 2026
82326bc
Specify max chars in askQuestions tool description, don't truncate (#…
meganrogge Apr 29, 2026
8ee6428
Merge pull request #313132 from microsoft/aashnagarg/router-restricte…
aashna Apr 29, 2026
75ec86b
agentHost: implement plan and native autopilot modes
connor4312 Apr 29, 2026
e8825bf
Merge remote-tracking branch 'origin/main' into connor4312/ah-plan-mode
connor4312 Apr 29, 2026
c1ba1db
add spacing between profile and update button (#313294)
justschen Apr 29, 2026
3cb650c
Enable external ingest for non-file resources too
mjbvz Apr 29, 2026
6691e81
Add modeChanged to request telemetry (#312554)
chrmarti Apr 29, 2026
d3119d4
Include the `isAvailable` check in the codebase timeout
mjbvz Apr 29, 2026
4a8cccf
Use tsgo for typechecking copilot
mjbvz Apr 29, 2026
c28b221
UBB styling fixes (#313304)
pwang347 Apr 29, 2026
3b7dc50
use null
mjbvz Apr 29, 2026
60cabe8
hide unsupported customizations categories in Agents app (harness-bas…
joshspicer Apr 29, 2026
de1f8b1
fix updating active harness wrt customizations (#313289)
joshspicer Apr 29, 2026
e8848aa
comments and polish
connor4312 Apr 29, 2026
7afb4be
Apply suggestion from @Copilot
mjbvz Apr 29, 2026
65b663a
Apply suggestion from @Copilot
mjbvz Apr 29, 2026
b8598f9
Merge pull request #313311 from mjbvz/dev/mjbvz/main-quail
mjbvz Apr 29, 2026
9d9b679
Update CODENOTIFY with more integrated browser items (#313212)
jruales Apr 29, 2026
ade6340
Recover from terminal hangs when shell integration breaks or the pty …
meganrogge Apr 29, 2026
e35f3c6
Merge branch 'main' into dev/mjbvz/arbitrary-ant
mjbvz Apr 29, 2026
6a826ef
Remove set -e guidance from all shells and prevent reusing dead termi…
meganrogge Apr 29, 2026
7317d8a
Merge pull request #313308 from microsoft/dev/mjbvz/equal-cougar
mjbvz Apr 29, 2026
062d81f
Make sure we install root build tools
mjbvz Apr 29, 2026
f5e05a0
chore: migrate agent-browser to @playwright/cli (#313316)
TylerLeonhardt Apr 29, 2026
0f15f3b
Merge branch 'main' into dev/mjbvz/copilot-ts-go
mjbvz Apr 29, 2026
81b30fc
gradient input button in regular chat panel too (#313306)
justschen Apr 29, 2026
93711c3
test and tweak to ap answer
connor4312 Apr 29, 2026
af74f12
Merge pull request #313329 from microsoft/dev/mjbvz/arbitrary-ant
mjbvz Apr 29, 2026
9cd698c
Sync built-in skills to agent hosts and add skill buttons (#313277)
roblourens Apr 29, 2026
f1def14
update
connor4312 Apr 29, 2026
41499ac
ci: drop VSCODE_OSS token conditional from pr.yml compile job (#313314)
Yoyokrazy Apr 29, 2026
ac56466
Merge branch 'main' into dev/mjbvz/copilot-ts-go
mjbvz Apr 29, 2026
fe6f5ab
Revert tabs -> spaces
mjbvz Apr 29, 2026
44dda2c
add enabled property to ICustomAgent (#313328)
aeschli Apr 29, 2026
d934e3d
Fix bad merge
mjbvz Apr 29, 2026
9569e37
Restore formatting
mjbvz Apr 29, 2026
06d480b
ask question tool in autopilot always returns user unavailable messag…
justschen Apr 29, 2026
e411488
Pick up latest TS versions
mjbvz Apr 29, 2026
c4ffdb5
Merge pull request #313301 from microsoft/connor4312/ah-plan-mode
connor4312 Apr 29, 2026
fbce3ed
Support browser context attachment (#313315)
kycutler Apr 29, 2026
4a06f62
Fix `try agents` centering
mjbvz Apr 29, 2026
13e5071
Merge pull request #313318 from microsoft/dev/mjbvz/copilot-ts-go
mjbvz Apr 29, 2026
d7f8137
Add groups for md extension configuration
mjbvz Apr 29, 2026
dfbb7bc
fix: use exact match for Responses API tool search model IDs (#313357)
bhavyaus Apr 29, 2026
86599c8
Merge pull request #313362 from mjbvz/dev/mjbvz/romantic-clownfish
mjbvz Apr 29, 2026
e5c31ee
Merge pull request #313356 from microsoft/dev/mjbvz/wily-capybara
mjbvz Apr 29, 2026
52947bb
OTel: replace string literals with typed constants
zhichli Apr 29, 2026
963e7de
Add otel skill for Copilot Chat OpenTelemetry instrumentation
zhichli Apr 29, 2026
4a4c2ac
sessions: deduplicate sessions across providers (#313366)
connor4312 Apr 29, 2026
b9acc7f
Remove polling hint from run_in_terminal system prompts (#313374)
meganrogge Apr 29, 2026
4cd66e0
OTel docs: align agent_monitoring docs with current implementation
zhichli Apr 29, 2026
298654b
OTel: address PR review (typed SpanStatusCode, doc accuracy)
zhichli Apr 29, 2026
b3af291
Merge pull request #313365 from microsoft/dev/mjbvz/fixed-hawk
mjbvz Apr 29, 2026
9b81148
Fix DisposableStore reference leak in terminal execute strategies (#3…
meganrogge Apr 29, 2026
6fdbdc2
Fix flaky statusbar smoke test (TOCTOU race in click) (#313141)
roblourens Apr 30, 2026
fd6f65c
Detach rewriter: also wrap sync-mode commands ending in trailing & (#…
meganrogge Apr 30, 2026
639691f
Merge pull request #313383 from zhichli/zhichli/otel-skill
zhichli Apr 30, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
191 changes: 89 additions & 102 deletions .agents/skills/launch/SKILL.md

Large diffs are not rendered by default.

4 changes: 4 additions & 0 deletions .github/CODENOTIFY
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,9 @@ src/vs/workbench/contrib/scm/** @lszomoru
src/vs/workbench/contrib/update/browser/releaseNotesEditor.ts @alexr00 @joaomoreno
src/vs/workbench/contrib/preferences/** @rzhao271

# Sessions Contributions
src/vs/sessions/contrib/browserView/** @kycutler @jruales

# Build
build/azure-pipelines/** @lszomoru
build/azure-pipelines/common/sanity-tests.yml @dmitrivMS
Expand All @@ -65,6 +68,7 @@ extensions/github-authentication/** @TylerLeonhardt
extensions/git/** @lszomoru
extensions/git-base/** @lszomoru
extensions/github/** @lszomoru
extensions/vscode-api-tests/src/singlefolder-tests/browser*.test.ts @kycutler @jruales

# Testing
test/sanity/** @dmitrivMS
22 changes: 12 additions & 10 deletions .github/skills/auto-perf-optimize/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
---
name: auto-perf-optimize
description: "Run agent-driven VS Code performance or memory investigations. Use when asked to launch Code OSS, automate a VS Code scenario, run the Chat memory smoke runner, capture renderer heap snapshots, take workflow screenshots, compare run summaries, or drive a repeatable scenario before heap-snapshot analysis."
metadata:
allowed-tools: Bash(npx @playwright/cli:*)
---

# VS Code Performance Workflow
Expand All @@ -20,7 +22,7 @@ Do not use this skill when snapshots already exist and the user only wants heap
## The Story

1. **Define the scenario.** Write down one warmup action, one repeatable iteration, and one quiescent point where it is fair to force GC and sample memory.
2. **Develop the automation.** Start with a tiny no-snapshot run. If it fails or the UI state is uncertain, keep the Code window open, connect agent-browser to the same CDP port, take workspace-local screenshots, inspect snapshots, and update the runner's selectors/waits.
2. **Develop the automation.** Start with a tiny no-snapshot run. If it fails or the UI state is uncertain, keep the Code window open, connect `@playwright/cli` to the same CDP port, take workspace-local screenshots, inspect snapshots, and update the runner's selectors/waits.
3. **Run a fast smoke.** Disable heap snapshots first. Prove the scenario completes and the artifact summary says what you think it says.
4. **Capture targeted snapshots.** Snapshot a warmed-up baseline and a later iteration. Do not snapshot every sample unless necessary; snapshots are huge and slow.
5. **Verify the run.** Inspect `summary.json` and screenshots. Do not analyze a failed login, trust prompt, stuck progress row, or wrong UI state.
Expand Down Expand Up @@ -123,20 +125,20 @@ Suggested watch loop for the bundled Chat runner:
node .github/skills/auto-perf-optimize/scripts/chat-memory-smoke.mts --keep-open --iterations 1 --no-heap-snapshots --port 9224 --output .build/chat-memory-smoke/watch-chat
```

While that Code window is open, inspect it with agent-browser from the repo root:
While that Code window is open, inspect it with `@playwright/cli` from the repo root:

```bash
npx agent-browser connect 9224
npx agent-browser tab
npx agent-browser snapshot -i
npx agent-browser screenshot .build/chat-memory-smoke/watch-chat/agent-browser-observation.png
npx @playwright/cli attach --cdp=http://127.0.0.1:9224
npx @playwright/cli tab-list
npx @playwright/cli snapshot
npx @playwright/cli screenshot --filename=.build/chat-memory-smoke/watch-chat/observation.png
```

Agent-browser checkpoints:
`@playwright/cli` checkpoints:

- Run `tab` first. If the selected target is `about:blank` or a webview instead of the workbench, switch targets before trusting snapshots.
- Use `snapshot -i` to rediscover buttons, textboxes, list rows, webviews, and current accessible names. Prefer discovered state over stale selectors.
- Save screenshots inside the runner output folder or another workspace-local `.build/...` folder. Do not use `/tmp` for screenshots you expect the user to review.
- Run `tab-list` first. If the selected target is `about:blank` or a webview instead of the workbench, switch targets before trusting snapshots.
- Use `snapshot` to rediscover buttons, textboxes, list rows, webviews, and current accessible names. Prefer discovered state over stale selectors.
- Save screenshots inside the runner output folder or another workspace-local `.build/...` folder. Do not use `/tmp` for screenshots you expect the user to review. The output directory must already exist — `screenshot --filename` will fail with `ENOENT` if it does not. Create it with `mkdir -p <dir>` first.
- If the script is stuck, capture a screenshot and read the incremental `summary.json` before killing the window. The last submitted turn and last screenshot usually identify the missing wait condition.
- If auth is required, use `--keep-open`, let the user sign in once in the persistent default profile, close the window, then rerun the fast smoke.

Expand Down
17 changes: 9 additions & 8 deletions .github/skills/chat-customizations-editor/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
---
name: chat-customizations-editor
description: Use when working on the Chat Customizations editor — the management UI for agents, skills, instructions, hooks, prompts, MCP servers, and plugins.
metadata:
allowed-tools: Bash(npx @playwright/cli:*)
---

# Chat Customizations Editor
Expand Down Expand Up @@ -150,30 +152,29 @@ See the `sessions` skill for sessions-window specific guidance.

Component fixtures use mock data and a fixed container size. Layout bugs caused by reflow timing, real data shapes, or narrow window sizes often **don't reproduce in fixtures**. When a user reports a broken layout, debug in the live Code OSS product.

For launching Code OSS with CDP and connecting `agent-browser`, see the **`launch` skill**. Use `--user-data-dir /tmp/code-oss-debug` to avoid colliding with an already-running instance from another worktree.
For launching Code OSS with CDP and connecting `@playwright/cli`, see the **`launch` skill**. Use `--user-data-dir /tmp/code-oss-debug` to avoid colliding with an already-running instance from another worktree.

### Navigating to the customizations editor

After connecting, use `snapshot -i` to find the "Open Customizations" button (in the Chat panel header), then click it. To switch sections, use `eval` with a DOM click since sidebar items aren't interactive refs:
After connecting, use `snapshot` to find the "Open Customizations" button (in the Chat panel header), then click it. To switch sections, use `eval` with a DOM click since sidebar items aren't interactive refs:

```bash
npx agent-browser eval "const items = [...document.querySelectorAll('.section-list-item')]; \
items.find(el => el.textContent?.includes('MCP'))?.click();"
npx @playwright/cli eval "(() => { const items = [...document.querySelectorAll('.section-list-item')]; items.find(el => el.textContent?.includes('MCP'))?.click(); })()"
```

### Inspecting widget layout

`agent-browser eval` doesn't always print return values. Use `document.title` as a return channel:
`@playwright/cli eval` wraps the expression in `() => (...)` — use an IIFE for multi-statement code. Use `document.title` as a return channel:

```bash
npx agent-browser eval "const w = document.querySelector('.mcp-list-widget'); \
npx @playwright/cli eval "(() => { const w = document.querySelector('.mcp-list-widget'); \
const lc = w?.querySelector('.mcp-list-container'); \
const rows = lc?.querySelectorAll('.monaco-list-row'); \
document.title = 'DBG:rows=' + (rows?.length ?? -1) \
+ ',listH=' + (lc?.offsetHeight ?? -1) \
+ ',seStH=' + (lc?.querySelector('.monaco-scrollable-element')?.style?.height ?? '') \
+ ',wH=' + (w?.offsetHeight ?? -1);"
npx agent-browser eval "document.title" 2>&1
+ ',wH=' + (w?.offsetHeight ?? -1); })()"
npx @playwright/cli eval "document.title" 2>&1
```

Key diagnostics:
Expand Down
Loading
Loading