Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1518 commits
Select commit Hold shift + click to select a range
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
e1f8760
wip - sessions title
bpasero 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
a988b69
Main button commands and mocks
osortega 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
1ec7f38
enhance image carousel with section support and captions
rebornix Mar 12, 2026
4a6638b
refactor(imageCarousel): simplify image extraction logic and improve …
rebornix 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
3d4a346
Re-announce "no results" ARIA alert on explicit find navigation (#301…
Copilot Mar 12, 2026
68685fb
Update distro commit (main) (#301235)
benvillalobos Mar 12, 2026
658e28e
testing: extract helper functions from RunTestTool and add comprehens…
connor4312 Mar 12, 2026
cbc25ff
build(deps): bump file-type from 16.5.4 to 21.3.1 in /extensions/git …
dependabot[bot] Mar 12, 2026
ccd5ee8
address PR review comments
connor4312 Mar 12, 2026
1f0667c
getCoverageSummary: merge coverage from all tasks instead of returnin…
connor4312 Mar 12, 2026
e2e1d87
Merge pull request #301257 from microsoft/connor4312/301252
connor4312 Mar 12, 2026
ff5ec18
add chat slash commands to CLI + better setting check (#301266)
justschen Mar 12, 2026
2560996
thinking content improvements (#301265)
justschen Mar 12, 2026
739fb0a
Mocks + full workflow scenario
osortega Mar 12, 2026
fa144f0
up
connor4312 Mar 12, 2026
33f334e
Merge pull request #300818 from microsoft/ben/fancy-muskox
osortega Mar 12, 2026
98822b9
Merge pull request #301254 from microsoft/connor4312/testing-tool-ref…
connor4312 Mar 13, 2026
d6b1a44
feat(chat): implement image extraction from chat responses and enhanc…
rebornix Mar 13, 2026
f460288
Move untitled session mapping much earlier in request process
mjbvz Mar 13, 2026
f6dc234
refactor(imageCarousel): remove redundant mention of counter in updat…
rebornix Mar 13, 2026
f78ba93
Merge pull request #301308 from microsoft/rebornix/boiling-locust
rebornix Mar 13, 2026
e7e6cbe
fix: serialize concurrent marketplace repo clones via SequencerByKey …
Copilot Mar 13, 2026
df64f4f
Merge pull request #301310 from mjbvz/dev/mjbvz/uneven-damselfly
mjbvz Mar 13, 2026
e08c8ef
enhance image carousel functionality and UI improvements
rebornix Mar 13, 2026
595e039
resolve comments
rebornix Mar 13, 2026
ba55361
Merge pull request #301376 from microsoft/rebornix/cheerful-wolverine
rebornix Mar 13, 2026
51f7207
Stronger fix for changing toolset on running agent (#301381)
roblourens Mar 13, 2026
b659d18
refactor: update image extraction description and enhance collection …
rebornix Mar 13, 2026
f72d52c
Merge pull request #301397 from microsoft/rebornix/accepted-stoat
rebornix Mar 13, 2026
290bcc0
disable grouping and featured models for non local models (#301411)
sandy081 Mar 13, 2026
20a1637
fix: repair folder context menu when only legacy file context menu is…
deepak1556 Mar 13, 2026
1b4918e
Engineering - update notebooks (#301446)
lszomoru Mar 13, 2026
ac40642
refactor: remove rollout duration for insider builds in release proce…
joaomoreno Mar 13, 2026
f883b96
Sessions - changes view improvements (#301485)
lszomoru Mar 13, 2026
6cd9d43
feat: Add explorer context menu for opening images in carousel (#301401)
TylerLeonhardt Mar 13, 2026
f893210
Update title bar UI feature work and bug fixes (#301497)
dmitrivMS Mar 13, 2026
c160c03
build - update command to use watch instead of compile (#301511)
bpasero Mar 13, 2026
0bc4bad
Proposed browser API for debug support (#300577)
kycutler Mar 13, 2026
17bd069
Update distro (#301516)
kycutler Mar 13, 2026
5789fa4
Fix focus issue and turn on update title bar entry for insiders (#301…
dmitrivMS Mar 13, 2026
5bf5b2a
resize question carousel (#301523)
meganrogge Mar 13, 2026
8ca8e1a
rm double border (#301531)
meganrogge Mar 13, 2026
5ddb5e6
chat: interpolate PLUGIN_ROOT and CLAUDE_PLUGIN_ROOT in MCP server de…
connor4312 Mar 13, 2026
5ca0ea5
Use markdownDescription for a few more settings
mjbvz Mar 13, 2026
83c783c
trim leading slash from terminal commands (#301550)
meganrogge Mar 13, 2026
b14be9a
Fix agent-run tasks incorrectly prompting user with "press any key" i…
Copilot Mar 13, 2026
894acd3
Allow vs-code-engineering bot to update distro field in package.json …
benvillalobos Mar 13, 2026
045e2da
Strengthen accessibility skill language (#301555)
meganrogge Mar 13, 2026
f4b5798
Migrate queued requests when swapping sessions (for CLI) (#301379)
DonJayamanne Mar 13, 2026
bc8b9ba
Merge pull request #301546 from microsoft/rebornix/steep-antlion
rebornix Mar 13, 2026
6305978
Refactor session handling in ChatService to capture session options b…
TylerLeonhardt Mar 13, 2026
f73808e
Refactor repository name extraction logic in AgentSessionRenderer and…
osortega Mar 13, 2026
b6c2e2e
Add tests for getRepositoryName function in AgentSessionsDataSource
osortega Mar 13, 2026
5ad2b7f
Add logging for repository name resolution in AgentSessionsDataSource…
osortega Mar 13, 2026
dd301c4
Browser: more improvements to Zoom (#301400)
jruales Mar 13, 2026
d05cd99
Show directory picker when creating customizations with multiple sour…
joshspicer Mar 13, 2026
06f3717
Update accessibility options and enhance session badge visibility for…
osortega Mar 13, 2026
c76dedd
Revert unrelated monaco.d.ts changes
osortega Mar 13, 2026
faa20ca
Sessions - increase default width of the auxiliary sidebar (#301585)
lszomoru Mar 13, 2026
a3e2961
Pass through the initial options on creation
mjbvz Mar 13, 2026
014f2af
Fix find widget being hidden behind browser (#301579)
kycutler Mar 13, 2026
bad6d6e
Use string args in log to ensure full object visibility
osortega Mar 13, 2026
74f1f62
Serialize whole session object in log for better debugging
osortega Mar 13, 2026
9a8a72c
parse content for image and display in terminal tool calls (#301560)
justschen Mar 13, 2026
0cb8d31
[Terminal_sandbox] Notify when user consent is needed for permissions…
dileepyavan Mar 13, 2026
a418daa
constrain questions (#301543)
meganrogge Mar 13, 2026
3711620
Merge pull request #301589 from microsoft/copilot/fashionable-chinchilla
osortega Mar 13, 2026
1037a02
Enhance LanguageModelToolsService to handle image file widgets in too…
rebornix Mar 13, 2026
fde89f1
Rename chat debug to agent debug logs (#301602)
vijayupadya Mar 13, 2026
ae5595b
Merge pull request #301598 from mjbvz/dev/mjbvz/ill-owl
mjbvz Mar 13, 2026
75282c3
Add feature flag for agent debug experience (#301528)
pwang347 Mar 13, 2026
8ff4db0
build: bump js-debug to 1.112.0 (#301615)
connor4312 Mar 13, 2026
2c43738
sessions: built-in skills (#301607)
joshspicer Mar 13, 2026
13f5fab
sessions: `Generate New Action...` (#301604)
joshspicer Mar 13, 2026
55fe9ab
Merge pull request #301596 from mjbvz/dev/mjbvz/joyous-peacock
mjbvz Mar 13, 2026
6b8b037
Make sure we use `isEqual` to compare uris in chat
mjbvz Mar 13, 2026
d958278
Browser button in title bar (#301622)
kycutler Mar 13, 2026
4c82223
Implement image carousel service and integrate with chat attachments …
TylerLeonhardt Mar 13, 2026
51f27db
Merge pull request #301626 from mjbvz/dev/mjbvz/big-starfish
mjbvz Mar 13, 2026
9192689
Misc debug panel UX fixes (#301628)
pwang347 Mar 14, 2026
be855d2
build(deps): bump undici from 7.18.2 to 7.24.0 (#301624)
dependabot[bot] Mar 14, 2026
5fdf97c
Support markdown fallback in agent debug panel (#301634)
pwang347 Mar 14, 2026
970a8d3
Agent Debug: Make treeview default (#301637)
vijayupadya Mar 14, 2026
09f4d8c
Fix delete action in AI Customizations editor (#301630)
joshspicer Mar 14, 2026
3d2f6d9
Revert "Pass through the initial options on creation" (#301676)
bpasero Mar 14, 2026
e729732
compile leftover (#301670)
bpasero Mar 14, 2026
36607d4
Reapply #301598 with fixes
mjbvz Mar 14, 2026
f4756bd
Add test file updates too
mjbvz Mar 14, 2026
cc2560e
Potential fix for pull request finding
mjbvz Mar 14, 2026
c770f37
Enhance image handling in chat attachments (#301657)
rebornix Mar 14, 2026
d11f5a4
Expose chat.resizeImage command (#301734)
roblourens Mar 14, 2026
9ff9084
Add "Workbench > Browser" settings category (#301640)
jruales Mar 14, 2026
86ffb98
Minor chat optimizations (#301752)
roblourens Mar 14, 2026
dd8fdb7
fix: memory leak in MainThreadWorkspace (#283450)
SimonSiefke Mar 14, 2026
4ce266d
fix: only set hook hint flag when actually showing the hint (#301755)
roblourens Mar 15, 2026
407dacd
Merge pull request #301740 from mjbvz/dev/mjbvz/purring-guan
mjbvz Mar 15, 2026
992a5af
Merge branch 'main' into main
Harshithk951 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