Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
161 commits
Select commit Hold shift + click to select a range
8e70eae
add agent sessions functionality and corresponding tests
osortega Feb 27, 2026
53899ef
feat: add end-to-end tests for agent sessions window
osortega Feb 27, 2026
c8944c4
feat: enhance scenario parser to support preconditions and update rel…
osortega Feb 27, 2026
5e63171
feat: update launchSessionsWindow to conditionally include ROOT and a…
osortega Feb 27, 2026
76d0849
feat: update launchSessionsWindow to use a timestamped temporary dire…
osortega Feb 27, 2026
93acadb
feat: enhance launchSessionsWindow to improve window handling and inc…
osortega Feb 27, 2026
d87339d
feat: update launchSessionsWindow to set timeout to 0 and improve win…
osortega Feb 27, 2026
100d174
feat: pre-seed application storage to skip welcome/sign-in overlay in…
osortega Feb 27, 2026
d373331
feat: add mock GitHub authentication provider and update activation e…
osortega Feb 27, 2026
d90e6b7
feat: enhance launchSessionsWindow with detailed logging for window e…
osortega Feb 27, 2026
43f67f5
feat: update mock chat provider and session app to specify VS Code en…
osortega Feb 27, 2026
ab566bf
feat: update mock chat provider and session app to enhance authentica…
osortega Feb 27, 2026
0a9a005
feat: refactor welcome overlay handling to use SQLite storage and imp…
osortega Feb 27, 2026
cf97138
feat: implement mock Copilot API routes to simulate valid sessions du…
osortega Feb 27, 2026
c568741
feat: add 'skip-sessions-welcome' option to bypass welcome overlay du…
osortega Feb 27, 2026
4284973
Remove outdated E2E scenario files for empty state, active workspace,…
osortega Feb 27, 2026
cbb10cd
feat(e2e): enhance error handling with screenshot capture on failure
osortega Feb 27, 2026
75c49fc
feat(e2e): increase timeout for window loading and enhance window sel…
osortega Feb 27, 2026
f69e724
feat(e2e): improve window handling and logging in session launch process
osortega Feb 27, 2026
f1b8aff
feat(e2e): update session window launch logic to improve rendering ti…
osortega Feb 27, 2026
e9f1a0b
Enhance logging in launchSessionsWindow for better debugging
osortega Feb 27, 2026
c54a29b
refactor: streamline session window handling in e2e tests
osortega Feb 27, 2026
72a950d
feat: enhance sessionApp to launch VS Code as a child process with CD…
osortega Feb 27, 2026
3f07cc1
Refactor code structure for improved readability and maintainability
osortega Feb 27, 2026
c1dedd5
feat: add .gitignore to exclude output and PNG files from e2e tests
osortega Feb 28, 2026
9a92c77
Refactor code structure for improved readability and maintainability
osortega Feb 28, 2026
c73f7cd
docs: update README.md to enhance architecture overview and test run …
osortega Feb 28, 2026
c7e9df6
feat: add scenario for disabling Add Run Action button when switching…
osortega Feb 28, 2026
cffc73d
Remove obsolete end-to-end test files for session scenarios and sessi…
osortega Feb 28, 2026
4ce9702
refactor: update scenario steps for Cloud target to improve clarity a…
osortega Feb 28, 2026
e26795c
fix: correct verification step for Add Run Action button state when s…
osortega Feb 28, 2026
358b8cd
fix: ensure Add Run Action button remains disabled when switching bac…
osortega Feb 28, 2026
df35dd9
feat: add initial end-to-end test scenarios and configuration files
osortega Mar 3, 2026
85852c6
Remove empty scenario files
osortega Mar 3, 2026
ca6f15d
Revert test/automation and test/smoke changes to match main
osortega Mar 3, 2026
22045f2
Merge remote-tracking branch 'origin/main' into copilot-worktree-2026…
osortega Mar 3, 2026
891f631
Add SessionsBrowserMain and related imports for session management
osortega Mar 3, 2026
71eca7d
Add Sessions web entry point and supporting scripts for session manag…
osortega Mar 3, 2026
4b93e8f
Fix: update open function call to use default export for URL opening
osortega Mar 3, 2026
63073c9
Refactor: update CSS module collection to use tinyglobby and add fall…
osortega Mar 3, 2026
4ee10a3
Refactor: update getSessionsHTML to improve CSS module handling and f…
osortega Mar 3, 2026
884c588
Refactor: replace INativeEnvironmentService with IWorkbenchEnvironmen…
osortega Mar 3, 2026
80e30be
Fix: enhance welcome overlay skip functionality for automated tests w…
osortega Mar 3, 2026
6794e9a
Fix: add console log for creating Sessions workbench in SessionsBrows…
osortega Mar 3, 2026
692fb00
Refactor: update isSessionsWindow getter to use payload for dynamic v…
osortega Mar 3, 2026
c3c27e0
Refactor code structure for improved readability and maintainability
osortega Mar 4, 2026
479b002
Add E2E test runner for Agent Sessions and define UI structure in YAML
osortega Mar 4, 2026
94742ca
Refactor code structure and remove redundant sections for improved re…
osortega Mar 4, 2026
a7de463
Add multiple Playwright YAML configuration files for session manageme…
osortega Mar 4, 2026
4d01b99
Add new Playwright page configurations for session management and fol…
osortega Mar 4, 2026
55fe7db
Add multiple Playwright YAML configuration files for session manageme…
osortega Mar 4, 2026
a643d56
Add new Playwright CLI page configurations with session management an…
osortega Mar 4, 2026
12433ef
Add multiple Playwright configuration files for session management an…
osortega Mar 4, 2026
31025c2
Add multiple Playwright YAML configuration files for session manageme…
osortega Mar 4, 2026
b4194d1
Add multiple Playwright configuration files for session management an…
osortega Mar 4, 2026
cf8edf1
Remove .playwright-cli from git and add to .gitignore
osortega Mar 4, 2026
2a4fe89
Remove obsolete failure and session images from the repository
osortega Mar 4, 2026
0d358e4
Remove old Electron-based E2E infrastructure, update README
osortega Mar 4, 2026
6181c6b
Add worked example to E2E README
osortega Mar 4, 2026
1259f94
Remove unused data-testid attributes from Sessions UI
osortega Mar 4, 2026
8368928
Save failure screenshots to out/ instead of repo root
osortega Mar 4, 2026
ee7cdeb
Rename run.js to run.cjs for CommonJS compatibility
osortega Mar 4, 2026
72d5ba0
Add E2E scenarios for cloud target and repository picker functionality
osortega Mar 4, 2026
c1242da
Make button matching case-insensitive and trim whitespace
osortega Mar 4, 2026
0eec305
Update scenario title to reflect instructions for button click
osortega Mar 4, 2026
2f34c24
Log snapshot filenames per step for debugging
osortega Mar 4, 2026
4012d3c
Strip codicon/icon characters when matching button labels
osortega Mar 4, 2026
ee13146
remove
osortega Mar 4, 2026
b3a9a01
Add initial E2E test setup with multiple scenario files and error han…
osortega Mar 4, 2026
10dcfb9
Fix playwright-cli package name and GitHub URL in README
osortega Mar 4, 2026
070db45
Add package.json with playwright-cli dependency and test script
osortega Mar 4, 2026
6bf042d
Delete empty mds
osortega Mar 4, 2026
c3e56e2
Add initial E2E scenario files and remove obsolete scenario
osortega Mar 5, 2026
adbd8ca
Replace regex-based runner with compile-and-replay architecture
osortega Mar 5, 2026
84d2b3a
Fix quoted argument parsing in generate and test runners
osortega Mar 5, 2026
5ea9b21
Add E2E scenarios for repository picker and cloud target actions
osortega Mar 5, 2026
d48c405
Move .commands.json into scenarios/compiled/ subfolder
osortega Mar 5, 2026
b8932e4
Add missing path import in generate.cjs
osortega Mar 5, 2026
17a5f76
commands updates
osortega Mar 5, 2026
c677691
Add --skip-welcome flag to web server and serve script
osortega Mar 5, 2026
fafc62f
Add mock web extension for E2E testing
osortega Mar 5, 2026
f3a4923
Fix mock extension engines.vscode version to ^1.100.0
osortega Mar 5, 2026
4b72d7e
Open mock workspace folder when --mock is used
osortega Mar 5, 2026
7fc071c
Use mock-fs:// scheme instead of github-remote-file://
osortega Mar 5, 2026
4d61c82
Add Approach 2: Service overrides for E2E mock testing
osortega Mar 5, 2026
e755102
Remove unused Emitter import
osortega Mar 5, 2026
e6e0ccf
Mock IDefaultAccountService to hide Sign In button
osortega Mar 5, 2026
02d5d0e
Move test files to src/vs/sessions/test/e2e/
osortega Mar 5, 2026
6012003
Move TS test files to src/vs/sessions/test/
osortega Mar 5, 2026
31350b8
Add mock chat agent and folder pre-seeding via workbench contribution
osortega Mar 5, 2026
989a7e0
Fix IChatProgress import path (chatService/chatService.ts)
osortega Mar 5, 2026
df3421f
Register mock chat session content provider for copilotcli scheme
osortega Mar 5, 2026
81482f5
Fix response spinner by setting isCompleteObs after requestHandler
osortega Mar 5, 2026
6a7b8f1
Add in-memory session list via IChatSessionItemController
osortega Mar 5, 2026
4bf39b4
Track sessions from agent invoke, not requestHandler
osortega Mar 5, 2026
f85211c
Store in-memory session history for re-opening sessions
osortega Mar 5, 2026
80102b6
Add mock file changes driven by message keywords
osortega Mar 5, 2026
0fa3bb5
Provide detailed file changes with URIs in session items
osortega Mar 6, 2026
10235df
Add 5 E2E test scenarios for Sessions dogfooding
osortega Mar 6, 2026
ae5f23c
Rename compiled/ to generated/ for clarity
osortega Mar 6, 2026
b8a0a3b
Use natural language assertion for change count
osortega Mar 6, 2026
b3d3885
Add E2E test scenarios for chat functionality and session navigation
osortega Mar 6, 2026
1df31f9
scenarios update
osortega Mar 6, 2026
cca463e
Initial plan
Copilot Mar 6, 2026
cb162a4
Test updates
osortega Mar 6, 2026
e168dd0
feat: add Side option to minimap context menu
Copilot Mar 6, 2026
e3f5eb1
Tests updates
osortega Mar 6, 2026
43971f5
Test updates
osortega Mar 6, 2026
cb6ce4a
feat: add detailed logging for session grouping and repository info r…
osortega Mar 10, 2026
0677bc2
refactor: remove unnecessary logging in AgentSessionsDataSource
osortega Mar 10, 2026
6466d05
refactor: simplify repository info retrieval in AgentSessionsDataSource
osortega Mar 10, 2026
f3aa4e2
feat: implement repository name extraction from filesystem path in Ag…
osortega Mar 10, 2026
2b5e1b5
refactor: streamline repository name retrieval and enhance badge rege…
osortega Mar 10, 2026
290020d
feat: add logging for sessions without repository names in AgentSessi…
osortega Mar 10, 2026
db0a5a0
refactor: remove unnecessary logging for sessions without repository …
osortega Mar 10, 2026
ee3965a
feat: add grouping functionality for agent sessions by repository met…
osortega Mar 10, 2026
566e2f8
fix: address PR review feedback for repository grouping
osortega Mar 10, 2026
0dd6a8b
rename noRepoKey to unknownKey
osortega Mar 10, 2026
b803818
fix: use order-independent assertions for collision test
osortega Mar 10, 2026
badedc5
feat: hide redundant badge when grouped by repository
osortega Mar 10, 2026
63b4329
Merge branch 'main' of https://github.com/microsoft/vscode into copil…
osortega Mar 10, 2026
09df607
docs: enhance SKILL.md with screenshot guidance and restart workflow …
TylerLeonhardt Mar 10, 2026
3b88583
small session tweaks
benibenj Mar 10, 2026
2879e48
Merge pull request #300492 from microsoft/copilot/genetic-gibbon
osortega Mar 10, 2026
f22a902
Updates
osortega Mar 10, 2026
da5b9e8
CI
osortega Mar 10, 2026
2b19265
ignore scripts
osortega Mar 10, 2026
ae536d3
Exclude web.test.js
osortega Mar 10, 2026
03b38ff
Merge pull request #300576 from microsoft/benibenj/chief-aardwolf
benibenj Mar 10, 2026
d8b77d0
sessions: Update create-pr prompt and add sessions developer agent (#…
joshspicer Mar 10, 2026
2dc91fd
Reduce `IChatSessionsService` interface size
mjbvz Mar 10, 2026
7e36df6
fix issue where hidden tool call stays at the top (#300578)
justschen Mar 10, 2026
82e5207
npm i
osortega Mar 10, 2026
01c8939
Update
osortega Mar 10, 2026
68a4e6d
transpile
osortega Mar 10, 2026
6e4ca3b
Make `getChatSessionItem` return an async iterable
mjbvz Mar 10, 2026
46ec7ff
autopilot plan mode handoff (#300580)
justschen Mar 10, 2026
c90b72e
Add cancellation checks
mjbvz Mar 10, 2026
84d9d33
Merge pull request #300587 from mjbvz/dev/mjbvz/ill-herring
mjbvz Mar 10, 2026
6db7214
npm i
osortega Mar 11, 2026
b844d33
Fixes
osortega Mar 11, 2026
e6e173c
display
osortega Mar 11, 2026
7d59e8c
Ripgrep package version bump
osortega Mar 11, 2026
0091ab1
missing updates
osortega Mar 11, 2026
f3bfb1d
Revert
osortega Mar 11, 2026
14bd429
Update ModifiedFilesConfirmationTool to handle missing selectedCustom…
DonJayamanne Mar 11, 2026
6168074
Sessions: fix rough edges when sending new requests (#300600)
sandy081 Mar 11, 2026
ba3f49a
refactor: update chat session item handling to use new request struct…
TylerLeonhardt Mar 11, 2026
d2bdbb6
Merge pull request #298392 from microsoft/copilot-worktree-2026-02-27…
osortega Mar 11, 2026
5a84afd
Merge pull request #300603 from microsoft/osortega/magic-weasel
osortega Mar 11, 2026
b001c31
Merge branch 'main' into dev/mjbvz/modern-tiger
mjbvz Mar 11, 2026
b6813ea
Merge pull request #299654 from microsoft/copilot/add-side-option-min…
mjbvz Mar 11, 2026
a0d3bb6
Fix PSReadline for screen reader (#298881)
anthonykim1 Mar 11, 2026
1d31c3c
Revert "Re-remove webpack"
osortega Mar 11, 2026
06f181c
customizations: fix hook secondary text being truncated (#300614)
joshspicer Mar 11, 2026
4d50226
Correct wording for psreadline (#300637)
anthonykim1 Mar 11, 2026
9670b57
Merge pull request #300640 from microsoft/revert-300547-dev/mjbvz/glo…
mjbvz Mar 11, 2026
accb22d
Merge pull request #300592 from mjbvz/dev/mjbvz/modern-tiger
mjbvz Mar 11, 2026
8a57504
Fix clipped items in AI Customization tree (#300604)
joshspicer Mar 11, 2026
cbddc71
sessions: Improve built-in prompt override saving in AI Customization…
joshspicer Mar 11, 2026
112d873
Add onDidReceiveChatDebugEvent API to send chat customization events …
vijayupadya Mar 11, 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
85 changes: 72 additions & 13 deletions .agents/skills/launch/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,13 +23,31 @@ Automate VS Code (Code OSS) using agent-browser. VS Code is built on Electron/Ch
4. **Interact** using element refs
5. **Re-snapshot** after navigation or state changes

> **📸 Take screenshots for a paper trail.** Use `agent-browser screenshot <path>` at key moments — after launch, before/after interactions, and when something goes wrong. Screenshots provide visual proof of what the UI looked like and are invaluable for debugging failures or documenting what was accomplished.
>
> Save screenshots inside a timestamped subfolder so each run is isolated and nothing gets overwritten:
>
> ```bash
> # Create a timestamped folder for this run's screenshots
> SCREENSHOT_DIR="/tmp/code-oss-screenshots/$(date +%Y-%m-%dT%H-%M-%S)"
> mkdir -p "$SCREENSHOT_DIR"
>
> # Save a screenshot (path is a positional argument — use ./ or absolute paths)
> # Bare filenames without ./ may be misinterpreted as CSS selectors
> agent-browser screenshot "$SCREENSHOT_DIR/after-launch.png"
> ```

```bash
# Launch Code OSS with remote debugging
./scripts/code.sh --remote-debugging-port=9224

# Wait for Code OSS to start, retry until connected
for i in 1 2 3 4 5; do agent-browser connect 9224 2>/dev/null && break || sleep 3; done

# Verify you're connected to the right target (not about:blank)
# If `tab` shows the wrong target, run `agent-browser close` and reconnect
agent-browser tab

# Discover UI elements
agent-browser snapshot -i

Expand Down Expand Up @@ -81,6 +99,10 @@ Wait for the window to fully initialize, then connect:
```bash
# Wait for Code OSS to start, retry until connected
for i in 1 2 3 4 5; do agent-browser connect 9224 2>/dev/null && break || sleep 3; done

# Verify you're connected to the right target (not about:blank)
# If `tab` shows the wrong target, run `agent-browser close` and reconnect
agent-browser tab
agent-browser snapshot -i
```

Expand All @@ -106,6 +128,10 @@ code-insiders \

# Wait for VS Code to start, retry until connected
for i in 1 2 3 4 5; do agent-browser connect 9223 2>/dev/null && break || sleep 3; done

# Verify you're connected to the right target (not about:blank)
# If `tab` shows the wrong target, run `agent-browser close` and reconnect
agent-browser tab
agent-browser snapshot -i
```

Expand All @@ -116,6 +142,38 @@ agent-browser snapshot -i

**Without `--user-data-dir`**, VS Code detects the running instance, forwards the args to it, and exits immediately — you'll see "Sent env to running instance. Terminating..." and CDP never starts.

## Restarting After Code Changes

**After making changes to Code OSS source code, you must restart to pick up the new build.** The workbench loads the compiled JavaScript at startup — changes are not hot-reloaded.

### Restart Workflow

1. **Rebuild** the changed code
2. **Kill** the running Code OSS instance
3. **Relaunch** with the same flags

```bash
# 1. Ensure your build is up to date.
# Normally you can skip a manual step here and let ./scripts/code.sh in step 3
# trigger the build when needed (or run `npm run watch` in another terminal).

# 2. Kill the Code OSS instance listening on the debug port (if running)
pids=$(lsof -t -i :9224)
if [ -n "$pids" ]; then
kill $pids
fi

# 3. Relaunch
./scripts/code.sh --remote-debugging-port=9224

# 4. Reconnect agent-browser
for i in 1 2 3 4 5; do agent-browser connect 9224 2>/dev/null && break || sleep 3; done
agent-browser tab
agent-browser snapshot -i
```

> **Tip:** If you're iterating frequently, run `npm run watch` in a separate terminal so compilation happens automatically. You still need to kill and relaunch Code OSS to load the new build.

## Interacting with Monaco Editor (Chat Input, Code Editors)

VS Code uses Monaco Editor for all text inputs including the Copilot Chat input. Monaco editors require specific agent-browser techniques — standard `click`, `fill`, and `keyboard type` commands may not work depending on the VS Code build.
Expand Down Expand Up @@ -173,8 +231,12 @@ agent-browser snapshot -i
agent-browser type @e62 "Hello from George!"
```

> **Tip:** If `type @ref` silently drops text (the editor stays empty), the ref may be stale or the editor not yet ready. Re-snapshot to get a fresh ref and try again. You can verify text was entered using the snippet in "Verifying Text and Clearing" below.

However, **`type @ref` silently fails on Code OSS** — the command completes without error but no text appears. This also applies to `keyboard type` and `keyboard inserttext`. Always verify text appeared after typing, and fall back to the keyboard shortcut + `press` pattern if it didn't. The `press`-per-key approach works universally across all builds.

> **⚠️ Warning:** `keyboard type` can hang indefinitely in some focus states (e.g., after JS mouse events). If it doesn't return within a few seconds, interrupt it and fall back to `press` for individual keystrokes.

### Compatibility Matrix

| Method | VS Code Insiders | Code OSS |
Expand Down Expand Up @@ -261,30 +323,27 @@ On ultrawide monitors, the chat sidebar may be in the far-right corner of the CD
- `type @ref`, `keyboard type`, and `keyboard inserttext` work on VS Code Insiders but **silently fail on Code OSS** — they complete without error but no text appears. The `press`-per-key approach works universally.
- See the "Interacting with Monaco Editor" section above for the full compatibility matrix.

## Cleanup / Disconnect
## Cleanup

> **⚠️ IMPORTANT: Always quit Code OSS when you're done.** Code OSS is a full Electron app that consumes significant memory (often 1–4 GB+). Leaving it running in the background will slow your machine considerably. Don't just disconnect agent-browser — **kill the Code OSS process too.**
**Always kill the Code OSS instance when you're done.** Code OSS is a full Electron app that consumes significant memory (often 1–4 GB+). Leaving it running wastes resources and holds the CDP port.

```bash
# 1. Disconnect agent-browser
# Disconnect agent-browser
agent-browser close

# 2. QUIT Code OSS — do not leave it running!
# macOS: Cmd+Q in the app window, or:
# Find the process
lsof -i :9224 | grep LISTEN
# Kill it (replace <PID> with the actual PID)
kill <PID>

# Linux:
# kill $(lsof -t -i :9224)
# Kill the Code OSS instance listening on the debug port (if running)
# macOS / Linux:
pids=$(lsof -t -i :9224)
if [ -n "$pids" ]; then
kill $pids
fi

# Windows:
# taskkill /F /PID <PID>
# Or use Task Manager to end "Code - OSS"
```

If you launched with `./scripts/code.sh`, the process name is `Electron` or `Code - OSS`. Verify it's gone:
Verify it's gone:
```bash
# Confirm no process is listening on the debug port
lsof -i :9224 # should return nothing
Expand Down
15 changes: 15 additions & 0 deletions .github/agents/sessions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
---
name: Sessions Window Developer
description: Specialist in developing the Agent Sessions Window
---

# Role and Objective

You are a developer working on the 'sessions window'. Your goal is to make changes to the sessions window (`src/vs/sessions`), minimally editing outside of that directory.

# Instructions

1. **Always read the `sessions` skill first.** This is your primary source of truth for the sessions architecture.
- Invoke `skill: "sessions"`.
2. Focus your work on `src/vs/sessions/`.
3. Avoid making changes to core VS Code files (`src/vs/workbench/`, `src/vs/platform/`, etc.) unless absolutely necessary for the sessions window functionality.
66 changes: 66 additions & 0 deletions .github/workflows/sessions-e2e.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
name: Sessions E2E Tests

on:
pull_request:
branches:
- main
- 'release/*'
paths:
- 'src/vs/sessions/**'
- 'scripts/code-sessions-web.*'

permissions:
contents: read

concurrency:
group: sessions-e2e-${{ github.event.pull_request.number || github.sha }}
cancel-in-progress: true

jobs:
sessions-e2e:
name: Sessions E2E Tests
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6

- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version-file: .nvmrc

- name: Install build tools
run: sudo apt update -y && sudo apt install -y build-essential pkg-config libx11-dev libx11-xcb-dev libxkbfile-dev libnotify-bin libkrb5-dev xvfb

- name: Install dependencies
run: npm ci
env:
ELECTRON_SKIP_BINARY_DOWNLOAD: 1
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: Install build dependencies
run: npm ci
working-directory: build

- name: Transpile sources
run: npm run transpile-client

- name: Install E2E test dependencies
run: npm ci
working-directory: src/vs/sessions/test/e2e

- name: Install Playwright browsers
run: npx playwright install chromium

- name: Run Sessions E2E tests
run: xvfb-run npm test
working-directory: src/vs/sessions/test/e2e

- name: Upload failure screenshots
if: failure()
uses: actions/upload-artifact@v4
with:
name: sessions-e2e-failures
path: src/vs/sessions/test/e2e/out/failure-*.png
retention-days: 7
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ test-output.json
test/componentFixtures/.screenshots/*
!test/componentFixtures/.screenshots/baseline/
dist
.playwright-cli
.agents/agents/*.local.md
.claude/agents/*.local.md
.github/agents/*.local.md
Expand Down
2 changes: 1 addition & 1 deletion build/azure-pipelines/win32/codesign.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ async function main() {
// 2. Codesign Powershell scripts
// 3. Codesign context menu appx package (insiders only)
const codesignTask1 = spawnCodesignProcess(esrpCliDLLPath, 'sign-windows', codeSigningFolderPath, '*.dll,*.exe,*.node');
const codesignTask2 = spawnCodesignProcess(esrpCliDLLPath, 'sign-windows-appx', codeSigningFolderPath, '*.ps1');
const codesignTask2 = spawnCodesignProcess(esrpCliDLLPath, 'sign-windows-appx', codeSigningFolderPath, '*.ps1,*.psm1,*.psd1,*.ps1xml');
const codesignTask3 = process.env['VSCODE_QUALITY'] !== 'exploration'
? spawnCodesignProcess(esrpCliDLLPath, 'sign-windows-appx', codeSigningFolderPath, '*.appx')
: undefined;
Expand Down
12 changes: 12 additions & 0 deletions build/gulpfile.extensions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -309,6 +309,13 @@ async function buildWebExtensions(isWatch: boolean): Promise<void> {
{ ignore: ['**/node_modules'] }
);

// Find all webpack configs, excluding those that will be esbuilt
const esbuildExtensionDirs = new Set(esbuildConfigLocations.map(p => path.dirname(p)));
const webpackConfigLocations = (await nodeUtil.promisify(glob)(
path.join(extensionsPath, '**', 'extension-browser.webpack.config.js'),
{ ignore: ['**/node_modules'] }
)).filter(configPath => !esbuildExtensionDirs.has(path.dirname(configPath)));

const promises: Promise<unknown>[] = [];

// Esbuild for extensions
Expand All @@ -323,5 +330,10 @@ async function buildWebExtensions(isWatch: boolean): Promise<void> {
);
}

// Run webpack for remaining extensions
if (webpackConfigLocations.length > 0) {
promises.push(ext.webpackExtensions('packaging web extension', isWatch, webpackConfigLocations.map(configPath => ({ configPath }))));
}

await Promise.all(promises);
}
1 change: 1 addition & 0 deletions build/gulpfile.reh.ts
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,7 @@ const serverResourceIncludes = [
'out-build/vs/workbench/contrib/terminal/common/scripts/shellIntegration-rc.zsh',
'out-build/vs/workbench/contrib/terminal/common/scripts/shellIntegration-login.zsh',
'out-build/vs/workbench/contrib/terminal/common/scripts/shellIntegration.fish',
'out-build/vs/workbench/contrib/terminal/common/scripts/psreadline/**',

];

Expand Down
1 change: 1 addition & 0 deletions build/gulpfile.vscode.ts
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,7 @@ const vscodeResourceIncludes = [
'out-build/vs/workbench/contrib/terminal/common/scripts/*.psm1',
'out-build/vs/workbench/contrib/terminal/common/scripts/*.sh',
'out-build/vs/workbench/contrib/terminal/common/scripts/*.zsh',
'out-build/vs/workbench/contrib/terminal/common/scripts/psreadline/**',

// Accessibility Signals
'out-build/vs/platform/accessibilitySignal/browser/media/*.mp3',
Expand Down
Loading
Loading