Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1421 commits
Select commit Hold shift + click to select a range
5c84259
Debug Panel: oTel data source support and Import/export (#299256)
vijayupadya Mar 10, 2026
0f2bee1
Merge pull request #300297 from microsoft/copilot/impressed-tiger
osortega Mar 10, 2026
eb7e1c7
fix: chunk multiline PTY writes on macOS to avoid 1024-byte buffer co…
jcansdale Mar 10, 2026
018f88a
Remove unused import
mjbvz Mar 10, 2026
e2db449
Improve slash command render (#300287)
pwang347 Mar 10, 2026
b44b56d
Add deprecation message on registerChatSessionItemProvider
mjbvz Mar 10, 2026
34cee22
Merge branch 'main' into copilot/fix-tooltip-markdown-syntax
mjbvz Mar 10, 2026
a303f97
Don't use 'default'
mjbvz Mar 10, 2026
79c1456
Reduce any usage in consoleForwarder
mjbvz Mar 10, 2026
9ac9ae8
Reduce `any` usage in a few more tests
mjbvz Mar 10, 2026
f2bd744
Keep `.md` file extension as default extension
mjbvz Mar 10, 2026
f0df384
Reduce `....args: any[]` usage
mjbvz Mar 10, 2026
89508b2
Optimize discovery process (#300317)
pwang347 Mar 10, 2026
abe7e4b
Merge pull request #300288 from mjbvz/dev/mjbvz/daily-dormouse
mjbvz Mar 10, 2026
2ba34ab
Merge pull request #300343 from mjbvz/dev/mjbvz/spicy-wildebeest
mjbvz Mar 10, 2026
e9e3431
Merge pull request #300352 from mjbvz/dev/mjbvz/disturbed-mule
mjbvz Mar 10, 2026
f2b91b9
Merge pull request #300353 from mjbvz/dev/mjbvz/romantic-guineafowl
mjbvz Mar 10, 2026
261701a
mcp: move to askquestions for elicitations (#300294)
connor4312 Mar 10, 2026
5a356d2
Enhance quick suggestions with inline completions (#300371)
jrieken Mar 10, 2026
1124601
Revert "Debug Panel: oTel data source support and Import/export (#299…
sandy081 Mar 10, 2026
950ab07
Git - adopt the new package to use copy-on-write for the worktree inc…
lszomoru Mar 10, 2026
35e0427
Sessions - expose session base branch information (#300415)
lszomoru Mar 10, 2026
cba3c7a
Add API proposal version check (#300392)
alexr00 Mar 10, 2026
83e4102
Sessions - tweak toolbar actions (#300434)
lszomoru Mar 10, 2026
f316d9d
ci and PR review comments in agent feedback
benibenj Mar 10, 2026
40e2da7
Update src/vs/sessions/contrib/codeReview/browser/codeReviewService.ts
benibenj Mar 10, 2026
7cfab23
revert copilot suggestion
benibenj Mar 10, 2026
c8a2659
Merge pull request #300444 from microsoft/benibenj/proposed-lynx
benibenj Mar 10, 2026
54b762d
Rerun the failed API version check (#300443)
alexr00 Mar 10, 2026
526c24b
chat: refactor model picker delegate and improve picker UX (#300436)
sandy081 Mar 10, 2026
c56c7bc
Revert "Git - adopt the new package to use copy-on-write for the work…
lszomoru Mar 10, 2026
eed7ce6
Merge pull request #300350 from mjbvz/dev/mjbvz/appalling-tahr
mjbvz Mar 10, 2026
62fcd7c
Mode picker in Sessions app (#298199)
sandy081 Mar 10, 2026
e9eb2fd
config: make all settings experiment-aware by default (#300437)
sandy081 Mar 10, 2026
31fa18a
Update @vscode/codicons to version 0.0.45-14 (#300457)
mrleemurray Mar 10, 2026
4198c6b
Try fix workflow list (#300458)
alexr00 Mar 10, 2026
cb6ce4a
feat: add detailed logging for session grouping and repository info r…
osortega Mar 10, 2026
368df9e
hover for attach button in chat widget context action
benibenj 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
ce4a1cf
Revert "config: make all settings experiment-aware by default (#30043…
sandy081 Mar 10, 2026
3ef1baf
Consolidate MockChatService
mjbvz Mar 10, 2026
71d7496
chat: use softAssertNever for unknown response parts (#300470)
connor4312 Mar 10, 2026
5e86484
Merge pull request #300469 from microsoft/benibenj/coastal-coyote
benibenj Mar 10, 2026
e03506d
Browser: CDP over IPC (#300292)
kycutler Mar 10, 2026
9f946ce
fix: prevent local cwd evaluation in sessions window
benibenj Mar 10, 2026
3f2a0f6
Merge pull request #300472 from mjbvz/dev/mjbvz/stable-lark
mjbvz Mar 10, 2026
f3aa4e2
feat: implement repository name extraction from filesystem path in Ag…
osortega Mar 10, 2026
c2da267
[MCP_Sandboxing]Updating regex for extracting paths from sandbox erro…
dileepyavan 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
7daf926
Add telemetry for xterm imageAddon (#299017)
anthonykim1 Mar 10, 2026
ee3965a
feat: add grouping functionality for agent sessions by repository met…
osortega Mar 10, 2026
0cd1e59
Disable api-version-check for now
mjbvz 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
34bfd71
Revert "Revert "Debug Panel: oTel data source support and Import/expo…
vijayupadya Mar 10, 2026
b803818
fix: use order-independent assertions for collision test
osortega Mar 10, 2026
2eefd9e
Merge pull request #300495 from mjbvz/dev/mjbvz/fierce-hawk
mjbvz Mar 10, 2026
badedc5
feat: hide redundant badge when grouped by repository
osortega Mar 10, 2026
0a8edf7
plugins: allow updating agent plugins (#300344)
connor4312 Mar 10, 2026
cb61e0d
Fix source path duplication in NLS plugin source maps and add corresp…
jrieken Mar 10, 2026
929482d
Merge branch 'main' into dev/mjbvz/faithful-crow
mjbvz Mar 10, 2026
01eb53f
Bump xterm to take IME overflow fix (#300322)
anthonykim1 Mar 10, 2026
d42b123
Merge pull request #297570 from microsoft/copilot/fix-tooltip-markdow…
mjbvz Mar 10, 2026
82ee6eb
Bump the component-explorer group with 2 updates (#300168)
dependabot[bot] Mar 10, 2026
13262e3
fix `cannot read properties of undefined (reading 'getCell')` error t…
meganrogge Mar 10, 2026
97c94c2
Sessions - update context key calculation (#300514)
lszomoru Mar 10, 2026
db2c7ee
Update Fig spec for Azure Developer CLI (azd) (#299892)
JeffreyCA Mar 10, 2026
b50d56f
do not send freeform input for autoreply, just return (#300515)
meganrogge Mar 10, 2026
cfe3b32
Update action for the title bar (#300453)
dmitrivMS Mar 10, 2026
3aa9077
Merge pull request #300358 from mjbvz/dev/mjbvz/faithful-crow
mjbvz Mar 10, 2026
bcc83ce
Fix `cannot read properties of undefined (reading 'filter')` (#300518)
meganrogge Mar 10, 2026
ea9e938
chat: simplify symbol reference cache to an array (#300489)
connor4312 Mar 10, 2026
9a1fe57
Fix registerToolDefinition tools from default chat agent being filter…
bhavyaus Mar 10, 2026
f01d41c
Keep Chat customizations section selected while active (#300528)
joshspicer Mar 10, 2026
03968c2
Re-remove webpack
mjbvz Mar 10, 2026
d71bb75
Remove `await` in discovery phase (#300537)
pwang347 Mar 10, 2026
4863c50
Sessions - add prompt for the draft pull request (#300543)
lszomoru Mar 10, 2026
e01a900
Initial plan
Copilot Mar 10, 2026
72276c9
Fix issue #300500 by checking value of the chat entitlement context key
lammmab Mar 10, 2026
b971893
Log when `untitled` sessions cross the ext host boundary
mjbvz Mar 10, 2026
eab1e8b
Merge branch 'main' into affordance-fix
lammmab Mar 10, 2026
f6a8182
Remove one log
mjbvz Mar 10, 2026
a200e8b
ai-customizations: improve list visual scannability (#300551)
joshspicer Mar 10, 2026
ec2b57c
Merge pull request #300547 from mjbvz/dev/mjbvz/glorious-sparrow
mjbvz Mar 10, 2026
3681826
Fix terminal OverviewRulerRenderer crash on disposal
Copilot Mar 10, 2026
6097683
Merge pull request #300475 from microsoft/benibenj/northern-tahr
benibenj Mar 10, 2026
63b4329
Merge branch 'main' of https://github.com/microsoft/vscode into copil…
osortega Mar 10, 2026
3140ee0
Merge pull request #300562 from mjbvz/dev/mjbvz/tragic-tyrannosaurus
mjbvz 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
0d94646
Merge origin/main into copilot/start-image-display-implementation
rebornix 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
909a106
Use case insentive file uri compare in md extension
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
a440ae0
Add `min-release-age` in npmrc files
mjbvz 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
46af828
Apply suggestion from @Copilot
mjbvz Mar 11, 2026
e9b8279
Commit other npmrc files
mjbvz Mar 11, 2026
6597286
Merge pull request #300629 from mjbvz/dev/mjbvz/xenogeneic-silverfish
mjbvz Mar 11, 2026
599fc96
Fix the `github` extension for esbuild
mjbvz Mar 11, 2026
a04eb67
Merge pull request #296821 from tamuratak/make_markdown_range_link_work
mjbvz Mar 11, 2026
3709d98
Merge pull request #300641 from mjbvz/dev/mjbvz/fond-loon
mjbvz Mar 11, 2026
4d032af
Add ~/.copilot/hooks (#300663)
pwang347 Mar 11, 2026
2ecee7e
plugins: initial support for workspace plugins (#300585)
connor4312 Mar 11, 2026
15186d2
Merge pull request #300665 from mjbvz/dev/mjbvz/intellectual-snake
mjbvz Mar 11, 2026
7df4614
Experiment with switching markdown extension to use native privates
mjbvz Mar 11, 2026
deda22f
Merge pull request #300674 from mjbvz/dev/mjbvz/teenage-gamefowl
mjbvz Mar 11, 2026
c0be7bd
Add chat troubleshoot skill (#300639)
pwang347 Mar 11, 2026
47b668e
pin snapcraft docker image (#300704)
joaomoreno Mar 11, 2026
d8c1693
Sessions: reorder new chat pickers (#300737)
sandy081 Mar 11, 2026
e1a8feb
Update padding in chat welcome component for improved layout (#300735)
mrleemurray Mar 11, 2026
6a97d56
Merge pull request #300563 from lammmab/affordance-fix
jrieken Mar 11, 2026
84a04d1
Fix remote mode multi-file selection via Show Local dialog (#300408)
Copilot Mar 11, 2026
86343fc
Disables automatic component explorer updates
hediet Mar 11, 2026
9d5ebb8
Updates skill
hediet Mar 11, 2026
099d9c3
updates component explorer
hediet Mar 11, 2026
970c15e
updates package lock file
hediet Mar 11, 2026
f9b7df9
find agent instructions in parent folders (#300717)
aeschli Mar 11, 2026
3e89f06
Re-enable API proposal version check (#300716)
alexr00 Mar 11, 2026
e257955
Use context for line breaks computation (#293749)
aiday-mar Mar 11, 2026
755a419
Sessions - changes view improvements (#300780)
lszomoru Mar 11, 2026
39a834b
Add showUnavailableFeatured and showFeatured options to model picker …
sandy081 Mar 11, 2026
a5cf4dd
Sessions: update new chat isolation picker behavior (#300791)
sandy081 Mar 11, 2026
2f1d77a
Update assignee for ~capi labeled issues (#299531)
samvantran Mar 11, 2026
85b620a
Bump hono from 4.12.5 to 4.12.7 in /test/mcp (#300620)
dependabot[bot] Mar 11, 2026
aaa3025
Bump tar from 7.5.10 to 7.5.11 in /build/npm/gyp (#300619)
dependabot[bot] Mar 11, 2026
7e8b4cc
Bump actions/upload-artifact from 4 to 7 (#300760)
dependabot[bot] Mar 11, 2026
e7153ed
Bump actions/github-script from 7 to 8 (#300759)
dependabot[bot] Mar 11, 2026
aeef983
Revert decorationAddon.ts change, prepare for telemetry redaction fix
Copilot Mar 11, 2026
a3af286
Fix telemetry path redaction to preserve node_modules paths in full a…
Copilot Mar 11, 2026
1592b94
Fix `any` usages in the markdown preview sources
mjbvz Mar 11, 2026
393b54f
Bump minimatch from 3.1.2 to 3.1.5 in /test/automation (#300521)
dependabot[bot] Mar 11, 2026
be5d842
Add StaticChatSessionItemController helper for test
mjbvz Mar 11, 2026
81cd9fa
Add continue and rephrase actions to inline chat, enhance session man…
jrieken Mar 11, 2026
af32b7b
Revert "Add `min-release-age` in npmrc files"
mjbvz Mar 11, 2026
9831d8f
add support for running tasks on worktree creation
benibenj Mar 11, 2026
1f7105d
Address PR feedback: merge node_modules regexes, reorder logic, resto…
Copilot Mar 11, 2026
2a83745
Merge branch 'main' into fix/parameter-hints-word-wrap
mjbvz Mar 11, 2026
df48c4b
Sessions - refactor sync changes action (#300840)
lszomoru Mar 11, 2026
0a2e9ef
Merge pull request #300841 from mjbvz/dev/mjbvz/honest-thrush
mjbvz Mar 11, 2026
a9f97ee
Merge pull request #300847 from mjbvz/dev/mjbvz/conventional-damselfly
mjbvz Mar 11, 2026
c3f8358
Sessions - increase default width of auxiliary bar (#300848)
lszomoru Mar 11, 2026
7461493
Bump xterm to 6.1.0-beta.191 (#300822)
anthonykim1 Mar 11, 2026
7a090df
Re-remove webpack (again again)
mjbvz Mar 11, 2026
15c43cb
Merge pull request #300844 from mjbvz/dev/mjbvz/historical-gecko
mjbvz Mar 11, 2026
eda45ca
Sessions: Reduce width of empty state cursor (#300835)
hawkticehurst Mar 11, 2026
8dc072e
add denial details for auto-approval rules in command line tools (#30…
meganrogge Mar 11, 2026
f1428b9
Enables screenshot CI again
hediet Mar 11, 2026
7c08b33
update screenshot baselines from CI
hediet Mar 11, 2026
e478c84
Change default render mode for inline chat from 'zone' to 'hover'
jrieken Mar 11, 2026
466961c
remove hook command for sessionStart
benibenj Mar 11, 2026
71487d2
Rename isolation picker labels: Copilot CLI → Worktree, Local → Folde…
sandy081 Mar 11, 2026
772547f
make integrated browser attach to chat feature kb accessible (#300465)
meganrogge Mar 11, 2026
259358f
add autopilot back into copilot cli ui (#300596)
justschen Mar 11, 2026
56540e1
Add aria label hint for keyboard deletion of chat attachments (#299785)
Copilot Mar 11, 2026
5d3da23
Apply suggestion from @Copilot
benibenj Mar 11, 2026
8f44b60
increase model availability to lessen chance of bad terminal tool res…
meganrogge Mar 11, 2026
2f42f2e
Add sessions support to translation resources and update related logi…
TylerLeonhardt Mar 11, 2026
fe7157a
Merge pull request #300905 from microsoft/benibenj/military-rodent
benibenj Mar 11, 2026
ebaff58
Merge pull request #292258 from murataslan1/fix/parameter-hints-word-…
mjbvz Mar 11, 2026
383c174
Add proxy support to WebSocket (#298236)
chrmarti Mar 11, 2026
b49670d
Fix context indicator (#300917)
lramos15 Mar 11, 2026
5d56633
updates component explorer
hediet Mar 11, 2026
bf19d9d
askQuestions tool: default allowFreeformInput to true (#300923)
digitarald Mar 11, 2026
446c755
Using computed editor options instead of direct values (#300868)
aiday-mar Mar 11, 2026
898a015
make accessible view bigger (#300932)
meganrogge Mar 11, 2026
f144e45
Revert macOS chunking PR (#300933)
meganrogge Mar 11, 2026
cc5c2fd
Browser Zoom (#299161)
jruales Mar 11, 2026
ee699b7
Make chat sessions give a delta of what has changed
mjbvz Mar 11, 2026
47e20e1
Fix import
mjbvz Mar 11, 2026
121ed5f
Simplify `chat.autoReply`: skip questions instead of LLM-answering th…
digitarald Mar 12, 2026
d582a15
Allow vscode-sessions strings in the main bundle (#300944)
TylerLeonhardt Mar 12, 2026
8432b8b
plugins: support openplugin format (#300948)
connor4312 Mar 12, 2026
422d296
Support terminal creation on web worker extension host when there's r…
jeanp413 Mar 12, 2026
b8b027b
/yolo -> switches to bypass mode, /autopilot switches to autopilot (#…
justschen Mar 12, 2026
99c4016
when thinking is collapsed, make sure to show full tool info (#300952)
justschen Mar 12, 2026
3ce4949
Merge pull request #300559 from microsoft/copilot/fix-uncaught-typeer…
bryanchen-d Mar 12, 2026
bb5835f
support for chat customizations in parent repo folders (#300916)
aeschli Mar 12, 2026
cfff60f
Merge pull request #300860 from mjbvz/dev/mjbvz/heavy-swallow
mjbvz Mar 12, 2026
ac668ca
Distro Bump (#300964)
TylerLeonhardt Mar 12, 2026
346c218
Refactor image carousel: simplify architecture, fix review feedback
rebornix Mar 12, 2026
70b2564
feat: implement image carousel actions and keyboard navigation
rebornix Mar 12, 2026
c3d7346
feat: add image carousel project to i18n resources
rebornix Mar 12, 2026
68b4b79
show working progress more consistently (#300986)
justschen Mar 12, 2026
850a393
Apply suggestions from code review
rebornix Mar 12, 2026
b79bcf7
Merge pull request #300983 from microsoft/rebornix/hollow-tarantula-i…
rebornix Mar 12, 2026
8ca4fb2
Fix: comment typo in authIssuers proposal (#300899)
12LuA Mar 12, 2026
c7e0852
Debug Panel: Import cap and large file optimizations (#300949)
vijayupadya Mar 12, 2026
ec9a529
Add a simple log for when we can't get the output channel (#300969)
TylerLeonhardt Mar 12, 2026
85b156f
fix: move versioned folder check closer to the package task (#300685)
deepak1556 Mar 12, 2026
d7e0f77
Small improvements to browser zoom feature (#300973)
jruales Mar 12, 2026
d666fe6
feat: add assets for macOS 26 icon support (#300901)
deepak1556 Mar 12, 2026
cabe52d
Merge pull request #300845 from microsoft/joh/ideological-albatross
jrieken Mar 12, 2026
9c8a42f
chat rendering fix for working + cli specific issues (#301015)
justschen Mar 12, 2026
9621f35
Revert "Using computed editor options instead of direct values (#300…
justschen Mar 12, 2026
6f7de9c
Move troubleshoot skill to files-based approach (#300907)
pwang347 Mar 12, 2026
03d87f6
plugins: support plugin specific paths, adding a plugin directly (#30…
connor4312 Mar 12, 2026
2f278ec
Restore safer behavior for now
mjbvz Mar 12, 2026
d919578
Merge pull request #300946 from mjbvz/dev/mjbvz/yeasty-cockroach
mjbvz Mar 12, 2026
4f6fa90
Add Copilot review instructions for OSS license files (#300954)
benvillalobos Mar 12, 2026
0f6ff3c
fix: update chat image carousel tag from 'preview' to 'experimental' …
rebornix Mar 12, 2026
ccc96be
putting line breaks options into computed editor options object (#301…
aiday-mar Mar 12, 2026
38f689e
chore: align install steps (#301147)
rzhao271 Mar 12, 2026
6eabb60
Add fetch service observability (#301154)
lramos15 Mar 12, 2026
197fc99
Add telemetry to Chat Customizations editor (#301173)
joshspicer Mar 12, 2026
8c731ad
Pass URI of skipped files (#301177)
pwang347 Mar 12, 2026
2d08838
plugin system: add support for rules/instructions (#301172)
connor4312 Mar 12, 2026
c11185f
chore: run npm audit fix (#301189)
rzhao271 Mar 12, 2026
e4a2b6b
Debug panel: Add telemetry and modal dialog for import error (#301190)
vijayupadya Mar 12, 2026
ffe13a4
Add inline hover action buttons to Chat Customizations views (#301171)
joshspicer Mar 12, 2026
41c997a
Enrich terminal tool result metadata for AI agent workflows (#300034)
xingsy97 Mar 12, 2026
34a3958
Fix listener leak in chat inline anchor widgets
bryanchen-d Mar 15, 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
  •  
  •  
  •  
350 changes: 350 additions & 0 deletions .agents/skills/launch/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,350 @@
---
name: launch
description: "Launch and automate VS Code (Code OSS) using agent-browser via Chrome DevTools Protocol. Use when you need to interact with the VS Code UI, automate the chat panel, test UI features, or take screenshots of VS Code. Triggers include 'automate VS Code', 'interact with chat', 'test the UI', 'take a screenshot', 'launch Code OSS with debugging'."
metadata:
allowed-tools: Bash(agent-browser:*), Bash(npx agent-browser:*)
---

# VS Code Automation

Automate VS Code (Code OSS) using agent-browser. VS Code is built on Electron/Chromium and exposes a Chrome DevTools Protocol (CDP) port that agent-browser can connect to, enabling the same snapshot-interact workflow used for web pages.

## Prerequisites

- **`agent-browser` must be installed.** It's listed in devDependencies — run `npm install` in the repo root. Use `npx agent-browser` if it's not on your PATH, or install globally with `npm install -g agent-browser`.
- **For Code OSS (VS Code dev build):** The repo must be built before launching. `./scripts/code.sh` runs the build automatically if needed, or set `VSCODE_SKIP_PRELAUNCH=1` to skip the compile step if you've already built.
- **CSS selectors are internal implementation details.** Selectors like `.interactive-input-part`, `.interactive-input-editor`, and `.part.auxiliarybar` used in `eval` commands are VS Code internals that may change across versions. If they stop working, use `agent-browser snapshot -i` to re-discover the current DOM structure.

## Core Workflow

1. **Launch** Code OSS with remote debugging enabled
2. **Connect** agent-browser to the CDP port
3. **Snapshot** to discover interactive elements
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

# Focus the chat input (macOS)
agent-browser press Control+Meta+i
```

## Connecting

```bash
# Connect to a specific port
agent-browser connect 9222

# Or use --cdp on each command
agent-browser --cdp 9222 snapshot -i

# Auto-discover a running Chromium-based app
agent-browser --auto-connect snapshot -i
```

After `connect`, all subsequent commands target the connected app without needing `--cdp`.

## Tab Management

Electron apps often have multiple windows or webviews. Use tab commands to list and switch between them:

```bash
# List all available targets (windows, webviews, etc.)
agent-browser tab

# Switch to a specific tab by index
agent-browser tab 2

# Switch by URL pattern
agent-browser tab --url "*settings*"
```

## Launching Code OSS (VS Code Dev Build)

The VS Code repository includes `scripts/code.sh` which launches Code OSS from source. It passes all arguments through to the Electron binary, so `--remote-debugging-port` works directly:

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

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
```

**Tips:**
- Set `VSCODE_SKIP_PRELAUNCH=1` to skip the compile step if you've already built: `VSCODE_SKIP_PRELAUNCH=1 ./scripts/code.sh --remote-debugging-port=9224` (from the repo root)
- 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 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.

```bash
# Build the extension first
cd <extension-repo-root> # e.g., the root of your extension checkout
npm run compile

# Launch VS Code Insiders with the extension and CDP
code-insiders \
--extensionDevelopmentPath="<extension-repo-root>" \
--remote-debugging-port=9223 \
--user-data-dir=/tmp/vscode-ext-debug

# 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
```

**Key flags:**
- `--extensionDevelopmentPath=<path>` — loads your extension from source (must be compiled first)
- `--remote-debugging-port=9223` — enables CDP (use 9223 to avoid conflicts with other apps on 9222)
- `--user-data-dir=<path>` — uses a separate profile so it starts a new process instead of sending to an existing VS Code instance

**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.

### The Universal Pattern: Focus via Keyboard Shortcut + `press`

This works on **all** VS Code builds (Code OSS, Insiders, stable):

```bash
# 1. Open and focus the chat input with the keyboard shortcut
# macOS:
agent-browser press Control+Meta+i
# Linux / Windows:
agent-browser press Control+Alt+i

# 2. Type using individual press commands
agent-browser press H
agent-browser press e
agent-browser press l
agent-browser press l
agent-browser press o
agent-browser press Space # Use "Space" for spaces
agent-browser press w
agent-browser press o
agent-browser press r
agent-browser press l
agent-browser press d

# Verify text appeared (optional)
agent-browser eval '
(() => {
const sidebar = document.querySelector(".part.auxiliarybar");
const viewLines = sidebar.querySelectorAll(".interactive-input-editor .view-line");
return Array.from(viewLines).map(vl => vl.textContent).join("|");
})()'

# 3. Send the message (same on all platforms)
agent-browser press Enter
```

**Chat focus shortcut by platform:**
- **macOS:** `Ctrl+Cmd+I` → `agent-browser press Control+Meta+i`
- **Linux:** `Ctrl+Alt+I` → `agent-browser press Control+Alt+i`
- **Windows:** `Ctrl+Alt+I` → `agent-browser press Control+Alt+i`

This shortcut focuses the chat input and sets `document.activeElement` to a `DIV` with class `native-edit-context` — VS Code's native text editing surface that correctly processes key events from `agent-browser press`.

### `type @ref` — Works on Some Builds

On VS Code Insiders (extension debug mode), `type @ref` handles focus and input in one step:

```bash
agent-browser snapshot -i
# Look for: textbox "The editor is not accessible..." [ref=e62]
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 |
|--------|-----------------|----------|
| `press` per key (after focus shortcut) | ✅ Works | ✅ Works |
| `type @ref` | ✅ Works | ❌ Silent fail |
| `keyboard type` (after focus) | ✅ Works | ❌ Silent fail |
| `keyboard inserttext` (after focus) | ✅ Works | ❌ Silent fail |
| `click @ref` | ❌ Blocked by overlay | ❌ Blocked by overlay |
| `fill @ref` | ❌ Element not visible | ❌ Element not visible |

### Fallback: Focus via JavaScript Mouse Events

If the keyboard shortcut doesn't work (e.g., chat panel isn't configured), you can focus the editor via JavaScript:

```bash
agent-browser eval '
(() => {
const inputPart = document.querySelector(".interactive-input-part");
const editor = inputPart.querySelector(".monaco-editor");
const rect = editor.getBoundingClientRect();
const x = rect.x + rect.width / 2;
const y = rect.y + rect.height / 2;
editor.dispatchEvent(new MouseEvent("mousedown", { bubbles: true, clientX: x, clientY: y }));
editor.dispatchEvent(new MouseEvent("mouseup", { bubbles: true, clientX: x, clientY: y }));
editor.dispatchEvent(new MouseEvent("click", { bubbles: true, clientX: x, clientY: y }));
return "activeElement: " + document.activeElement?.className;
})()'

# Then use press for each character
agent-browser press H
agent-browser press e
# ...
```

### Verifying Text and Clearing

```bash
# Verify text in the chat input
agent-browser eval '
(() => {
const sidebar = document.querySelector(".part.auxiliarybar");
const viewLines = sidebar.querySelectorAll(".interactive-input-editor .view-line");
return Array.from(viewLines).map(vl => vl.textContent).join("|");
})()'

# Clear the input (Select All + Backspace)
# macOS:
agent-browser press Meta+a
# Linux / Windows:
agent-browser press Control+a
# Then delete:
agent-browser press Backspace
```

### Screenshot Tips for VS Code

On ultrawide monitors, the chat sidebar may be in the far-right corner of the CDP screenshot. Options:
- Use `agent-browser screenshot --full` to capture the entire window
- Use element screenshots: `agent-browser screenshot ".part.auxiliarybar" sidebar.png`
- Use `agent-browser screenshot --annotate` to see labeled element positions
- Maximize the sidebar first: click the "Maximize Secondary Side Bar" button

> **macOS:** If `agent-browser screenshot` returns "Permission denied", your terminal needs Screen Recording permission. Grant it in **System Settings → Privacy & Security → Screen Recording**. As a fallback, use the `eval` verification snippet to confirm text was entered — this doesn't require screen permissions.

## Troubleshooting

### "Connection refused" or "Cannot connect"

- Make sure Code OSS was launched with `--remote-debugging-port=NNNN`
- If Code OSS was already running, quit and relaunch with the flag
- Check that the port isn't in use by another process:
- macOS / Linux: `lsof -i :9224`
- Windows: `netstat -ano | findstr 9224`

### Elements not appearing in snapshot

- VS Code uses multiple webviews. Use `agent-browser tab` to list targets and switch to the right one
- Use `agent-browser snapshot -i -C` to include cursor-interactive elements (divs with onclick handlers)

### Cannot type in Monaco Editor inputs

- Use `agent-browser press` for individual keystrokes after focusing the input. Focus the chat input with the keyboard shortcut (macOS: `Ctrl+Cmd+I`, Linux/Windows: `Ctrl+Alt+I`).
- `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

**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
# Disconnect agent-browser
agent-browser close

# 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"
```

Verify it's gone:
```bash
# Confirm no process is listening on the debug port
lsof -i :9224 # should return nothing
```
1 change: 1 addition & 0 deletions .claude/skills/launch
2 changes: 0 additions & 2 deletions .eslint-ignore
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,6 @@
**/extensions/terminal-suggest/src/shell/fishBuiltinsCache.ts
**/extensions/terminal-suggest/third_party/**
**/extensions/typescript-language-features/test-workspace/**
**/extensions/typescript-language-features/extension.webpack.config.js
**/extensions/typescript-language-features/extension-browser.webpack.config.js
**/extensions/typescript-language-features/package-manager/node-maintainer/**
**/extensions/vscode-api-tests/testWorkspace/**
**/extensions/vscode-api-tests/testWorkspace2/**
Expand Down
12 changes: 7 additions & 5 deletions .eslint-plugin-local/code-translation-remind.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,18 +26,19 @@ export default new class TranslationRemind implements eslint.Rule.RuleModule {

private _checkImport(context: eslint.Rule.RuleContext, node: TSESTree.Node, path: string) {

if (path !== TranslationRemind.NLS_MODULE) {
if (path !== TranslationRemind.NLS_MODULE && !path.endsWith('/nls.js')) {
return;
}

const currentFile = context.getFilename();
const matchService = currentFile.match(/vs\/workbench\/services\/\w+/);
const matchPart = currentFile.match(/vs\/workbench\/contrib\/\w+/);
if (!matchService && !matchPart) {
const matchSessionsPart = currentFile.match(/vs\/sessions\/contrib\/\w+/);
if (!matchService && !matchPart && !matchSessionsPart) {
return;
}

const resource = matchService ? matchService[0] : matchPart![0];
const resource = matchService ? matchService[0] : matchPart ? matchPart[0] : matchSessionsPart![0];
let resourceDefined = false;

let json;
Expand All @@ -47,9 +48,10 @@ export default new class TranslationRemind implements eslint.Rule.RuleModule {
console.error('[translation-remind rule]: File with resources to pull from Transifex was not found. Aborting translation resource check for newly defined workbench part/service.');
return;
}
const workbenchResources = JSON.parse(json).workbench;
const parsed = JSON.parse(json);
const resources = [...parsed.workbench, ...parsed.sessions];

workbenchResources.forEach((existingResource: any) => {
resources.forEach((existingResource: any) => {
if (existingResource.name === resource) {
resourceDefined = true;
return;
Expand Down
Loading