* CI: speed up node_modules cache with zstd + shared scripts
Switch the Linux/macOS node_modules cache from single-threaded gzip
(tar -czf) to multi-threaded zstd. The "Create node_modules archive"
step was spending ~5min of single-core gzip on a multi-GB tree on every
cache miss; zstd -T0 uses all cores and decompresses much faster, so
cache-hit jobs benefit too. Windows stays on 7-Zip (already threaded).
Extract the archive/extract commands into shared per-platform scripts
under .github/workflows/node_modules_cache/ (cache.sh / cache.ps1, each
dispatching on an archive|extract argument) so the format and flags live
in one place instead of being duplicated across ~8 workflows. Bump
build/.cachesalt to invalidate existing gzip caches.
Also remove the obsolete extensions/copilot CI workflows
(copilot-setup-steps.yml, ensure-node-modules-cache.yml, pr.yml) and the
unused build/listBuildCacheFiles.js, and drop their now-stale entries
(plus lit-html and signals-core) from .eslint-allowed-javascript-files.
* ci: seed copilot node_modules cache on main and rename cache keys
Add copilot-linux and copilot-windows jobs to pr-node-modules.yml so the
copilot node_modules cache is populated on main. Rename the copilot cache
keys to copilot-node_modules-linux / copilot-node_modules-windows in pr.yml.
* ci: extract node_modules cache into composite actions
Factor the repeated node_modules cache plumbing into two local composite
actions, restore-node-modules and save-node-modules, and migrate all
workflows that used the cache.sh/cache.ps1 archive flow (pr, pr-node-modules,
pr-{linux,darwin,win32}-test, copilot-setup-steps, component-fixtures,
css-order-scan).
- restore-node-modules computes the key, restores the cache, optionally
extracts on a hit, and exports the resolved key via $GITHUB_ENV.
- save-node-modules archives node_modules and saves it to the cache, reusing
the key exported by restore so callers don't repeat the prefix.
- Bespoke install steps stay in the workflows, so per-job env/secrets never
cross the action boundary.
- Only seed the cache on branch pushes (component-fixtures skips PRs, whose
caches aren't shared).
* save the node_modules cache for now to test it
* ci: fix node_modules cache save dropping the archive
cache.sh wrote its archive as cache.tzst, but actions/cache reserves that
name for its own tarball and passes --exclude cache.tzst, so our archive was
excluded and an empty (~200 B) cache was saved on Linux/macOS. Rename the
archive to node-modules.tzst and bump build/.cachesalt to invalidate the
broken cache entries.
* empty commit
* Remove again saving to the node modules cache from PR steps
chat-lib release: add 'auto' option to pick version from copilot's package.json
Adds an 'auto' choice to the nextVersion parameter that publishes
whatever version is already in chat-lib/package.json (which
build-chat-lib.yml syncs from extensions/copilot/package.json),
so releasers no longer have to type the version manually.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Run local eslint rules directly as typescript
Remove the need to use `tsx`
* Bump required node version
Matches the version we use in vscode repo
* Align node versions
* Always use `/`
* Try fixing windows
* Try another fix for windows
* Fix new rule after merge
* Extract chat lib
* Extract chat lib
* Add test
* Get test working
* Simulate response
* Fix type issue
* Package
* Cleanup
* Tuck away workspace service
* Include package.json
* Ensure shim is used
* Include tiktoken files in package
* Update @vscode/copilot-api
* Ignore chat-lib
* wip: clone copilot-client to src
* ok
* use fork of completions
* ok
* refactor: update pre-release pipeline to mixin completions core repo and clean up files
* add to gitignore
* add conditions
* move completions core commit to package.json
* GhostTextProvider behind exp
* update to latest completions core
* Add completions-core to ignore
* No need to remove esbuild.ts anymore
* update release yml
* No need to remove esbuild.ts
---------
Co-authored-by: João Moreno <joaomoreno@users.noreply.github.com>
Co-authored-by: BeniBenj <besimmonds@microsoft.com>