Commit Graph

2949 Commits

Author SHA1 Message Date
Connor Peet 0a8edf7b2f plugins: allow updating agent plugins (#300344)
* plugins: allow updating agent plugins

Add update detection and update buttons to the agent plugins view and editor.
This allows users to see when installed plugins have newer versions available
and update them directly from the UI without manually checking for updates.

- Export hasSourceChanged() from pluginMarketplaceService for reuse
- Add 'outdated' and 'liveMarketplacePlugin' fields to IInstalledPluginItem
- Fetch marketplace data in AgentPluginsListView.show() to cross-reference
  installed vs live versions and mark outdated plugins
- Add UpdatePluginAction to list view with live marketplace data
- Add UpdatePluginEditorAction to plugin editor with live marketplace data
- Both update actions re-register the plugin with updated metadata after
  successful update so the UI immediately reflects the new version
- Read fresh installed metadata from pluginMarketplaceService.installedPlugins
  store (not stale IAgentPlugin.fromMarketplace) for accurate version checks
- Pass 'silent' option to runInstall() to show non-blocking notification
  instead of dialog when silent=true
- Re-register plugins with live data after updateAllPlugins() completes
  so stored sourceDescriptor reflects new version/ref/sha

(Commit message generated by Copilot)

* pr comments and cleanup

* fix test failure
2026-03-11 04:57:13 +11:00
Ladislau Szomoru c56c7bc071 Revert "Git - adopt the new package to use copy-on-write for the worktree include files (#299583)" (#300448)
This reverts commit 950ab0704b.
2026-03-10 15:01:11 +01:00
Ladislau Szomoru 35e0427ee2 Sessions - expose session base branch information (#300415)
* Sessions - expose session base branch information

* Pull request feedback
2026-03-10 11:18:21 +00:00
Ladislau Szomoru 950ab0704b Git - adopt the new package to use copy-on-write for the worktree include files (#299583)
* Git - adopt the new package to use copy-on-write for the worktree include files

---------

Co-authored-by: deepak1556 <hop2deep@gmail.com>
2026-03-10 11:51:57 +01:00
Matt Bierner 59cb786bc1 Copy over .sh scripts in git extension too
Fixes #299332

Restoring previous webpack behavior. In the future let's consider just moving these to the `git/scripts` folder so we don't have to copy them around
2026-03-04 23:07:52 -08:00
Connor Peet a4e35e0d69 chat: add support for agent plugin sources (#299081)
* chat: add support for agent plugin sources

- Adds support for agent plugins to reference sources as specified in
  PLUGIN_SOURCES.md, enabling installation from GitHub, npm, pip, and
  other package registries
- Integrates source parsing and validation into the plugin installation
  service and repository service
- Adds comprehensive test coverage for plugin source handling and
  installation from various sources
- Creates PLUGIN_SOURCES.md documentation describing how to specify
  plugin source configurations

(Commit message generated by Copilot)

* comments

* windows fixes and fault handling

* fix tests
2026-03-04 07:20:21 -08:00
Ladislau Szomoru 1722624c4a Git - expose rebase() though the extension API (#299181) 2026-03-04 12:17:09 +00:00
Ladislau Szomoru 4ff01e687e Git - tweak copilot worktree folder detection (#299147)
* Git - tweak copilot worktree folder detection

* Pull request feedback
2026-03-04 08:58:25 +00:00
Osvaldo Ortega 76fa9206f1 Merge pull request #299090 from microsoft/osortega/interior-flea
Session window: merge to local
2026-03-03 18:42:59 -08:00
Osvaldo Ortega 68da1933d0 Clean up 2026-03-03 17:55:47 -08:00
Osvaldo Ortega 55dc53f5d3 Review comments 2026-03-03 17:45:30 -08:00
Osvaldo Ortega 26b6024286 Using merge strategy 2026-03-03 15:43:40 -08:00
Osvaldo Ortega dd8539f530 Session window: apply patch to local 2026-03-03 08:28:10 -08:00
Ladislau Szomoru fb87d94563 Git - expose random name generation for branches (#298938) 2026-03-03 12:45:46 +00:00
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