Commit Graph

2935 Commits

Author SHA1 Message Date
Matt Bierner
fc4a565437 Merge pull request #298108 from microsoft/dev/mjbvz/other-meadowlark
Port git extension to use esbuild
2026-03-02 09:11:02 -08:00
Ladislau Szomoru
39cd99fe01 Git - add commands to copy information in the repositories view (#298558) 2026-03-01 17:38:47 +01:00
João Moreno
d2f1f7ce97 Inline Compile & CompileCLI stages into platform specific jobs (#296006)
* chore: ralph loop checkpoint - 2026-02-17 12:48

* fix shell script

* Inline compile stage into platform jobs

Remove the standalone Compile stage from the ADO pipeline. Each
platform job (Windows, Linux, macOS, Alpine, Web) now compiles
TypeScript itself instead of downloading a shared Compilation artifact.

- Add VSCODE_RUN_CHECKS parameter to Linux jobs for hygiene/lint/CG
- Add VSCODE_RUN_COMPILE_EXTRAS parameter to macOS jobs for telemetry
  extraction and sourcemap upload
- Remove VSCODE_COMPILE_ONLY parameter entirely
- Delete product-compile.yml (no longer referenced)

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

* Always run telemetry extraction on macOS builds

The macOS Universal app merge requires both x64 and arm64 builds to have
identical file sets. Telemetry extraction was only running on arm64 (via
VSCODE_RUN_COMPILE_EXTRAS), causing the universal merge to fail due to
missing telemetry-core.json and telemetry-extensions.json in the x64 build.

Move telemetry extraction outside the VSCODE_RUN_COMPILE_EXTRAS gate so
it runs on all macOS builds. Sourcemap upload remains gated.

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

* Run telemetry extraction on all client builds

All client builds (Linux, Windows, macOS) need telemetry-core.json and
telemetry-extensions.json. Previously only macOS arm64 ran extract-telemetry.

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

* Only run telemetry extraction on Linux x64 (client build)

Linux arm64 and armhf are server-only builds, no need for telemetry files.

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

* Remove .ralph scaffolding files

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

* Fix telemetry extraction on Windows with native PowerShell

The bash extract-telemetry.sh script fails on Windows because the Unix
bin shim gets interpreted as Node.js code. Use a native PowerShell
implementation that calls the extractor JS entry point directly.

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

* Handle missing telemetry files gracefully on Windows

The telemetry extractor may skip emitting declarations-resolved.json
when no events are found. Handle this case with a warning instead of
failing the build.

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

* Use deterministic build date from git commit timestamp

When each platform compiles independently, the build date embedded in
cli.js (via INSERT_PRODUCT_CONFIGURATION) differs between machines
because each uses new Date().toISOString(). This causes the macOS
Universal app merge to fail since cli.js SHA differs between x64/arm64.

Fix: use the git commit date (git log -1 --format=%cI HEAD) instead
of the current wall-clock time. This ensures all independent builds
on different machines produce identical timestamps.

Updated in:
- build/lib/date.ts: writeISODate() uses git commit date
- build/next/index.ts: bundle(), transpile, and readISODate fallback
  all use git commit date

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

* Remove redundant extensions-ci task from CI pipelines

core-ci (esbuild path) already includes cleanExtensionsBuildTask,
compileNonNativeExtensionsBuildTask, and compileExtensionMediaBuildTask.
Running extensions-ci in parallel caused a race condition where
core-ci's rimraf of .build/extensions clashed with extensions-ci
writing to the same directory.

Also removes dead code:
- extensions-ci and extensions-ci-pr task definitions (fully subsumed)
- core-ci-old task (useEsbuildTranspile is always true)

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

* remove VSCODE_RUN_COMPILE_EXTRAS

* address PR feedback regarding code duplication of `getGitCommitDate()` function by exporting a single helper function from `build/lib/date.ts` and importing it in `build/next/index.ts` to ensure consistent behavior and improve code maintainability.

* update readISODate function to return git commit date instead of current date

* add telemetry sorting script and integrate into build process for consistent output

* refactor telemetry extraction process: replace shell script with TypeScript implementation

* update skill

* update telemetry-extractor dependency to version 1.19.0

* fix build

* fix more duplicate telemetry definition issues

* cleanup

* refactor: consolidate validation checks into quality checks and remove obsolete tasks

* bust the cache

* undo cache bust

* fix expression

* fix

* fix: update Azure storage account name in quality checks

* fix: initialize stages set with 'Quality'

* fix: add VSCODE_BUILD_TYPE parameter with options for Product and CI builds

* fix: update Azure Pipeline CLI to use parameters instead of variables for queueing builds

* fix: update VSCODE_BUILD_TYPE parameter values for clarity

* fix: update default value for VSCODE_BUILD_TYPE parameter to 'Product'

* leaner

* even leaner

* only npm ci in build

* 💄

* run entire npm ci

* fix

* fix

* fix it

* Inline CompileCLI into platform stages

- Remove centralized CompileCLI stage
- Move CLI jobs into Windows, Linux, macOS stages as independent jobs
- CLI jobs now compile, publish unsigned mid-job, sign, and publish signed
- Platform compile jobs use deemon + waitForArtifacts for async CLI download
- Delete separate CLI sign jobs (now merged into CLI compile jobs)
- Remove CompileCLI from publish.ts stage tracking

* fix: macOS CLI signing - use proper directory structure for ESRP

* fix: add BUILDS_API_URL to Windows and Linux job templates

* fix: label Linux CLI jobs clearly

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: João Moreno <22350+joaomoreno@users.noreply.github.com>
2026-03-01 08:48:08 +01:00
Ladislau Szomoru
f06f86226b Git - file-system provider should open the repository if not already opened (#297783)
* Git - file-system provider should open the repository if not already opened

* Git - only open the repository in the empty/session window

* Add logging
2026-02-28 17:49:43 +01:00
Matt Bierner
a453d99821 Port git extension to use esbuild
Fixes #296355
2026-02-26 14:10:15 -08:00
Benjamin Christopher Simmonds
e30f28558f feat: add clone repository option to folder picker (#297995) 2026-02-26 14:59:13 +01:00
Dmitriy Vasyura
0fb77198a8 feat: add AI co-author support for commits (#296435) 2026-02-23 18:57:10 -08:00
Connor Peet
f6b16889a2 pr comments 2026-02-23 16:20:24 -08:00
Connor Peet
dc4cd84cdb plugins: enable installing plugins from marketplaces
Supports both Copilot marketplaces as well as Claude marketplaces (when configured).

Still todo:

- Currently enumerating plugins hit public GH APIs. But this would fail for private repos. In this case we should generalize the PluginInstallService to allow cloning the repo for the purpose of enumeration, not just install.
- Updating plugins still needs to be hooked up.
- Marketplace-installed plugins should get their own Discovery implementation rather than configuring the setting.
- We should normalize the type of plugin a bit so it flows from the marketplace type rather than getting re-discovered from disk.
2026-02-23 16:08:12 -08:00
Matt Bierner
2fedd2e043 Adopt esbuild for a few more extensions
- extension-editing
- terminal-suggest
- tunnel-forwarding
- php language features
2026-02-18 15:20:02 -08:00
Ladislau Szomoru
dfec5880f8 Git - 💄 extract quick diff providers (#295564)
Git - extract quick diff providers
2026-02-16 17:10:19 +05:00
Johannes Rieken
4f5d8f3946 Remove code-no-native-private ESLint rule (#295535) 2026-02-16 10:03:47 +01:00
Raymond Zhao
e987c5242e chore: bump extension versions (#295040) 2026-02-13 04:15:03 +05:00
Ladislau Szomoru
f23e9ca900 Git - Fix parent repository dialog in agent session workspace (#294967)
Fix parent repository dialog in agent session workspace
2026-02-12 09:05:35 -08:00
Ladislau Szomoru
ba54343db9 Git - store repository root in the cache along with the workspace folder (#294943) 2026-02-12 15:48:03 +00:00
Ladislau Szomoru
efb6eeee9d Git - openRepository extension API should always open the repository without any prompts (#293681) 2026-02-07 20:37:03 +01:00
Dmitriy Vasyura
fa6cfe12c6 Metered network connections support (#288919)
Includes public API, user setting, status bar icon and a new service to support metered network connections.
Updates code in various areas performing automated actions using network to delay/pause network operations while network connection is being metered.
2026-02-06 14:52:14 -08:00
Ladislau Szomoru
9caffaaa2a Git - do not show repositories in the empty window (#292804) 2026-02-04 10:53:09 +00:00
Matt Bierner
cca17c1b7f Use ts-go for building our extensions
Also reverts to use experimental decorators due to stage 3 decorators not being supported yet https://github.com/microsoft/typescript-go/issues/2354

The skipLib check is needed to work around some jsdom types issues
2026-02-02 20:06:00 -08:00
Matt Bierner
e6f0ffde9c Merge pull request #291937 from mjbvz/dev/mjbvz/severe-buzzard
Update build ts versions
2026-01-31 15:34:15 -08:00
Matt Bierner
ee01088b74 Update roots 2026-01-30 13:12:58 -08:00
Ladislau Szomoru
bae323865a Git - add the ability to disable commit signing (#291822) 2026-01-30 11:45:00 -08:00
Matt Bierner
0d9a2ef2b0 Add explicit rootDirs 2026-01-30 11:07:53 -08:00
João Moreno
bf729fa50a strip out git askpass sourcemap footer (#291673)
fixes #282020
2026-01-29 18:27:20 +00:00
Copilot
1872cb3854 Add garbage collection for unused content-addressed askpass directories (#289723)
* Initial plan

* Add garbage collection for old content-addressed askpass directories

- Implement updateDirectoryMtime to update folder mtime when used
- Add garbageCollectOldDirectories to remove folders older than 7 days
- Update ensureAskpassScripts to call GC on every activation
- Add comprehensive test coverage for GC functionality

Co-authored-by: joaomoreno <22350+joaomoreno@users.noreply.github.com>

* Remove GC from fast path to keep it fast

Only run garbage collection when creating new directories, not when reusing existing ones. Old folders only accumulate when creating new content-addressed directories.

Co-authored-by: joaomoreno <22350+joaomoreno@users.noreply.github.com>

* Hoist askpassBaseDir variable to avoid duplication

Declare askpassBaseDir once at the top of the function and reuse it when constructing askpassDir and when calling garbageCollectOldDirectories.

Co-authored-by: joaomoreno <22350+joaomoreno@users.noreply.github.com>

* Fix test failures and address bot review comments

- Export ensureAskpassScripts for testing to avoid dependency on isWindowsUserOrSystemSetup check
- Remove redundant success log after directory removal
- Update tests to call ensureAskpassScripts directly instead of getAskpassPaths
- Remove Windows-only restrictions from tests to make them cross-platform
- Remove setTimeout workarounds - tests now properly await async operations

Co-authored-by: joaomoreno <22350+joaomoreno@users.noreply.github.com>

* formatting

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: joaomoreno <22350+joaomoreno@users.noreply.github.com>
Co-authored-by: João Moreno <joaomoreno@users.noreply.github.com>
2026-01-29 10:35:40 +00:00
Ladislau Szomoru
e4e61e5ffa Git - dispose untrusted repositories when trust state changes (#291498) 2026-01-29 09:12:59 +01:00
Ladislau Szomoru
dab807f670 Git - expose more options to apply a patch (#291309)
* Git - expose more options to apply a patch

* 💄 Reorder options
2026-01-28 08:29:50 -08:00
Ladislau Szomoru
1bf610daab Git - request resource trust for the parent folder of the .git folder (#291261) 2026-01-28 11:56:25 +00:00
Ladislau Szomoru
3fbb12a61c Git - fix open repository command (#290836)
* Git - fix open repository command

* Missed couple of places
2026-01-27 16:41:51 +01:00
Ladislau Szomoru
4ac2f00e07 Git - fix bug causing multiple resource trust dialogs when worktrees are present (#290707) 2026-01-27 08:32:18 +00:00
Ladislau Szomoru
3a95c41dac Git - delay trust request until we are certain that we can open the repository (#290594) 2026-01-26 23:25:18 +00:00
Ladislau Szomoru
7c84594330 Git - open repositories in an empty workspace without seeing the notification about parent folders (#290433) 2026-01-26 17:03:22 +00:00
Ladislau Szomoru
b962957183 Workspace Trust - add support to request trust for a resource (#290404)
* Initial implementation

* Pull request feedback
2026-01-26 15:59:55 +00:00
Ladislau Szomoru
ac8880847e Git - 💄 rename things to make things more clear (#289849) 2026-01-23 10:30:39 +01:00
Ladislau Szomoru
a067b22e62 Git - expose recent repository information (#289837) 2026-01-23 08:41:06 +00:00
Osvaldo Ortega
cb1c94e345 Adding kind property to repository 2026-01-22 14:37:48 -08:00
João Moreno
e37fdc9118 fix: move askpass scripts to stable location (#289400)
* fix: move askpass scripts to stable location

fixes #282020

* Update extensions/git/src/askpassManager.ts

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

* use global storage

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-01-22 07:20:27 -08:00
Ladislau Szomoru
25c32afcbc Git - mark git.worktreeIncludeFiles as experimental and reset the default value (#289617) 2026-01-22 10:55:06 +00:00
Ladislau Szomoru
e03d4442e5 Git - store last opened time in the repository cache (#289612)
* Git - store last opened time in the repository cache

* Pull request feedback
2026-01-22 10:47:13 +00:00
Ladislau Szomoru
4384ba8562 Git - do not provide original resource for files that are in the .git folder (#289313) 2026-01-21 08:27:29 +01:00
Ladislau Szomoru
ac86b00065 Git - Do not provide original resource for hidden repositories (#289128)
* Do not provide original resource for hidden repositories

* Fix logging message
2026-01-20 16:25:55 +00:00
Ladislau Szomoru
ebaa450e15 Chat - auto-accept external edits (#288933)
* Chat - auto-accept external edits

* Trying to track down the test failures
2026-01-20 15:05:12 +00:00
Ladislau Szomoru
d2049e8731 Git - tweak how files are being copied to the worktree (#289065) 2026-01-20 12:11:28 +00:00
Dmitriy Vasyura
0e28a4b760 Add Git: Delete action to run git rm command on the current document (#285411) 2026-01-16 21:36:23 +01:00
Ladislau Szomoru
9934a5d9ed Git - enable copy-on-write to worktree include files when the file system supports it (#288376) 2026-01-16 16:14:10 +01:00
Ladislau Szomoru
cdc06ed9ac Git - handle case when the repository only contains the main worktree (#288056) 2026-01-15 16:42:07 +00:00
Ladislau Szomoru
650bc4f9ae Git - expose repository kind through the git extension API (#287737) 2026-01-14 10:51:47 +00:00
Ladislau Szomoru
f5e25ad4ca Git - show main worktree under the Worktrees node (#287564) 2026-01-13 15:38:32 +00:00
Ladislau Szomoru
8f8c5595d1 Git - use findFiles2() to expand glob patterns (#287238) 2026-01-13 08:58:51 +00:00
Ladislau Szomoru
bf6622b8d2 Git - simplify default value for the git.worktreeIncludeFiles setting (#287083) 2026-01-12 10:40:09 +00:00