Skip to content
This repository was archived by the owner on Sep 15, 2025. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
10000 commits
Select commit Hold shift + click to select a range
213b27d
make sure to cancel current request on restore checkpoints (#306901)
justschen Mar 31, 2026
78f4c24
Sessions: Refactor AI Customization Management styles (#306873)
mrleemurray Mar 31, 2026
d171568
Merge pull request #306789 from microsoft/dev/mjbvz/liable-firefly
mjbvz Mar 31, 2026
dc93e83
show 'ran subagent' when finishing subagents without descriptions (#…
justschen Mar 31, 2026
ef8b671
Sessions: Update agent feedback widget styles for improved clarity an…
mrleemurray Mar 31, 2026
c27cf4f
Sessions: Adjust header height and refine button styles (#306902)
mrleemurray Mar 31, 2026
fa38b10
Reduce request to entitlement endpoints (#306914)
lramos15 Mar 31, 2026
74fcb3b
feat: add A/B test for default new session mode
andysharman Mar 30, 2026
17faef0
Sessions: Update naming (fix #306461) (#306922)
bpasero Mar 31, 2026
79a9751
Add `send_to_terminal` tool for sending commands to background termin…
meganrogge Mar 31, 2026
20e37ff
sessions - more renames (#306937)
bpasero Mar 31, 2026
54493e6
Update distro commit (main) (#306927)
vs-code-engineering[bot] Mar 31, 2026
26bd211
track disposable (#306933)
amunger Mar 31, 2026
54caaaf
finally works v.v
connor4312 Mar 31, 2026
2d91fa2
Merge remote-tracking branch 'origin/main' into connor4312/customizat…
connor4312 Mar 31, 2026
64ea639
Sessions - do not show changes when until there is no git repository …
lszomoru Mar 31, 2026
6c3a002
remove shell integration none tests (#306932)
meganrogge Mar 31, 2026
3111b55
Link to browser editors in tool calls (#306909)
kycutler Mar 31, 2026
48ebd97
Render URI-based icons in editor quick access (#306402)
kycutler Mar 31, 2026
20bd08c
share auto approval logic bw `runInTerminal` and `sendToTerminal` (#3…
meganrogge Mar 31, 2026
bf954f4
test and cleanup
connor4312 Mar 31, 2026
f7c3f8d
promptService: cache IHookDiscoveryInfo (#306734)
aeschli Mar 31, 2026
b37b15b
Sessions - move more code into the view model (#306951)
lszomoru Mar 31, 2026
12fa930
comments and tests
connor4312 Mar 31, 2026
c0e8607
Merge remote-tracking branch 'origin/main' into connor4312/customizat…
connor4312 Mar 31, 2026
81cb0e5
fix compile
connor4312 Mar 31, 2026
521587c
Sessions: Add Copilot status indicator to sidebar footer (#306953)
osortega Mar 31, 2026
59c23c3
Add readable element labels in browser tool calls (#306954)
kycutler Mar 31, 2026
8fe8366
agentHost: support checkpointing and forking
connor4312 Mar 31, 2026
231f8d7
Merge pull request #305372 from microsoft/connor4312/customizations
connor4312 Mar 31, 2026
e52f1d1
Encourage browser tab reuse in open tools (#306973)
kycutler Mar 31, 2026
9ed1e07
chat: use display commands in response stringification (#306977)
dileepyavan Mar 31, 2026
4eab404
Harness fixes (#306978)
joshspicer Apr 1, 2026
fcbabe4
Merge extension-provided policy (#306874)
joshspicer Apr 1, 2026
fd76bd1
Added setting and command to control post-update info tooltip (#306950)
dmitrivMS Apr 1, 2026
2f602bd
Merge branch 'main' into copilot/fix-null-reference-error
bryanchen-d Apr 1, 2026
eac55d8
Merge pull request #306586 from microsoft/copilot/fix-null-reference-…
bryanchen-d Apr 1, 2026
ff9044b
make forking work
connor4312 Apr 1, 2026
11c5d30
Remove `getChatSessionFromInternalUri` and try using chat session uri…
mjbvz Apr 1, 2026
b533ee4
Updates component explorer & adopts rspack for fixture serving (#306484)
hediet Apr 1, 2026
16f080d
Also remove contributedChatSession
mjbvz Apr 1, 2026
fbabc5c
agentHost: auto-approve terminal commands using treesitter (#306992)
roblourens Apr 1, 2026
e0de323
agentHost: Disable folders from disconnected remotes (#306989)
roblourens Apr 1, 2026
e6e776a
Add SSH remote agent host bootstrap (#304882)
roblourens Apr 1, 2026
1d3da7c
Sessions: Opening a session in a new window clears it from the Sessio…
bpasero Apr 1, 2026
4c022c6
sessions - enforce sessions window in embedded ap (#307032)
bpasero Apr 1, 2026
178319b
Sessions - hide file header when there is no git repository (#307036)
lszomoru Apr 1, 2026
7cfbeb9
sessions - cleanup window opening handling (#307044)
bpasero Apr 1, 2026
548f6c2
Sessions - 💄 more cleanup (#307028)
lszomoru Apr 1, 2026
c4229a6
build: exclude ssh2 native component to address universal failure (#3…
deepak1556 Apr 1, 2026
a1ceb20
unblock build (#307047)
bpasero Apr 1, 2026
accaa4d
Sessions - update order for setting the default value for the branch …
lszomoru Apr 1, 2026
701662a
fix telemetry description for SkillLoadedIntoContextClassification (#…
aeschli Apr 1, 2026
bd5138e
Trigger automatic screenshot artifact ingestion
hediet Apr 1, 2026
6e701d6
Adds playwright component fixture tests
hediet Apr 1, 2026
3e5f275
fixes ci
hediet Apr 1, 2026
6ccb5d4
fixes ci
hediet Apr 1, 2026
cbefeb3
add logs on failure
hediet Apr 1, 2026
091d641
new theme notification (#307087)
aeschli Apr 1, 2026
264251b
Session - perf improvements when switching sessions (#307091)
lszomoru Apr 1, 2026
82ec78a
Disable more flaky tests (#307102)
alexr00 Apr 1, 2026
5858c4d
fix chat tip border in sessions window (#306826)
meganrogge Apr 1, 2026
dfcb106
Fix memory leak in chat terminal tool from accumulated disposables (#…
meganrogge Apr 1, 2026
f57ca7f
fix chat tip issue (#306825)
meganrogge Apr 1, 2026
e2885a5
up distro (#307131)
bpasero Apr 1, 2026
93fac38
prevent distro.builtInExtensions (#307134)
joaomoreno Apr 1, 2026
bb6e7c5
Show TOS when Copilot is already installed (fix #291893) (#307148)
bpasero Apr 1, 2026
015aef6
fix: tls.getCACertificates result for self-signed and server auth (#3…
deepak1556 Apr 1, 2026
3b940c2
Add performance profiler command (#306548)
pwang347 Apr 1, 2026
3a9951e
Fixes component explorer url
hediet Apr 1, 2026
a9ccde3
Terminal tools: replace `isBackground` with `mode=sync|async`, remove…
meganrogge Apr 1, 2026
43182ad
Add more agenthost integration tests (#307007)
roblourens Apr 1, 2026
184f6ec
Bump @xmldom/xmldom from 0.8.11 to 0.8.12 (#307009)
dependabot[bot] Apr 1, 2026
0bb51dd
Better URL shortening in browser tab labels (#306765)
kycutler Apr 1, 2026
3127e80
Merge pull request #307005 from mjbvz/dev/mjbvz/brief-cuckoo
mjbvz Apr 1, 2026
b39f6c2
agent host cleanups (#307008)
roblourens Apr 1, 2026
3a72a63
Bump @xmldom/xmldom from 0.8.10 to 0.8.12 in /build (#306982)
dependabot[bot] Apr 1, 2026
02d8ead
sessions - hide some menu and commands that do not apply (#307172)
bpasero Apr 1, 2026
e935227
sessions - skip recent list in dock (#307175)
bpasero Apr 1, 2026
40a2f79
Revert skipping of tests (#307137)
bpasero Apr 1, 2026
a84f243
Refactors fixtures
hediet Apr 1, 2026
b35fdbe
smoke test failure: show results from all folders (fix #306890) (#307…
bpasero Apr 1, 2026
c0a838c
sessions - skip `modifiedFilesConfirmation` as inline approval for no…
bpasero Apr 1, 2026
f7338de
Merge remote-tracking branch 'origin/main' into connor4312/ah-undo-redo
connor4312 Apr 1, 2026
b1b8217
Merge pull request #306564 from yogeshwaran-c/fix/wait-for-breakpoint…
connor4312 Apr 1, 2026
24ff97e
Remove redundant LLM error assessment from terminal output monitor (#…
meganrogge Apr 1, 2026
ffa6b68
sessions: move session grouping from management service to providers …
sandy081 Apr 1, 2026
54b695e
Add windowsUseConptyDll setting to runInTerminal tests (#307185)
anthonykim1 Apr 1, 2026
e898ef6
fix serialized finished tool calls showing up in thinking (#307200)
justschen Apr 1, 2026
9a3f8a4
fixs bugs, review, make it work
connor4312 Apr 1, 2026
e0dedab
Rename customization editor context keys (#307195)
joshspicer Apr 1, 2026
8910ce4
Merge pull request #299512 from danplischke/main
connor4312 Apr 1, 2026
e9dbff5
sessions - configure worktree task to not auto reveal (#307211)
bpasero Apr 1, 2026
fdaa8c8
Move chat debug logging out of PromptsService (#307142)
aeschli Apr 1, 2026
9fbd004
Give method a more accurate name
mjbvz Apr 1, 2026
46f5ee7
Extract out updateStateAndChatModeForCustomAgentTargetIfNeeded
mjbvz Apr 1, 2026
8bba066
fix: Propagate `forceShellIntegration` to remote terminal server (#30…
renan-r-santos Apr 1, 2026
6b19c23
Fix Browser not visible in Agents App (#307219)
jruales Apr 1, 2026
98f6cbe
Merge pull request #306968 from microsoft/connor4312/ah-undo-redo
connor4312 Apr 1, 2026
e811327
Break up methods
mjbvz Apr 1, 2026
b659538
Clean up cruft from extractions
mjbvz Apr 1, 2026
7862f53
Give return type more accurate names and simplify
mjbvz Apr 1, 2026
fb560e0
Make callers pass in sessionResource
mjbvz Apr 1, 2026
dfc33a2
Also remove effective sessionType from return value
mjbvz Apr 1, 2026
f5d73a7
Extract out getAllOptionsGroups
mjbvz Apr 1, 2026
50e7aa7
Reduce usage of `T[] | undefined`
mjbvz Apr 1, 2026
998909d
promptsService: add IInstructionFile and make other types consistent …
aeschli Apr 1, 2026
fd640bb
sessions: show welcome overlay on explicit sign-out (#307191)
joshspicer Apr 1, 2026
d90b26c
Merge branch 'main' into fix-stylesheet-types
chetanr-25 Apr 1, 2026
1d3e82f
Fix terminal cursor position onPtyHostRestart (#307212)
anthonykim1 Apr 1, 2026
cc9f345
Rename agent sandbox settings (#307237)
dileepyavan Apr 1, 2026
bc37f22
Session - compute base branch from the metadata (#307239)
lszomoru Apr 1, 2026
f9d4d43
sessions: move account widget to titlebar with entitlement-aware badg…
osortega Apr 1, 2026
c3ae78e
sessions: add multi-chat support to Copilot provider (#preview) (#307…
sandy081 Apr 1, 2026
3f2c82d
Add eslint rule for ServicesAccessor after await (#307263)
roblourens Apr 1, 2026
d0d3919
sessions: add telemetry for Agents window button interactions (#307231)
osortega Apr 1, 2026
d3da7f5
Sessions - tree rendering fixes (#307272)
lszomoru Apr 1, 2026
bd80bee
policyExport: add `included` flag to PolicyDto output (#307240)
joshspicer Apr 1, 2026
3417f91
extHost: fix LanguageModelDataPart serialization compatibility (#307277)
connor4312 Apr 1, 2026
b6a2a05
agentHost: include sqlite in server build (#306811)
connor4312 Apr 2, 2026
9feedfb
Sessions - show folder icon for workspace sessions (#307290)
lszomoru Apr 2, 2026
0313dd7
fix: handle non-Map session options at runtime boundaries (#307296)
osortega Apr 2, 2026
ac2c119
Revert "Allow intellisense for troubleshoot skill (#305702)" (#307300)
DonJayamanne Apr 2, 2026
810e63a
Sessions - branch picker should show active branch name when using fo…
lszomoru Apr 2, 2026
559cb3e
clean up chat copilot session handling by removing unused agent optio…
DonJayamanne Apr 2, 2026
b826afb
agentPlugins: prefix skills with plugin name consistent with commands…
connor4312 Apr 2, 2026
f8577c8
Remove `getDynamicStyleSheetRules`
mjbvz Apr 2, 2026
8497058
Merge branch 'main' into dev/mjbvz/smiling-porcupine
mjbvz Apr 2, 2026
c63abfc
Fire onDidChange for chat input state changes
mjbvz Apr 2, 2026
b2099b8
fix #307276 (#307294)
rebornix Apr 2, 2026
9096967
Merge branch 'main' into dev/mjbvz/ratty-anteater
mjbvz Apr 2, 2026
8b5453f
Update src/vs/workbench/api/common/extHostChatSessions.ts
mjbvz Apr 2, 2026
a3c51e9
Revert provider change for now
mjbvz Apr 2, 2026
9f901c6
Update UI fixes (#307318)
dmitrivMS Apr 2, 2026
8773343
agentHost: fix ssh always using stable CLI (#307328)
roblourens Apr 2, 2026
2b29dd7
Merge pull request #306515 from mjbvz/dev/mjbvz/smiling-porcupine
mjbvz Apr 2, 2026
4c5c31e
Merge pull request #307344 from mjbvz/dev/mjbvz/curved-limpet
mjbvz Apr 2, 2026
7f7a02b
Sessions - add context key to track uncommitted changes (#307346)
lszomoru Apr 2, 2026
19f386d
Fix merge issue
mjbvz Apr 2, 2026
a230337
sessions - more renames (#307343)
bpasero Apr 2, 2026
7413e6c
Merge branch 'main' into dev/mjbvz/ratty-anteater
mjbvz Apr 2, 2026
b955f7c
Add General Purpose agent support behind experiment (#306871)
digitarald Apr 2, 2026
ffdcf82
Sessions - improve feedback/comments rendering (#307362)
lszomoru Apr 2, 2026
f7b7a34
chat - fix migration of completed key (#307345)
bpasero Apr 2, 2026
41318b5
up distro (#307378)
bpasero Apr 2, 2026
c4696e9
Agents: Update codicon color in titlebar left toolbar (#307377)
mrleemurray Apr 2, 2026
997c764
Agents: Adjust padding in AI customization toolbar for improved layou…
mrleemurray Apr 2, 2026
d40ea37
Sessions: Update terminology for archived sessions to "Marked as Done"
mrleemurray Apr 2, 2026
6026fd9
fix: update macOS icons assets for agents app (#307389)
deepak1556 Apr 2, 2026
7310bf3
Sessions - improve loading and bug fixes (#307380)
lszomoru Apr 2, 2026
c0f5180
Agents: Update account titlebar widget dimensions for consistency (#3…
mrleemurray Apr 2, 2026
1c46f07
Sessions - rename the merge skill (#307382)
lszomoru Apr 2, 2026
fa085e0
Agents: Fix margin adjustments in chat welcome part for improved layo…
mrleemurray Apr 2, 2026
9040997
prompt validation: gray out unknown tools/attributes (#307384)
aeschli Apr 2, 2026
8503a49
Merge branch 'main' into fix-stylesheet-types
chetanr-25 Apr 2, 2026
f1ecb2e
Sessions: Enhance session section layout with icons and adjust archiv…
mrleemurray Apr 2, 2026
0ec4cab
Sessions - add sync skill (#307402)
lszomoru Apr 2, 2026
d597a37
fix: agent app cleanup post update on windows (#307387)
deepak1556 Apr 2, 2026
7df5a4a
Agents: Enhance action item layout and styling in sessions title bar …
mrleemurray Apr 2, 2026
e553210
Sessions - checks cleanup + fixes (#307417)
lszomoru Apr 2, 2026
89acc7a
Sessions: Remove session section icon and update unarchive action ico…
mrleemurray Apr 2, 2026
8e7f208
Sessions: Simplify session filter title from "Marked as Done" to "Don…
mrleemurray Apr 2, 2026
c6ea8bd
Bump lodash from 4.17.23 to 4.18.1 in /test/monaco (#307338)
dependabot[bot] Apr 2, 2026
5a4937b
Merge pull request #307426 from microsoft/mrleemurray/archive-label-u…
mrleemurray Apr 2, 2026
669bdb0
Merge remote-tracking branch 'upstream/main' into feature/default-new…
andysharman Apr 2, 2026
a47e217
Sessions - update context keys for actions (#307434)
lszomoru Apr 2, 2026
835300f
Exclude unneeded ssh2 bits (#307435)
roblourens Apr 2, 2026
a239707
Sessions: Update changes view title and name (#307437)
mrleemurray Apr 2, 2026
0db3a09
delete the previous insert token when the user presses backspace (#30…
aeschli Apr 2, 2026
1166429
fix: restart to update not working on windows (#307441)
deepak1556 Apr 2, 2026
04db5ba
Add chat agent error telemetry and isError marker
bryanchen-d Apr 2, 2026
a335905
Address Copilot review feedback
bryanchen-d Apr 2, 2026
69eb462
chore: run npm audit fix (#307444)
rzhao271 Apr 2, 2026
4022448
Merge pull request #307284 from microsoft/dev/mjbvz/ratty-anteater
mjbvz Apr 2, 2026
2c57c5c
Merge branch 'main' into feature/default-new-session-mode-experiment
pierceboggan Apr 2, 2026
904897a
Fix GDPR owner to bryanchen-d
bryanchen-d Apr 2, 2026
a188021
Merge pull request #306532 from andysharman/feature/default-new-sessi…
pierceboggan Apr 2, 2026
8b7320c
Move error callstack to RPC-only interface
bryanchen-d Apr 2, 2026
3151748
fix: guard debugger detach against destroyed WebContents (fixes #306923)
github-actions[bot] Apr 2, 2026
a7ef6b2
Support deferred results from playwright code tool (#307274)
kycutler Apr 2, 2026
aca234e
sessions: update icon in left sidebar visibility toggle button (#306878)
hawkticehurst Apr 2, 2026
449cb2b
[json] Unnecessary log when request canceled (#307443)
aeschli Apr 2, 2026
e1e2920
fix: include additional toggles in find input arrow key navigation (#…
yogeshwaran-c Apr 2, 2026
acdb71d
Integrated Browser: Upgrade Playwright to 1.59 (#307459)
jruales Apr 2, 2026
5bb15ad
Merge branch 'main' into fix-stylesheet-types
chetanr-25 Apr 2, 2026
ccf5e83
fix: prevent catastrophic regex backtracking in _extractImagesFromOut…
mossgowild Apr 2, 2026
351c056
Merge pull request #288651 from chetanr-25/fix-stylesheet-types
mjbvz Apr 2, 2026
4370953
Update xterm to 6.1.0-beta.196 (#307288)
anthonykim1 Apr 2, 2026
24712cc
Support more native editing shortcuts in browser (#307488)
kycutler Apr 2, 2026
cd49051
Merge pull request #307477 from microsoft/fix/debugger-detach-destroy…
bryanchen-d Apr 2, 2026
6f6ad97
Sessions - bulk update context keys to avoid flickering (#307497)
lszomoru Apr 2, 2026
11bc1e6
chat: improve ChatSessionCustomizationProvider API (#307278)
joshspicer Apr 2, 2026
02a92c1
agentHost: adopt improved AHP file edits (#307502)
connor4312 Apr 2, 2026
c2f1a6e
sessions: hide disabled chat input pickers (#307494)
hawkticehurst Apr 2, 2026
6089367
Fix unsandboxed terminal sandbox wrapping for quoted shell execution …
dileepyavan Apr 2, 2026
9c275ba
Add errorName to chatAgentError telemetry event
bryanchen-d Apr 2, 2026
f540be8
Add completion notifications and async prompt monitoring for backgrou…
meganrogge Apr 2, 2026
e9c46ed
Merge pull request #307250 from yogeshwaran-c/feat/coverage-minimap-i…
yogeshwaran-c Apr 2, 2026
bbf7bc4
Paste clipboard file resource in terminal when text is empty (#307501)
anthonykim1 Apr 2, 2026
9e740a4
simplify schema (#307518)
meganrogge Apr 2, 2026
a8d7dcd
Browser: Add pinch-to-zoom (#307516)
jruales Apr 2, 2026
b4eb104
Clearer instructions for URLs in browser open tool (#307523)
kycutler Apr 2, 2026
d1872e9
sessions sign in experience (#304307)
eli-w-king Apr 2, 2026
cac0241
Sessions: Fix stopped session stuck in list as Working (#307508)
osortega Apr 3, 2026
f6ca941
sessions: update signed-out text from Copilot to Agents (#307536)
osortega Apr 3, 2026
1254a3c
sessions: Update title bar actions and styles for improved navigation…
osortega Apr 3, 2026
366aa9c
Ensure that ssh2/cpu-features doesn't get shipped (#307546)
roblourens Apr 3, 2026
4b0a0e5
Merge pull request #307451 from microsoft/brchen/chat-agent-error-tel…
bryanchen-d Apr 3, 2026
72e7097
sessions: Re-add vertical separator between session actions and right…
Copilot Apr 3, 2026
abd6fe1
Update debug customization events (#307303)
pwang347 Apr 3, 2026
8c85df1
fix: rename hooks button to 'Configure Hooks' in sessions window (#30…
joshspicer Apr 3, 2026
bd5165a
chore: add npm version check to preinstall (#307584)
deepak1556 Apr 3, 2026
9f8d4fd
chore: use protocol from product configuration for openAgentsWindow a…
deepak1556 Apr 3, 2026
30a12bc
make sure confirmation needed subagents are not marked inactive (#307…
justschen Apr 3, 2026
a013d5c
Sessions - increase polling interval for pull request data (#307608)
lszomoru Apr 3, 2026
63310be
Sessions - more perf improvements (#307627)
lszomoru Apr 3, 2026
32eeacc
Remove chat.statusWidget.anonymous
cwebster-99 Apr 3, 2026
38a5ee1
Update src/vs/workbench/contrib/chat/browser/widget/input/chatStatusW…
cwebster-99 Apr 3, 2026
cc5d7c8
testing: improve test coverage filter quickpick readability
yogeshwaran-c Apr 3, 2026
ffa49fc
testing: treat unrecognized @-prefixed text as regular filter in test…
yogeshwaran-c Apr 3, 2026
d0c21ae
feat: add ChatHookProvider to chatPromptFiles API (#307545)
joshspicer Apr 3, 2026
3d70aab
Sessions - improve merge skill + a minor fix (#307657)
lszomoru Apr 3, 2026
44b152c
feat: add plugins to chatPromptFiles API (#307669)
joshspicer Apr 3, 2026
46379c3
Fix error noise on browser tab close (#307674)
kycutler Apr 3, 2026
1394fbd
Fix reasoning effort menu being hidden behind browser (#307670)
kycutler Apr 3, 2026
75ef496
Default ignore skills and slash commands for other session types unle…
pwang347 Apr 3, 2026
20b2483
Remove debug event attachments (#307544)
pwang347 Apr 3, 2026
66639f8
chat: add startup telemetry for live chat model counts (#307678)
roblourens Apr 3, 2026
af760e0
Merge pull request #307643 from microsoft/arbitrary-pike
cwebster-99 Apr 3, 2026
0805547
agentHost: archive and store archive state for remote agent host sess…
roblourens Apr 3, 2026
89d0d13
agentPlugins: clone locally when in a remote (#303606)
connor4312 Apr 3, 2026
3c60b09
Sessions: preserve cancelled session content in list (#307684)
osortega Apr 3, 2026
e2694d7
Sessions - more cleanup around state management (#307694)
lszomoru Apr 3, 2026
b9d09e3
sessions: disable branch picker in folder mode (#307692)
hawkticehurst Apr 3, 2026
36824e3
sessions: show branch in active session title (#307711)
hawkticehurst Apr 3, 2026
6b7e153
sessions: reduce left sidebar minimum width (#307709)
hawkticehurst Apr 3, 2026
b3afb80
agentHost: fix editing (#307721)
connor4312 Apr 3, 2026
9b2810b
Let new browser tabs outlive their parents (#307726)
kycutler Apr 3, 2026
885fbb6
Fix: Clicking settings link in bool setting description incorrectly t…
Copilot Apr 3, 2026
51c3548
Agent Debug Panel: pagination, incremental filtering, and service opt…
vijayupadya Apr 3, 2026
de4547a
Browser: don't show a loading spinner for in-page navigation (#307728)
kycutler Apr 3, 2026
5fa9107
Snapshot browser state before disposal (#307734)
kycutler Apr 3, 2026
b564ded
agentHost: Validate strings in bash commands (#307699)
roblourens Apr 3, 2026
9cf1420
agentHost: Enable local agent host in sessions app (#307732)
roblourens Apr 3, 2026
0993042
Revert chatEditingSession change (#307740)
roblourens Apr 3, 2026
a24c4fa
agentHost: Ensure all tests use an in-memory db to reduce flakiness (…
roblourens Apr 4, 2026
28880a6
Prefer terminal presentation overrides in chat text (#307777)
dileepyavan Apr 4, 2026
a240f2a
sessions: use generic sign out confirmation copy (#307727)
hawkticehurst Apr 4, 2026
b33353e
Ignore file-like domain suffixes in terminal sandbox (#307780)
dileepyavan Apr 4, 2026
ddd3343
Clarify sandbox-first guidance for terminal tool unsandboxing (#307783)
dileepyavan Apr 4, 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.
374 changes: 374 additions & 0 deletions .agents/skills/launch/SKILL.md

Large diffs are not rendered by default.

420 changes: 0 additions & 420 deletions .config/guardian/.gdnbaselines

This file was deleted.

52 changes: 37 additions & 15 deletions .config/guardian/.gdnsuppress
Original file line number Diff line number Diff line change
@@ -1,46 +1,68 @@
{
"hydrated": false,
"hydrated": true,
"properties": {
"helpUri": "https://eng.ms/docs/microsoft-security/security/azure-security/cloudai-security-fundamentals-engineering/security-integration/guardian-wiki/microsoft-guardian/general/suppressions"
},
"version": "1.0.0",
"suppressionSets": {
"default": {
"name": "default",
"createdDate": "2025-03-17 11:52:32Z",
"lastUpdatedDate": "2025-03-17 11:52:32Z"
"createdDate": "2025-01-28 06:29:05Z",
"lastUpdatedDate": "2025-08-25 17:55:20Z"
}
},
"results": {
"216e2ac9cb596796224b47799f656570a01fa0d9b5f935608b47d15ab613c8e8": {
"signature": "216e2ac9cb596796224b47799f656570a01fa0d9b5f935608b47d15ab613c8e8",
"6216d3477ad4f56cb4ec316a9aaff02e9530a10d56469a4ef4063b8d02fe344b": {
"signature": "6216d3477ad4f56cb4ec316a9aaff02e9530a10d56469a4ef4063b8d02fe344b",
"alternativeSignatures": [
"07746898f43afab7cc50931b33154c2d9e1a35f82a649dbe8aecf785b3d5a813"
"46ad210995b2ff199f3bee5f271938a4251ed7a60058041ace1beaa53e36b51c"
],
"target": "file:///D:/a/_work/1/vscode-server-win32-x64/node.exe",
"memberOf": [
"default"
],
"createdDate": "2025-03-17 11:52:32Z"
"tool": "binskim",
"ruleId": "BA2008",
"createdDate": "2025-08-25 17:54:06Z"
},
"77797a3e44634bb2994bd13ccc95ff4575bba474585dbd2cf3068a1c16bc0624": {
"signature": "77797a3e44634bb2994bd13ccc95ff4575bba474585dbd2cf3068a1c16bc0624",
"b8a4702fb4b855719e5e5033c3b629fbe6267d516ce8a18bd8f3be3b9962434b": {
"signature": "b8a4702fb4b855719e5e5033c3b629fbe6267d516ce8a18bd8f3be3b9962434b",
"alternativeSignatures": [
"4a6cb67bd4b401e9669c13a2162660aaefc0a94a4122e5b50c198414db545672"
"52d986be88f1c5696fc87d7794279d02f5084c645440e2dd2c3b5a2176b6bf52"
],
"target": "file:///D:/a/_work/1/vscode-server-win32-x64-web/node.exe",
"memberOf": [
"default"
],
"createdDate": "2025-03-17 11:52:32Z"
"tool": "binskim",
"ruleId": "BA2008",
"createdDate": "2025-08-25 17:54:06Z"
},
"30418bcc5269eaeb2832a2404465784431d4e72a2af332320c2b1db4768902ad": {
"signature": "30418bcc5269eaeb2832a2404465784431d4e72a2af332320c2b1db4768902ad",
"4dbc45d0405de2e83d53f10227e36b2a9d15eceb2c5e6934da5c4a1bffbfad89": {
"signature": "4dbc45d0405de2e83d53f10227e36b2a9d15eceb2c5e6934da5c4a1bffbfad89",
"alternativeSignatures": [
"b7b9eb974d7d3a4ae14df8695ca5a62592c8c9d20b7eda70a6535d50cbda3e7f"
"b6bab85ba5e97bc4e6ff2e8a7913cb9f4f3346f7bda435d176e0b1e3cfb883cf"
],
"target": "file:///D:/a/_work/1/vscode-server-win32-arm64/node.exe",
"memberOf": [
"default"
],
"createdDate": "2025-03-17 11:52:32Z"
"tool": "binskim",
"ruleId": "BA2008",
"createdDate": "2025-08-25 17:45:35Z"
},
"024ff37af329b63d2d9c83784cc071badf63b7729e3dd0969ab921d2f04d8e09": {
"signature": "024ff37af329b63d2d9c83784cc071badf63b7729e3dd0969ab921d2f04d8e09",
"alternativeSignatures": [
"b46b7d6ed331f3e62eff23c57d3a074f76ef618f108929851065904200f5a572"
],
"target": "file:///D:/a/_work/1/vscode-server-win32-arm64-web/node.exe",
"memberOf": [
"default"
],
"tool": "binskim",
"ruleId": "BA2008",
"createdDate": "2025-08-25 17:45:35Z"
}
}
}
16 changes: 8 additions & 8 deletions .devcontainer/devcontainer-lock.json
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
{
"features": {
"ghcr.io/devcontainers/features/desktop-lite:1": {
"version": "1.0.8",
"resolved": "ghcr.io/devcontainers/features/desktop-lite@sha256:e7dc4d37ab9e3d6e7ebb221bac741f5bfe07dae47025399d038b17af2ed8ddb7",
"integrity": "sha256:e7dc4d37ab9e3d6e7ebb221bac741f5bfe07dae47025399d038b17af2ed8ddb7"
"ghcr.io/devcontainers/features/desktop-lite:": {
"version": "1.2.8",
"resolved": "ghcr.io/devcontainers/features/desktop-lite@sha256:14ac23fd59afab939e6562ba6a1f42a659a805e4c574a1be23b06f28eb3b0b71",
"integrity": "sha256:14ac23fd59afab939e6562ba6a1f42a659a805e4c574a1be23b06f28eb3b0b71"
},
"ghcr.io/devcontainers/features/rust:1": {
"version": "1.3.3",
"resolved": "ghcr.io/devcontainers/features/rust@sha256:2521a8eeb4911bfcb22557c8394870ea22eb790d8e52219ddc5182f62d388995",
"integrity": "sha256:2521a8eeb4911bfcb22557c8394870ea22eb790d8e52219ddc5182f62d388995"
"ghcr.io/devcontainers/features/rust:": {
"version": "1.5.0",
"resolved": "ghcr.io/devcontainers/features/rust@sha256:0c55e65f2e3df736e478f26ee4d5ed41bae6b54dac1318c443e31444c8ed283c",
"integrity": "sha256:0c55e65f2e3df736e478f26ee4d5ed41bae6b54dac1318c443e31444c8ed283c"
}
}
}
4 changes: 2 additions & 2 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
"dockerfile": "Dockerfile"
},
"features": {
"ghcr.io/devcontainers/features/desktop-lite:1": {},
"ghcr.io/devcontainers/features/rust:1": {}
"ghcr.io/devcontainers/features/desktop-lite:": {},
"ghcr.io/devcontainers/features/rust:": {}
},
"containerEnv": {
"DISPLAY": "" // Allow the Dev Containers extension to set DISPLAY, post-create.sh will add it back in ~/.bashrc and ~/.zshrc if not set.
Expand Down
9 changes: 3 additions & 6 deletions .eslint-ignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,30 +10,27 @@
**/extensions/markdown-language-features/media/**
**/extensions/markdown-language-features/notebook-out/**
**/extensions/markdown-math/notebook-out/**
**/extensions/mermaid-chat-features/chat-webview-out/**
**/extensions/notebook-renderers/renderer-out/index.js
**/extensions/simple-browser/media/index.js
**/extensions/terminal-suggest/src/completions/upstream/**
**/extensions/terminal-suggest/src/shell/zshBuiltinsCache.ts
**/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/**
**/fixtures/**
**/node_modules/**
**/out-*/**/*.js
**/out-editor-*/**
**/out/**/*.js
**/out/**
**/out-*/**
**/src/**/dompurify.js
**/src/**/marked.js
**/src/**/semver.js
**/src/typings/**/*.d.ts
**/src/vs/*/**/*.d.ts
**/src/vs/base/test/common/filters.perf.data.js
**/src/vs/loader.js
**/test/unit/assert.js
**/test/automation/out/**
**/typings/**
Expand Down
125 changes: 125 additions & 0 deletions .eslint-plugin-local/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
# Custom ESLint rules

We use a set of custom [ESLint](http://eslint.org) to enforce repo specific coding rules and styles. These custom rules are run in addition to many standard ESLint rules we enable in the project. Some example custom rules includes:

- Enforcing proper code layering
- Preventing checking in of `test.only(...)`
- Enforcing conventions in `vscode.d.ts`

Custom rules are mostly used for enforcing or banning certain coding patterns. We tend to leave stylistic choices up to area owners unless there's a good reason to enforce something project wide.

This doc provides a brief overview of how these rules are setup and how you can add a new one.

# Resources
- [ESLint rules](https://eslint.org/docs/latest/extend/custom-rules) — General documentation about writing eslint rules
- [TypeScript ASTs and eslint](https://typescript-eslint.io/blog/asts-and-typescript-eslint/) — Look at how ESLint works with TS programs
- [ESTree selectors](https://eslint.org/docs/latest/extend/selectors) — Info about the selector syntax rules use to target specific nodes in an AST. Works similarly to css selectors.
- [TypeScript ESLint playground](https://typescript-eslint.io/play/#showAST=es) — Useful tool for figuring out the structure of TS programs and debugging custom rule selectors


# Custom Rule Configuration

Custom rules are defined in the `.eslint-plugin-local` folder. Each rule is defined in its own TypeScript file. These follow the naming convention:

- `code-RULE-NAME.ts` — General rules that apply to the entire repo.
- `vscode-dts-RULE-NAME.ts` — Rules that apply just to `vscode.d.ts`.

These rules are then enabled in the `eslint.config.js` file. This is the main eslint configuration for our repo. It defines a set of file scopes which rules should apply to files in those scopes.

For example, here's a configuration that enables the no `test.only` rule in all `*.test.ts` files in the VS Code repo:

```ts
{
// Define which files these rules apply to
files: [
'**/*.test.ts'
],
languageOptions: { parser: tseslint.parser, },
plugins: {
'local': pluginLocal,
},
rules: {
// Enable the rule from .eslint-plugin-local/code-no-test-only.ts
'local/code-no-test-only': 'error',
}
}
```

# Creating a new custom rule
This walks through the steps to create a new eslint rule:

1. Create a new rule file under `.eslint-plugin-local`. Generally you should call it `code-YOUR-RULE-NAME.ts`, for example, `.eslint-plugin-local/code-no-not-null-assertions-on-undefined-values.ts`

2. In this file, add the rule. Here's a template:

```ts
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/

import * as eslint from 'eslint';

export = new class YourRuleName implements eslint.Rule.RuleModule {

readonly meta: eslint.Rule.RuleMetaData = {
messages: {
customMessageName: 'message text shown in errors/warnings',
},
schema: false,
};

create(context: eslint.Rule.RuleContext): eslint.Rule.RuleListener {
return {
[SELECTOR]: (node: any) => {
// Report errors if needed
return context.report({
node,
messageId: 'customMessageName'
});
}
};
}
};
```

- Update the name of the class to match the name of your rule
- Add message entries for any errors you want to report
- Update `SELECTOR` with the [ESTree selector](https://eslint.org/docs/latest/extend/selectors) needed to target the nodes you are interested in. Use the [TypeScript ESLint playground](https://typescript-eslint.io/play/#showAST=es) to figure out which nodes you need and debug selectors

3. Register the rule in `eslint.config.js`

Generally this is just turning on the rule in the rule list like so:

```js
rules: {
// Name should match file name
'local/code-no-not-null-assertions-on-undefined-values': 'warn',
...
}
```

Rules can also take custom arguments. For example, here's how we can pass arguments to a custom rule in the `eslint.config.js`:

```
rules: {
'local/code-no-not-null-assertions-on-undefined-values': ['warn', { testsOk: true }],
...
}
```

In these cases make sure to update the `meta.schema` property on your rule with the JSON schema for the arguments. You can access these arguments using `context.options` in the rule `create` function


## Adding fixes to custom rules
Fixes are a useful way to mechanically fix basic linting issues, such as auto inserting semicolons. These fixes typically work at the AST level, so they are a more reliable way to perform bulk fixes compared to find/replaces.

To add a fix for a custom rule:

1. On the `meta` for your rule, add `fixable: 'code'`

2. When reporting an error in the rule, also include a `fix`. This is a function that takes a `fixer` argument and returns one or more fixes.

See the [Double quoted to single quoted string covert fix](https://github.com/microsoft/vscode/blob/b074375e1884ae01033967bf0bbceeaa4795354a/.eslint-plugin-local/code-no-unexternalized-strings.ts#L128) for an example. The ESLint docs also have [details on adding fixes and the fixer api](https://eslint.org/docs/latest/extend/custom-rules#applying-fixes)

The fixes can be run using `npx eslint --fix` in the VS Code repo
13 changes: 8 additions & 5 deletions .eslint-plugin-local/code-amd-node-module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,12 @@
*--------------------------------------------------------------------------------------------*/

import * as eslint from 'eslint';
import type * as ESTree from 'estree';
import { readFileSync } from 'fs';
import { join } from 'path';


export = new class ApiProviderNaming implements eslint.Rule.RuleModule {
export default new class ApiProviderNaming implements eslint.Rule.RuleModule {

readonly meta: eslint.Rule.RuleMetaData = {
messages: {
Expand All @@ -21,7 +23,8 @@ export = new class ApiProviderNaming implements eslint.Rule.RuleModule {
const modules = new Set<string>();

try {
const { dependencies, optionalDependencies } = require(join(__dirname, '../package.json'));
const packageJson = JSON.parse(readFileSync(join(import.meta.dirname, '../package.json'), 'utf-8'));
const { dependencies, optionalDependencies } = packageJson;
const all = Object.keys(dependencies).concat(Object.keys(optionalDependencies));
for (const key of all) {
modules.add(key);
Expand All @@ -33,13 +36,13 @@ export = new class ApiProviderNaming implements eslint.Rule.RuleModule {
}


const checkImport = (node: any) => {
const checkImport = (node: ESTree.Literal & { parent?: ESTree.Node & { importKind?: string } }) => {

if (node.type !== 'Literal' || typeof node.value !== 'string') {
if (typeof node.value !== 'string') {
return;
}

if (node.parent.importKind === 'type') {
if (node.parent?.type === 'ImportDeclaration' && node.parent.importKind === 'type') {
return;
}

Expand Down
5 changes: 3 additions & 2 deletions .eslint-plugin-local/code-declare-service-brand.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,9 @@
*--------------------------------------------------------------------------------------------*/

import * as eslint from 'eslint';
import type * as ESTree from 'estree';

export = new class DeclareServiceBrand implements eslint.Rule.RuleModule {
export default new class DeclareServiceBrand implements eslint.Rule.RuleModule {

readonly meta: eslint.Rule.RuleMetaData = {
fixable: 'code',
Expand All @@ -14,7 +15,7 @@ export = new class DeclareServiceBrand implements eslint.Rule.RuleModule {

create(context: eslint.Rule.RuleContext): eslint.Rule.RuleListener {
return {
['PropertyDefinition[key.name="_serviceBrand"][value]']: (node: any) => {
['PropertyDefinition[key.name="_serviceBrand"][value]']: (node: ESTree.PropertyDefinition) => {
return context.report({
node,
message: `The '_serviceBrand'-property should not have a value`,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@
*--------------------------------------------------------------------------------------------*/

import * as eslint from 'eslint';
import { Node } from 'estree';
import type * as estree from 'estree';

export = new class EnsureNoDisposablesAreLeakedInTestSuite implements eslint.Rule.RuleModule {
export default new class EnsureNoDisposablesAreLeakedInTestSuite implements eslint.Rule.RuleModule {

readonly meta: eslint.Rule.RuleMetaData = {
type: 'problem',
Expand All @@ -18,15 +18,15 @@ export = new class EnsureNoDisposablesAreLeakedInTestSuite implements eslint.Rul
};

create(context: eslint.Rule.RuleContext): eslint.Rule.RuleListener {
const config = <{ exclude: string[] }>context.options[0];
const config = context.options[0] as { exclude: string[] };

const needle = context.getFilename().replace(/\\/g, '/');
if (config.exclude.some((e) => needle.endsWith(e))) {
return {};
}

return {
[`Program > ExpressionStatement > CallExpression[callee.name='suite']`]: (node: Node) => {
[`Program > ExpressionStatement > CallExpression[callee.name='suite']`]: (node: estree.Node) => {
const src = context.getSourceCode().getText(node);
if (!src.includes('ensureNoDisposablesAreLeakedInTestSuite(')) {
context.report({
Expand Down
Loading