Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
51 commits
Select commit Hold shift + click to select a range
51f4edb
Upstream Code OSS changes from 1.111.0 to 1.118.0
positron-bot[bot] May 1, 2026
d9801f2
clean up compilation
positron-bot[bot] May 4, 2026
1c45b13
esbuild adaptations
jmcphers May 4, 2026
b0350b3
Merge remote-tracking branch 'origin/main' into merge/1.118.0
jmcphers May 6, 2026
5cb9420
remove positron-copilot-chat submodule
jmcphers May 6, 2026
0f6d611
update tasks
jmcphers May 6, 2026
2b342b1
re-introduce ESM dependency copy
jmcphers May 6, 2026
c74c8df
port changes from positron-copilot-chat
jmcphers May 6, 2026
17db8eb
no AI co-author, please
jmcphers May 6, 2026
5b06f92
remove copilot simulation test layers for LFS
jmcphers May 6, 2026
59be352
Merge remote-tracking branch 'origin/main' into merge/1.118.0
jmcphers May 7, 2026
b3dd4d8
Merge remote-tracking branch 'origin/main' into merge/1.118.0
jmcphers May 7, 2026
58c9a33
do not require VSCODE_QUALITY
jmcphers May 8, 2026
6cb26aa
Merge remote-tracking branch 'origin/main' into merge/1.118.0
jmcphers May 8, 2026
add881c
don't auto calculate dmg size
jmcphers May 12, 2026
38ead8c
is there like any upper bound on how big this thing can get
jmcphers May 12, 2026
808b115
Merge remote-tracking branch 'origin/main' into merge/1.118.0
jmcphers May 14, 2026
5706df9
remove duplicate static route
jmcphers May 14, 2026
6f5042a
this is stable now
jmcphers May 14, 2026
57431c9
skip disable migration
jmcphers May 14, 2026
ae08246
fix issue in experimentation service
jmcphers May 14, 2026
e298670
remove 'open in agents' entry point
jmcphers May 14, 2026
fbdd57a
use new docker image to pick up node version bump
jmcphers May 14, 2026
4d44713
tolerate missing timer service
jmcphers May 14, 2026
e56f2c3
no update check when no url
jmcphers May 14, 2026
231730e
update csp hash
jmcphers May 15, 2026
0e1acf2
fix unit test invocation with --no-sandbox
jmcphers May 15, 2026
cfc623c
Update docker tags
testlabauto May 18, 2026
ba06181
revert accidental reintroduction of submodule
jmcphers May 18, 2026
114b83f
fix unit test failues
jmcphers May 18, 2026
56c3b18
fix the extension host tests
jmcphers May 18, 2026
afae943
update test snapshots
jmcphers May 18, 2026
5732301
fix positron assistant tests
jmcphers May 19, 2026
0ad538a
adjust to notification center tests
jmcphers May 19, 2026
2f3412a
Merge remote-tracking branch 'origin/main' into merge/1.118.0
jmcphers May 20, 2026
573d3ef
fix duplicate identifier from upstream
jmcphers May 20, 2026
091e158
infra doesn't use toasts any more
jmcphers May 20, 2026
81bf1a2
sync with upstream readiness signal in frames
jmcphers May 20, 2026
0174cf0
Merge remote-tracking branch 'origin/main' into merge/1.118.0
jmcphers May 20, 2026
8e21385
fix python debug test
jmcphers May 20, 2026
cc44309
fix scroll restoration test
jmcphers May 20, 2026
875ac96
fix lightbulb locator in test
jmcphers May 20, 2026
18a71b0
suppress agents banner in startup/welcome
jmcphers May 20, 2026
36d4f6e
Merge remote-tracking branch 'origin/main' into merge/1.118.0
jmcphers May 20, 2026
20c1af4
update docker tag
jmcphers May 20, 2026
8beb51f
increase test timeout
jmcphers May 21, 2026
b021fea
fix conflicting nls keys for help/about
jmcphers May 21, 2026
f224673
restore webpack for python :-(
jmcphers May 21, 2026
dd9c4f5
transition 3 more extensions to esbuild
jmcphers May 21, 2026
3f1188b
fix copilot build steps for release
jmcphers May 21, 2026
5f4df92
fix some log noise
jmcphers May 21, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
109 changes: 96 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 @@ -89,6 +111,30 @@ agent-browser snapshot -i
- Code OSS uses the default user data directory. Unlike VS Code Insiders, you don't typically need `--user-data-dir` since there's usually only one Code OSS instance running.
- If you see "Sent env to running instance. Terminating..." it means Code OSS is already running and forwarded your args to the existing instance. Quit Code OSS and relaunch with the flag, or use `--user-data-dir=/tmp/code-oss-debug` to force a new instance.

## Launching the Agents App (Agents Window)

The Agents app is a separate workbench mode launched with the `--agents` flag. It uses a dedicated user data directory to avoid conflicts with the main Code OSS instance.

```bash
cd <repo-root> # the root of your VS Code checkout
./scripts/code.sh --agents --remote-debugging-port=9224
```

Wait for the window to fully initialize, then connect:

```bash
# Wait for Agents app 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)
agent-browser tab
agent-browser snapshot -i
```

**Tips:**
- The `--agents` flag launches the Agents workbench instead of the standard VS Code workbench.
- Set `VSCODE_SKIP_PRELAUNCH=1` to skip the compile step if you've already built.

## Launching VS Code Extensions for Debugging

To debug a VS Code extension via agent-browser, launch VS Code Insiders with `--extensionDevelopmentPath` and `--remote-debugging-port`. Use `--user-data-dir` to avoid conflicting with an already-running instance.
Expand All @@ -106,6 +152,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 +166,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 +255,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 +347,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
1 change: 0 additions & 1 deletion .claude/CLAUDE.md

This file was deleted.

1 change: 0 additions & 1 deletion .claude/skills/launch

This file was deleted.

1 change: 1 addition & 0 deletions .eslint-ignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
**/extensions/**/*.d.ts
**/extensions/**/build/**
**/extensions/**/colorize-fixtures/**
**/extensions/copilot/**
**/extensions/css-language-features/server/test/pathCompletionFixtures/**
**/extensions/html-language-features/server/lib/jquery.d.ts
**/extensions/html-language-features/server/src/test/pathCompletionFixtures/**
Expand Down
Loading
Loading