Skip to content
This repository was archived by the owner on Sep 15, 2025. It is now read-only.
/ code Public archive
forked from microsoft/vscode
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
9247 commits
Select commit Hold shift + click to select a range
dba5f79
Merge pull request #292704 from mjbvz/dev/mjbvz/isolated-quokka
mjbvz Feb 3, 2026
68e1b20
Fix quick chat layout (#292705)
roblourens Feb 3, 2026
ce96513
fix selection, accessibility, and keyboard bug (#292709)
justschen Feb 4, 2026
d158e4e
Update status bar item with hovers (#292136)
dmitrivMS Feb 4, 2026
9ba1a35
Update src/vs/workbench/contrib/preferences/browser/settingsEditor2.ts
rzhao271 Feb 4, 2026
02df3fb
Revert "Bump @isaacs/brace-expansion from 5.0.0 to 5.0.1 in /extensio…
rzhao271 Feb 4, 2026
f0a58da
Revert "Bump @isaacs/brace-expansion from 5.0.0 to 5.0.1 in /extensio…
rzhao271 Feb 4, 2026
f4ce567
Revert "Bump @isaacs/brace-expansion from 5.0.0 to 5.0.1 in /extensio…
rzhao271 Feb 4, 2026
dd69bca
Add initial hooks support (#292699)
pwang347 Feb 4, 2026
3cd367d
Fix source maps for extensions after tsgo
mjbvz Feb 4, 2026
9140aa3
Fix redundant "Checkbox for Step" in walkthrough step aria-labels (#2…
Copilot Feb 4, 2026
bc72d94
Merge pull request #292757 from mjbvz/dev/mjbvz/lonely-felidae
mjbvz Feb 4, 2026
6976ad0
Fix product icon not rendering in updates status bar entry (#292759)
dmitrivMS Feb 4, 2026
7914379
Restructure hook execution to always go through the renderer process …
roblourens Feb 4, 2026
0f6461f
chat: polishes for steering/queued messages
connor4312 Feb 4, 2026
7d015ab
Merge pull request #292775 from microsoft/connor4312/queuing-polishes
connor4312 Feb 4, 2026
d3dbc03
Prepopulate the Find in Page search text with the currently selected …
jruales Feb 4, 2026
519788f
@vscode/proxy-agent 0.38.0 (#289736)
chrmarti Feb 3, 2026
ed98203
agent sessions window - do not restart exthost when adding folders (#…
bpasero Feb 4, 2026
55ab41a
workspaces - allow to join entering workspace (#289653) (#292785)
bpasero Feb 4, 2026
e09610e
More data to investigate (#292300)
chrmarti Feb 4, 2026
fef6f5a
build: always repackage electron from oss entry scripts (#292770)
deepak1556 Feb 4, 2026
235e05f
Fix `isStringImplicitContextValue` check (fixes selection context) (#…
alexr00 Feb 4, 2026
b22bccf
fix: associate extHost lifecycle to window (#292672)
deepak1556 Feb 4, 2026
5dd737d
Skip URL detection in high-throughput terminal scenarios (#291896)
Copilot Feb 4, 2026
82b251a
chore: replace legacy watcher with @parcel/watcher for build file wat…
joaomoreno Feb 4, 2026
9caffaa
Git - do not show repositories in the empty window (#292804)
lszomoru Feb 4, 2026
eff3b9a
BUILD: Revert "build: always repackage electron from oss entry script…
alexr00 Feb 4, 2026
30d0f45
Merge pull request #292685 from microsoft/xterm_20260203
Tyriar Feb 4, 2026
cc4c023
font annotations: make delete annotations work with intersecting anno…
aiday-mar Feb 4, 2026
b42376d
Add 'devcontainer' dependabot package ecosystem (#292834)
joshspicer Feb 4, 2026
c5299f2
style: remove unnecessary overflow properties from titlebar and widge…
mrleemurray Feb 4, 2026
b3669c2
ci: fix electron download from test steps (#292811)
deepak1556 Feb 4, 2026
a758baf
Bump ghcr.io/devcontainers/features/desktop-lite from 1.0.8 to 1.2.8 …
dependabot[bot] Feb 4, 2026
0895e6e
Remove details from auto when not logged in (#292852)
lramos15 Feb 4, 2026
8d5e983
Merge pull request #292857 from microsoft/mrleemurray/annoyed-beige-p…
mrleemurray Feb 4, 2026
27b960f
fix: flaky chat accessibility smoke tests (#292859)
deepak1556 Feb 4, 2026
b8124ed
debt - keep enums selfcontained in agent sessions (#292865)
bpasero Feb 4, 2026
17f4969
Revert "Revert "Bump @isaacs/brace-expansion from 5.0.0 to 5.0.1 in /…
rzhao271 Feb 4, 2026
ad0d90a
Revert "Revert "Bump @isaacs/brace-expansion from 5.0.0 to 5.0.1 in /…
rzhao271 Feb 4, 2026
f54be1c
fix flakey test (#292874)
meganrogge Feb 4, 2026
08f3997
ignore watch errors (#292873)
joaomoreno Feb 4, 2026
63cc68e
feat: add size registry support to webview theme data provider
mrleemurray Feb 4, 2026
5ccfd8b
Merge pull request #292886 from microsoft/mrleemurray/small-coffee-ge…
mrleemurray Feb 4, 2026
8a4dba8
Fix `rootDir` for workspace extensions
mjbvz Feb 4, 2026
79e7736
Revert "Revert "Bump @isaacs/brace-expansion from 5.0.0 to 5.0.1 in /…
rzhao271 Feb 4, 2026
942ad4a
Preserve VS Code extension paths in telemetry callstacks
bryanchen-d Feb 4, 2026
e6b0655
fix: correct case sensitivity in test expectation for built-in extens…
bryanchen-d Feb 4, 2026
3feed2b
`sessionId` -> `sessionResource` in task execution and output monitor…
meganrogge Feb 4, 2026
4bba64c
fix: support multi-segment suffixes like .vscode-server-insiders in e…
bryanchen-d Feb 4, 2026
923956b
Implement matchTerminalPromptOption function and add tests for case-i…
meganrogge Feb 4, 2026
a56e77f
Add accessibility progress sound to retry request button (#292697)
Copilot Feb 4, 2026
dbd2e69
Reaching out to next annotation when boundaries equal (#292875)
aiday-mar Feb 4, 2026
5766808
Merge pull request #292893 from mjbvz/dev/mjbvz/shy-gayal
mjbvz Feb 4, 2026
a67f7c7
Expose restore to last checkpoint command, add it to accessibility he…
meganrogge Feb 4, 2026
095b74a
Merge pull request #292742 from microsoft/brchen/preserve-extension-p…
bryanchen-d Feb 4, 2026
44b47a8
add a command to toggle between todos and chat input (#283134)
meganrogge Feb 4, 2026
e4e3c1f
Fix terminal command decoration to show failed icon when chat request…
Copilot Feb 4, 2026
66d4d91
Apply suggestion from @Copilot
rzhao271 Feb 4, 2026
b5f1376
Support serialized tool call results that return resources (e.g. rg, …
DonJayamanne Feb 4, 2026
1420f16
Skills as slash commands (#292887)
pwang347 Feb 4, 2026
4ad2cc6
notify when chat questions come in (#292911)
meganrogge Feb 4, 2026
b40b1db
improve specificity for chat selector to fix smoketest (#292922)
meganrogge Feb 4, 2026
c176f53
Update Fig spec for Azure Developer CLI (azd) (#292894)
JeffreyCA Feb 4, 2026
6a7cce3
add claude.md support (#292898)
aeschli Feb 4, 2026
687717f
Remove "experimental" from finalized setting
mjbvz Feb 4, 2026
48c2726
play user action required sound regardless of window focus (#292930)
meganrogge Feb 4, 2026
38398d6
Hooks format cleanup (#292928)
pwang347 Feb 4, 2026
79d927e
Add diagnostics for hooks (#292912)
pwang347 Feb 4, 2026
1648833
Merge pull request #292932 from mjbvz/dev/mjbvz/xenacious-cricket
mjbvz Feb 4, 2026
6327bcc
preToolUse hook supporting "deny" (#292890)
roblourens Feb 4, 2026
f16dfff
allow clicking links in embedded terminal (#292940)
meganrogge Feb 4, 2026
cfbd57a
Remove region diagnostics setting
mjbvz Feb 4, 2026
1ee5226
hide chat participants @ contributed via chat sessions api (#292953)
joshspicer Feb 4, 2026
c80d97f
Merge pull request #292955 from mjbvz/dev/mjbvz/sleepy-hyena
mjbvz Feb 4, 2026
42414b2
fix regression with xterm styling (#292945)
meganrogge Feb 4, 2026
2a55ee3
replace in checks with `Object.hasOwn` (#292956)
meganrogge Feb 4, 2026
704095a
Add common output hook types and reorganize related code (#292961)
roblourens Feb 4, 2026
d982778
fix stray executing tool call (#292959)
justschen Feb 5, 2026
c35bf16
Support serialized tool call results for generic tools (similar to MC…
DonJayamanne Feb 5, 2026
842bdbb
Fix extHostHooks for web (#292968)
pwang347 Feb 5, 2026
ae1c223
Fix opening chat editors
mjbvz Feb 5, 2026
e190bdf
feat: add chat settings in their own section
rzhao271 Feb 5, 2026
bcdcd5b
feat: sort settings by experimental status
rzhao271 Feb 5, 2026
ab2c900
Merge pull request #292983 from mjbvz/dev/mjbvz/curved-primate
mjbvz Feb 5, 2026
70f5cb9
chore: combine comments
rzhao271 Feb 5, 2026
10f0654
Rename and clarify internal vs external chat hook types (#292979)
roblourens Feb 5, 2026
f850b0a
Merge pull request #292728 from microsoft/convincing-carp
cwebster-99 Feb 5, 2026
974f203
Updates for chat extension hooks (#292991)
pwang347 Feb 5, 2026
38f1626
Make the view models known to the text models to ensure all events ar…
alexdima Feb 5, 2026
bdacbb9
Fix flaky tests by freezing time (#293043)
dmitrivMS Feb 5, 2026
e7cfb10
vscode-dts: Add LineCommentConfig interface & update lineComment (#28…
hkleungai Feb 5, 2026
dd683d8
BUILD: Revert "fix: associate extHost lifecycle to window" (#293053)
alexr00 Feb 5, 2026
0561e9e
Do not update agent status indicator bg color when debugging (#292905)
joshspicer Feb 5, 2026
de9c5a9
Register App Path for VS Code on Windows (#293009)
dmitrivMS Feb 5, 2026
e6fdfd7
Update icons for ipynb and code-workspace file associations on Window…
dmitrivMS Feb 5, 2026
f696579
Fix/resource leak osreleaseinfo (#293027)
aturzone Feb 5, 2026
9519571
Skip flaky test " setTextDocumentLanguage for notebook cells" (#293072)
alexr00 Feb 5, 2026
e940fed
agent sessions - remove border when sessions show stacked (#293074)
bpasero Feb 5, 2026
bf79fb6
editors - introduce `MODAL_GROUP` for a modal editor part (#293020)
bpasero Feb 5, 2026
e80df14
theme - update color values for command center and editor widgets in …
mrleemurray Feb 5, 2026
f45c1a8
theme - update command center and widget background colors in 2026 li…
mrleemurray Feb 5, 2026
da60cfc
Bump distro (#293094)
alexr00 Feb 5, 2026
833ea64
Skip `install and enable vscode-smoketest-check extension` (#293111)
alexr00 Feb 5, 2026
a3b2a31
fix: launching application after install on windows (#292864)
deepak1556 Feb 5, 2026
dcde087
Fixes: #293115
EmrecanKaracayir Feb 5, 2026
45934c7
Enable copilotTrackingId as assignment unit in vscode core (#292997)
vijayupadya Feb 5, 2026
36d5f82
theme - add widget border and refine shadow styles in 2026 light theme
mrleemurray Feb 5, 2026
f26a1d1
toasts - fix leaks (#293119)
bpasero Feb 5, 2026
93c6f60
fix: update selection and highlight background colors in 2026 Dark theme
mrleemurray Feb 5, 2026
d7c0597
Merge pull request #293116 from EmrecanKaracayir/emrecankaracayir/inl…
Tyriar Feb 5, 2026
db2ddd5
Merge pull request #293133 from microsoft/mrleemurray/yelling-crimson…
mrleemurray Feb 5, 2026
dae9c94
chat: wire up yieldrequested for steering messages (#293026)
connor4312 Feb 5, 2026
4b4cae3
Mark these as ExP controllable (#293135)
alexdima Feb 5, 2026
2fd6a33
Surface power API
chrmarti Feb 5, 2026
21bea13
Merge pull request #293140 from microsoft/mrleemurray/complex-gold-ma…
mrleemurray Feb 5, 2026
3acdd6f
Bump distro
chrmarti Feb 5, 2026
5bfd501
Revert "chore: replace legacy watcher with @parcel/watcher for build …
bpasero Feb 5, 2026
5b63ed8
Update src/vs/workbench/contrib/preferences/browser/settingsLayout.ts
rzhao271 Feb 5, 2026
e32b285
Warn about distro commit and compat check early (#293104)
alexr00 Feb 5, 2026
fc61509
Merge pull request #292989 from microsoft/rzhao271/public-lion
rzhao271 Feb 5, 2026
1a8d39c
Update input validation colors in 2026 theme files
mrleemurray Feb 5, 2026
57bad9e
add a bunch of logs for output monitor (#292732)
meganrogge Feb 5, 2026
82714b5
Merge pull request #293186 from microsoft/mrleemurray/outstanding-gra…
mrleemurray Feb 5, 2026
2bb11a0
fix: filter interaction with settings search regressed (#293187)
rzhao271 Feb 5, 2026
3ef1567
editors - open MCP server modal as well (#293189)
bpasero Feb 5, 2026
22d90ca
modal editor - style and size tweaks (#293193)
bpasero Feb 5, 2026
6f5c1ea
Add my name for sanity tests in CODENOTIFY (#293197)
dmitrivMS Feb 5, 2026
f47e17c
Normalize Windows drive letter when comparing cwd and userHome (fix #…
gjsjohnmurray Feb 5, 2026
6e029c3
mcp: initial data flow for MCP gateway
connor4312 Feb 5, 2026
3832ddc
fix: associate extHost lifecycle to window (#293144)
deepak1556 Feb 5, 2026
1164cbd
debt: cleanup leaks
connor4312 Feb 5, 2026
4c3d9c1
modal editor - copilot feedback addressed (#293208)
bpasero Feb 5, 2026
ba42721
modal editor - introduce real menu and actions for title toolbar (#29…
bpasero Feb 5, 2026
4d4ae5f
Merge pull request #293209 from microsoft/connor4312/mcp-gateway-1
connor4312 Feb 5, 2026
5220198
Remove inline action buttons from update status bar entry tooltip. (#…
dmitrivMS Feb 5, 2026
be51f7b
Fix text clipping in Copilot Chat inline terminal for alternate buffe…
Copilot Feb 5, 2026
2b09c1f
Fix terminal task system memory leaks (#292937)
Copilot Feb 5, 2026
8470b2c
move questions carousel above input part + many ux fixes (#292990)
justschen Feb 5, 2026
b46de1b
feat(accessibility): Add Accessibility Help System for find/filter di…
accesswatch Feb 5, 2026
610de18
fix: allows to run apps that leverage Apple's CoreAudio Tap api (#293…
deepak1556 Feb 5, 2026
f4a698c
Fix F7 keybinding conflict for accessible diff view (#293163)
Copilot Feb 5, 2026
a0d45d3
moves share button to the left of command palette
eli-w-king Feb 5, 2026
d37ccd6
Merge pull request #293220 from microsoft/eli/share-move
eli-w-king Feb 5, 2026
a39fb79
fix(accessibility): Add ARIA hints and fix spurious announcements in …
accesswatch Feb 5, 2026
665de62
add accessibility instructions (#293227)
meganrogge Feb 5, 2026
ccef9ec
add first repo skill, comprehensive accessibility guidelines for VS C…
meganrogge Feb 5, 2026
107a383
Add skill frontmatter fields for slash command support (#293173)
pwang347 Feb 6, 2026
ccb9e57
chat: polish queue/steering menu button (#293237)
connor4312 Feb 6, 2026
c7a9f45
Enhance preToolUse hook and clean up code (#293265)
roblourens Feb 6, 2026
a02259f
Update RequestTurn2 to allow passing a request Id from chat extension…
DonJayamanne Feb 6, 2026
e424bfc
Merge pull request #293212 from microsoft/connor4312/293200
connor4312 Feb 6, 2026
ea0bcdf
fix edits jumping around and questions appearing above (#293302)
justschen Feb 6, 2026
9ad359c
Leaks! (#293200) (#293308)
bpasero Feb 6, 2026
0660bf5
String update (#293298)
pwang347 Feb 6, 2026
766e171
extensions - open as editor again (#293334)
bpasero Feb 6, 2026
d44457c
style - update styles for modal editor components (#293341)
bpasero Feb 6, 2026
37022be
fix - adjust header height in `ModalEditorPart` (#293346)
bpasero Feb 6, 2026
6764590
Switch over to command for PR chat response type (#293161)
alexr00 Feb 6, 2026
ecb1e46
Adds kusto exploration instructions & improves telemetry types (#293355)
hediet Feb 6, 2026
d872b79
Avoid overwriting shortcuts during background update if they already …
dmitrivMS Feb 6, 2026
2158344
style - include modern default theme files in 2026 Dark and Light themes
mrleemurray Feb 6, 2026
c91b6d8
style - enhance dark theme with brightness reduction for better contrast
mrleemurray Feb 6, 2026
b412057
style - update titlebar styles for improved opacity and background ha…
mrleemurray Feb 6, 2026
5f04072
Merge pull request #293379 from microsoft/mrleemurray/past-fuchsia-bird
mrleemurray Feb 6, 2026
50af822
Merge pull request #293383 from microsoft/mrleemurray/main-blush-leech
mrleemurray Feb 6, 2026
ef923dc
modal editor - tweaks (#293388)
bpasero Feb 6, 2026
4f99130
modal editor - increase z-index again (#293393)
bpasero Feb 6, 2026
3a3f254
Merge pull request #293396 from microsoft/mrleemurray/multiple-copper…
mrleemurray Feb 6, 2026
56cda43
Adds user interactive service to allow mocking focus/hover states (in…
hediet Feb 6, 2026
249b633
Integrates IUserInteractionService across code editor components
hediet Feb 6, 2026
78715f5
Fixes CI
hediet Feb 6, 2026
58f24e2
Remove extra parentheses from ShouldUpdateShortcut checks in code.iss…
dmitrivMS Feb 6, 2026
5bbc012
Render update action button in release notes webview (#293211)
dmitrivMS Feb 6, 2026
ec6a15b
Fix leaks in port auto forwarding (#293409)
alexr00 Feb 6, 2026
c9586c2
Enable npm scripts
remcohaszing Dec 14, 2025
70c1d64
Fix leak in simple file dialog (#293411)
alexr00 Feb 6, 2026
5999496
Update extension button styles and improve button hierarchy in extens…
mrleemurray Feb 6, 2026
11eabe1
Update button and badge colors in 2026 Dark theme for better visibility
mrleemurray Feb 6, 2026
820b0f8
Merge pull request #293437 from microsoft/mrleemurray/comfortable-amb…
mrleemurray Feb 6, 2026
a319065
modal editor tweaks (#293434)
bpasero Feb 6, 2026
f00d9a6
Merge pull request #293433 from microsoft/mrleemurray/normal-maroon-h…
mrleemurray Feb 6, 2026
fdfcc5f
Fix some leaks (#293406)
alexr00 Feb 6, 2026
f493ad3
Fix text/uri-list transformation in tree view drag for remote environ…
Copilot Feb 6, 2026
5dcb935
Add accessibility instructions for AI coding agents (#293290)
digitarald Feb 6, 2026
a95abce
fix leaking disposables (#293155)
jrieken Feb 6, 2026
7244160
Use MODAL_GROUP for agent session projection editors (#293390)
Copilot Feb 6, 2026
e2c0006
Adjust z-index values for UI elements in styles.css
mrleemurray Feb 6, 2026
343885d
fix: gate inline completion language status on AI features disabled s…
Copilot Feb 6, 2026
7704ade
refactor: make sentiment check reactive in inline completion status
Copilot Feb 6, 2026
c308cc9
perf: check sentiment before state to avoid unnecessary computation
Copilot Feb 6, 2026
a20e879
fix: restore box-shadow for activity bar in nosidebar layout
mrleemurray Feb 6, 2026
230e74d
modal editor - tweak for settings and multi editor support (#293460)
bpasero Feb 6, 2026
1c59d61
Merge pull request #293470 from microsoft/mrleemurray/unacceptable-gr…
mrleemurray Feb 6, 2026
8bd4f15
Merge pull request #293463 from microsoft/mrleemurray/sore-silver-tuna
mrleemurray Feb 6, 2026
53149f8
retain cursor position per provider so it remains stable while stream…
meganrogge Feb 6, 2026
1139e72
improve accessible view cursor position save/restore reliability (#29…
meganrogge Feb 6, 2026
17cc185
PostToolUse hook (#293282)
roblourens Feb 6, 2026
35672d1
feat: move experimental extension settings to the end (#293499)
rzhao271 Feb 6, 2026
c959e64
Bump bytes from 1.6.0 to 1.11.1 in /cli (#292663)
dependabot[bot] Feb 6, 2026
1de769f
Bump webpack from 5.100.0 to 5.105.0 (#293210)
dependabot[bot] Feb 6, 2026
527178c
Bump ghcr.io/devcontainers/features/rust from 1.3.3 to 1.5.0 (#292849)
dependabot[bot] Feb 6, 2026
744f0f3
Fixes esbuild issues
hediet Feb 6, 2026
b80d7d2
Fixes CI
hediet Feb 6, 2026
fee2867
Bump @modelcontextprotocol/sdk from 1.25.2 to 1.26.0 in /test/mcp (#2…
dependabot[bot] Feb 6, 2026
663d4b3
chat / sessions - adopt `max-width` rule for session title and sessio…
bpasero Feb 6, 2026
107a52d
Improve chat setup when extension has error condition (fix #293326) (…
bpasero Feb 6, 2026
ce2bb21
rm `any` from task files (#293508)
meganrogge Feb 6, 2026
a0b0650
Add onDidExecuteHook event to HooksExecutionService (#293279)
roblourens Feb 6, 2026
94df4cd
Handle multiple post/preToolUse hooks more correctly (#293517)
roblourens Feb 6, 2026
4103069
feat: add vision policy handling for image attachments (#292586)
cwebster-99 Feb 6, 2026
e0fb070
fix auto reply, ensure default option is provided (#293525)
meganrogge Feb 6, 2026
5424fce
Adopts user interaction service in inline completions
hediet Feb 6, 2026
806463c
chat: add drag-and-drop reordering for pending messages (#293512)
connor4312 Feb 6, 2026
e0b1c26
Support for confirmation with custom buttons via toolcall (#293402)
DonJayamanne Feb 6, 2026
aea8c3f
Bump tar and dmg-builder in /build (#293531)
dependabot[bot] Feb 6, 2026
acab057
Merge pull request #283432 from remcohaszing/npm-enable-scripts
mjbvz Feb 6, 2026
44f6dd4
chat: cleanup action states around pending requests
connor4312 Feb 6, 2026
fa6cfe1
Metered network connections support (#288919)
dmitrivMS Feb 6, 2026
84c404c
improve question carousel accessibility (#293538)
meganrogge Feb 6, 2026
1dde0d9
Support OS-specific commands for hooks (#293530)
pwang347 Feb 6, 2026
424c52d
Fix accessibility skill (#293548)
benvillalobos Feb 6, 2026
9f384ab
chat: fix editing a past request with ongoing requests makes it steer…
connor4312 Feb 6, 2026
3c79374
chat: fix attachments not showing in queued messages
connor4312 Feb 6, 2026
90250bf
Polish integrated browser UI (#293218)
daviddossett Feb 6, 2026
92f3084
hook streaming first pass (#293514)
justschen Feb 7, 2026
441344c
Merge pull request #293552 from microsoft/connor4312/queue-state-butt…
connor4312 Feb 7, 2026
d20d8cb
Support transcript_path on hooks (#293567)
roblourens Feb 7, 2026
0ed85cc
Polish agent sessions list UI (#293523)
daviddossett Feb 7, 2026
05aadf1
updatedInput for PreToolUse (#293575)
roblourens Feb 7, 2026
f0c6399
Limit the subagent model to a model with multiplier <= the main agent…
roblourens Feb 7, 2026
0204a85
Support PreCompact hook (#293581)
roblourens Feb 7, 2026
702d358
Display a confetti animation on chat response thumbs up (#293582)
dmitrivMS Feb 7, 2026
1e63652
Update status bar entry bug fixes (#293625)
dmitrivMS Feb 7, 2026
4a3a4c0
Handle remote OS for hook detection (#293596)
pwang347 Feb 7, 2026
a09fd62
Add common blocking behaviour for hooks (#293543)
pwang347 Feb 7, 2026
3770523
chat setup - improve detection for panel welcome on context keys that…
bpasero Feb 7, 2026
0e9abba
Add /hooks slash command (#293583)
roblourens Feb 7, 2026
80275d2
modal editor - block most workbench commands when modal editor shows …
bpasero Feb 7, 2026
8eeb7b9
debt - fix some leaks found by Copilot (#293684)
bpasero Feb 7, 2026
efb6eee
Git - openRepository extension API should always open the repository …
lszomoru Feb 7, 2026
a4b17ff
debt - fix some leaks found by copilot (#293685)
bpasero Feb 7, 2026
1bdfead
Adjust agent session list item sizing (#293666)
daviddossett Feb 7, 2026
a7e4a1a
debt - fix some leaks found by Copilot (#293689)
bpasero Feb 7, 2026
a7af006
Assigning to the folding icon variable (#293652)
aiday-mar Feb 7, 2026
6babfd1
Fix input persistence when sending to new chat session (#293577)
Copilot Feb 7, 2026
05d55b3
debt - fix some leaks found by copilot (#293693)
bpasero Feb 7, 2026
7b1aae9
Track external tool calls (#290886)
roblourens Feb 7, 2026
1aa2356
Support rendering subagent details from external agents (#293705)
roblourens Feb 7, 2026
f7e2fdc
Avoid auto approval for confirmation tool with buttons for background…
DonJayamanne Feb 8, 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.
1 change: 1 addition & 0 deletions .claude/CLAUDE.md
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
7 changes: 3 additions & 4 deletions .eslint-ignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
**/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/**
Expand All @@ -24,16 +25,14 @@
**/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