Commit Graph

198 Commits

Author SHA1 Message Date
Connor Peet c30ed7c4a5 feat(agent-host): gate inbound filesystem RPCs with a permission service (#314194)
* feat(agent-host): gate inbound filesystem RPCs with a permission service

Reverse `resource{Read,List,Write,Delete,Move}` from remote agent hosts
were routed straight to `IFileService` with no authorization. Add a
permission service that gates each reverse RPC, returns typed
`PermissionDenied` with `data.request`, handles negotiation via the new
`resourceRequest` reverse RPC, and surfaces a Deny / Allow / Always Allow
prompt above the chat input.

URIs are canonicalized through `IFileService.realpath` before comparison
so `..` and symlinks can't escape grants. Implicit read grants are
auto-registered for customization URIs the client sends to the host, so
plugin sync remains friction-free. Always-Allow grants persist into a
new user setting, `chat.agentHost.localFilePermissions`.

* comments and tests
2026-05-04 22:36:24 +02:00
Rob Lourens 23c0b41d69 Enable test/test-integration scripts to take file.test.ts arguments (#306039)
* Enable test/test-integration scripts to take file.test.ts arguments
The agent likes to use them this way, when it doesn't read the skill

Co-authored-by: Copilot <copilot@github.com>

* And this

* Fixes

* update

Co-authored-by: Copilot <copilot@github.com>

---------

Co-authored-by: Copilot <copilot@github.com>
2026-03-29 02:48:59 +00:00
Osvaldo Ortega ae536d389c Exclude web.test.js 2026-03-10 16:00:59 -07:00
Matt Bierner bf04914d59 Make sure js files still follow eslint semicolon rules 2025-11-12 13:54:56 -08:00
Benjamin Pasero 898436fbe6 Clean up code layering suppressions (fix #272777) (#272834)
* Clean up code layering suppressions (fix #272777)

* Update test/unit/electron/index.js

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-10-23 09:28:38 +02:00
Aman Karmani 934593aeb1 fix some typos (#259747) 2025-08-06 11:49:35 +00:00
Matt Bierner a0e680dc71 Make sure inline chat math wrapped in parens is rendered
Syntax like `a ($x$) b` is generated fairly often
2025-07-11 00:03:47 -07:00
Aman Karmani 7deabf42e7 [engineering] add testSplit option to unit-test runner (#253049)
helpful to run tests in parallel
2025-07-07 20:34:30 +00:00
Ladislau Szomoru 4d7c56ee82 Engineering - Add GitHub action for pull requests (#254056)
* Test - handle running tests as part of a GitHub action

* Add GitHub action files
2025-07-04 08:21:56 +00:00
Benjamin Pasero cdf404ff47 debt - restore old layer name (#250928) 2025-06-09 07:08:43 +00:00
Samuel Rigaud e975fc9be8 test: fix typos (#247259)
Co-authored-by: Samuel Rigaud <rigaud@gmail.com>
2025-04-23 23:38:49 +00:00
Benjamin Pasero 7d2083ed1d tests - allow to run our tests in chrome or msedge (#244969) 2025-03-28 08:17:16 -07:00
João Moreno ae43cc72b6 make unit tests faster (#241847) 2025-02-25 15:18:20 +01:00
Johannes d96ee375ea fix tests 2025-01-24 08:46:16 +01:00
Johannes Rieken 17f6bcb7d2 chore - modernise test runner (#235511)
async/wait, remove AMD/ESM split, cleanup
2024-12-06 18:53:29 +01:00
Johannes Rieken 1994ebabef tweak inline chat hint (#234821)
* make editor readonly and disable squiggle while inline chat shows reply

https://github.com/microsoft/vscode/issues/226160

* tweak inline chat hint

only show on intented empty lines, hide when command run

* fix tests (only disable squiggle, not readonlyness)
2024-11-28 12:58:47 +01:00
Johannes Rieken e45ebc6d59 fail tests when having unhandled errors (#234673) 2024-11-26 08:32:08 -08:00
Benjamin Pasero c5b6ef14e6 esm - more cleanup (#230285) 2024-10-02 11:55:17 +02:00
Benjamin Pasero f09184ceb7 esm - set type: module top level (#230210) 2024-10-01 20:48:56 +02:00
Benjamin Pasero 3b68a06818 esm - removal of CSS loader (#230206) 2024-10-01 19:24:18 +02:00
Benjamin Pasero 332b89f198 esm - remove AMD build scripts, tests and variables 2024-09-27 08:04:01 +02:00
Robo b5a6aa14a8 feat: switch to npm as default package manager (#226927)
* feat: move from yarn to npm

* chore: skip yarn.lock files

* fix: playwright download

* chore: fix compile and hygiene

* chore: bump vsce@2.17.0

Refs https://github.com/microsoft/vscode-vsce/commit/8b49e9dfdf909ad3af2b9ec9c825f5b501f6d75e

* test: update results for bat and sh colorizer tests

* fix: add missing lock files for windows

* fix: switch to legacy-peer-deps

* chore: update markdown-it@14.1.0

Refs https://github.com/markdown-it/markdown-it/commit/737c95a12976357df99652e4b51d831cac4a75aa

esbuild step in extensions-ci-pr was previously using markdown-it
from root which had userland punycode and was able to compile successfully.

* ci: increase pr timeout for windows integration tests

* chore: fix product build

* build: ignore extension dev dependency for rcedit

* build: fix working directory inside container

* build: fix dependency generation

* npm: update dependencies

* ci: use global npmrc

* ci: update cache

* ci: setup global npmrc for private npm auth

* build: fix extension bundling

* chore: sync npm dependencies

* ci: debug env variables for container

* ci: fix win32 cli pipeline

* build: fix npmrc config usage for build/ and remote/ dirs

* fix: windows build

* fix: container builds

* fix: markdown-language-features tests and bundling

```
[03:58:22] Error: Command failed: /Users/demohan/.nvm/versions/node/v20.15.1/bin/node /Users/demohan/github/vscode/extensions/markdown-language-features/esbuild-notebook.js --outputRoot /Users/demohan/github/vscode/.build/extensions/markdown-language-features
✘ [ERROR] Could not resolve "punycode"

    extensions/markdown-language-features/node_modules/markdown-it/lib/index.js:14:27:
      14 │ var punycode     = require('punycode');
         ╵                            ~~~~~~~~~~

  The package "punycode" wasn't found on the file system but is built into node. Are you trying to bundle for node? You can use "platform: 'node'" to do that, which will remove this error.
```

Adds userland package based on https://github.com/markdown-it/markdown-it/commit/beed9aee2c1b44819afc25d485e86a6c699b6ef0

* fix: container builds for distro

* chore: update yarn occurrences

* fixup! chore: bump vsce@2.17.0

Uses the closest version to `main` branch that does not
include https://github.com/microsoft/vscode-vsce/commit/d3cc84cdec99b8e9f24be63d1a2a54abe908f68b
while still having the fix https://github.com/microsoft/vscode-vsce/commit/8b49e9dfdf909ad3af2b9ec9c825f5b501f6d75e

* chore: sync npm dependencies

* chore: sync npm dependencies

* chore: sync npm dependencies

* chore: throw error when yarn is used for installation

* chore: add review feedback

* chore: switch exec => run where needed

* chore: npm sync dependencies

* fix: markdown-language-features bundling

```
✘ [ERROR] Could not resolve "punycode"

    extensions/markdown-language-features/node_modules/markdown-it/lib/index.js:14:27:
      14 │ var punycode     = require('punycode');
         ╵                            ~~~~~~~~~~

  The package "punycode" wasn't found on the file system but is built into node. Are you trying to bundle for node? You can use "platform: 'node'" to do that, which will remove this error.
```

Adds missing userland package based on markdown-it/markdown-it@beed9ae,
can be removed once we update markdown-it >= 14.1.0

* ci: rename no-yarn-lock-changes.yml

* chore: sync npm dependencies

* ci: restore no-yarn-lock-changes.yml

We can disable it in a separate PR to keep the required
checks happy and also need workflow edit perms.

* chore: sync npm dependencies

* ci: rebuild cache

* ci: fix no-package-lock-changes.yml

* chore: bump distro

* chore: rm yarn.lock files

* chore: rm yarn.lock files without dependencies

* chore: add vscode-selfhost-import-aid to postinstall dirs

* chore: bump distro
2024-09-06 22:18:02 +09:00
Sandeep Somavarapu ebc02af2d8 rename electron-node to electron-utility (#227672) 2024-09-05 00:49:23 -07:00
Sandeep Somavarapu 01fcf004a6 Use electron net directly in shared process (#227553)
* Use electron net directly in shared process

* add built file

* introduce shared electron-node layer

* remove electron-utility layer

* fix (overlook): move back cli files to node
2024-09-04 07:26:43 -07:00
Connor Peet f9877b1978 eng: re-add coverage support post-ESM (#227459)
Fixes #227432
2024-09-03 20:33:56 +02:00
Benjamin Pasero d60295dc0e ESM: revisit need for _VSCODE_NODE_MODULES (fix #226453) (#227427) 2024-09-03 15:18:08 +02:00
Benjamin Pasero ca42f649a7 Allow to build an AMD version of VS Code (#227240) 2024-09-02 09:36:19 +02:00
Benjamin Pasero f0417069c6 esm - restore lost changes in tests from migration (#227225) 2024-08-30 09:12:48 -07:00
Benjamin Pasero 6b924c5152 ESM merge to main (#227184)
Co-authored-by: Johannes Rieken <jrieken@microsoft.com>
Co-authored-by: Alexandru Dima <alexdima@microsoft.com>
2024-08-30 10:31:46 +02:00
Benjamin Pasero 9f04aaf6f4 tests - depend on a test preload.js (#226588) 2024-08-26 10:14:27 +02:00
Benjamin Pasero 48bf32d320 esm - fix browser tests to run (#225791) 2024-08-16 17:13:07 +02:00
Benjamin Pasero 02fcc994ac esm - port over unit test changes (#225711) 2024-08-15 19:58:52 +02:00
Connor Peet 7dde0a7943 eng: fix --run path in electron tests not working (#225422)
I assume this broke with some of the ESM work, but I have no idea how it was working before. This should be a better fix.
2024-08-12 18:58:54 +02:00
Benjamin Pasero 4c1b0e9ff1 esm - reduce diff (#224919)
* esm - reduce diff

* .

* .

* .

* .

* .
2024-08-06 17:32:43 +03:00
Alex Ross eb4633fe7f Re-merge introduction of tree sitter (#223474)
* Make space for tree sitter

* Add the tree sitter wasm file

* Very naive tree-sitter syntax highlighting for html, with a layer breaker

* Update tree when content changes

* WIP for making abstract tokens class

* Handle theme changes

* Replace entire text model value with parse callback

* Perf improvements

* Add tree-sitter-typescript

* Add typescript + better initial parsing

* Refactor into tree parsing service and fix flaw in parse callback

* Remove things that aren't the parser service

* Add yielding

* Remove changes that aren't required for PR

* Remove more file changes

* Reduce yield to 50 ms

* Fix incremental parsing

* Try update node-abi

* Revert "Try update node-abi"

This reverts commit df28801e31.

* Update text buffer chunk api

* fix build

* Remove tree-sitter dependency

* Adopt new, as yet unpublished, `@vscode/tree-sitter-wasm` package

* Use published `@vscode/tree-sitter-wasm` package

* Break `TreeSitterTree` and `TreeSitterParserService` into better pieces
and:
- document the order of editor changes
- use service injection where `TextModel` is constructed

* Fix tests

* Remove unneeded import

* Fix missing tree-sitter-wasm in web and remote

* Make package.jsons match

* Add @vscode/tree-sitter-wasm to web loader config

* Try using importAMDNodeModule

* PR feedback

* Add race condition test for changing language while loading language

* Use same timeout

* Queue content changes

* Remove override dispose

* Move queue into TreeSitterTree

---------

Co-authored-by: Peng Lyu <penn.lv@gmail.com>
2024-07-29 11:31:28 +02:00
Alex Ross 7ed4cdc56d Revert "Add telemtry for how long it takes to parse files with tree-sitter" (#223317)
Revert "Add telemtry for how long it takes to parse files with tree-sitter (#…"

This reverts commit 6c15586994.
2024-07-24 08:47:51 +02:00
Alex Ross 6c15586994 Add telemtry for how long it takes to parse files with tree-sitter (#213565)
* Make space for tree sitter

* Add the tree sitter wasm file

* Very naive tree-sitter syntax highlighting for html, with a layer breaker

* Update tree when content changes

* WIP for making abstract tokens class

* Handle theme changes

* Replace entire text model value with parse callback

* Perf improvements

* Add tree-sitter-typescript

* Add typescript + better initial parsing

* Refactor into tree parsing service and fix flaw in parse callback

* Remove things that aren't the parser service

* Add yielding

* Remove changes that aren't required for PR

* Remove more file changes

* Reduce yield to 50 ms

* Fix incremental parsing

* Try update node-abi

* Revert "Try update node-abi"

This reverts commit df28801e31.

* Update text buffer chunk api

* fix build

* Remove tree-sitter dependency

* Adopt new, as yet unpublished, `@vscode/tree-sitter-wasm` package

* Use published `@vscode/tree-sitter-wasm` package

* Break `TreeSitterTree` and `TreeSitterParserService` into better pieces
and:
- document the order of editor changes
- use service injection where `TextModel` is constructed

* Fix tests

* Remove unneeded import

* Fix missing tree-sitter-wasm in web and remote

* Make package.jsons match

* Add @vscode/tree-sitter-wasm to web loader config

* Try using importAMDNodeModule

* PR feedback

* Add race condition test for changing language while loading language

* Use same timeout

* Queue content changes

* Remove override dispose

* Move queue into TreeSitterTree

---------

Co-authored-by: Peng Lyu <penn.lv@gmail.com>
2024-07-23 14:59:04 +02:00
Benjamin Pasero f6f90e0163 Implement NLS without AMD loader (#214588) 2024-06-28 11:55:48 +02:00
Johannes Rieken 88d860624c Inline chat UI overhaul (#215927)
* don't dimiss inline chat content widget when already having typed something

https://github.com/microsoft/vscode-copilot/issues/6067

* extract `TextOnlyMenuEntryActionViewItem` for reuse

* remove unused variables

* * show chat input below request/response pairs
* setting for text-only buttons
* more dynamic buttons
* always show the first request, don't repopulate input with last message
* keep progress bar hidden, rely on "Generating..."
* no more special background color

* add `minimal` renderer style for chat renderings

* tweak font-size for details when render mode is minimal

* stable scroll position for inline chat, don't push down the lines chat is editing but push the inline chat upwards

* more buttons more compact, tweak labels

* * add missing service dependency
* repopulate input for some unit test

* allow output from `InteractiveChatController` suite
2024-06-17 11:26:21 +02:00
Johannes 35faacda93 print loader error 2024-06-04 08:23:17 +02:00
Johannes 09981a84af configure esModuleInterop: true, change some star-imports 2024-06-03 16:50:28 +02:00
Johannes Rieken 2d97803568 add ListenerRefusalError and ListenerLeakError which get logged when listener thresholds are exceeded. (#212900)
* add `ListenerRefusalError` and `ListenerLeakError` which get logged when listener thresholds are exceeded.

The `stack` property of these errors will point towards the most frequent listener and how often it is used. If that's a high number there is a leak (same listener is added over and over again), if that's a low number there might be a conceptual flaw that an emitter is simply too prominent.

* rightfully don't use Error.captureStackTrace (v8/nodejs only)
2024-05-16 08:29:17 -07:00
Connor Peet 358a3a65d3 fix incomplete coverage reports on macos (#212639)
* eng: fix incomplete coverage reports on macos

Wait for stdout to drain before exiting

* better fix
2024-05-13 15:27:00 -07:00
Connor Peet 41f6f5ad6e yea actually that doesn't work 2024-05-08 20:57:52 -07:00
Connor Peet 2aa1079dbb just use v8-to-istanbul 2024-05-08 15:42:43 -07:00
Johannes Rieken 880eee6a96 print warning about reused action ids, fix view action duplication (#202000)
* print warning about reused action ids, fix view action duplication

* remove debug code

* make tests happy-ish
2024-01-08 16:27:32 +01:00
Connor Peet 0385382382 testing: more out-of-editor refinements (#201834)
- Som more tweaks to our own runner scripts to allow asking for the
  generated coverage formats.
- Add actions alongside debug/run for executing coverage profiles
- Finish with displaying function coverage stats in Coverage view,
  allow changing its sort order.

Fixes #200529
Fixes #199380
2024-01-04 21:22:46 +01:00
Connor Peet c016ce64fb testing: misc work on test coverage (#201758)
- Allow coverage bar color thresholds to be configurable as the Java
  folks requested.
- Update some of our scripts for integration into
  the selfhost test runner.
- Initial parts of showing function coverage in the Test Coverage view.
  (Still a work in progress, more tomorrow)
2024-01-04 08:42:22 +01:00
Connor Peet b964ed995a eng: fix waitServer not working in unit test debug (#201334)
Fixes #182341
2023-12-20 14:09:46 -08:00
Connor Peet 027aa0ff19 testing: avoid console log in unit tests (#201141)
Fixes #192468
2023-12-18 18:39:13 +01:00