Visitar URL original
fix: Parse JSX in JavaScript files by sahyl · Pull Request #14794 · vercel/turborepo · GitHub
Skip to content

fix: Parse JSX in JavaScript files - #14794

Merged
anthonyshew merged 2 commits into
vercel:mainfrom
sahyl:fix/14790-jsx-in-js
Oct 14, 2026
Merged

anthonyshew merged 2 commits into
vercel:mainfrom
sahyl:fix/14790-jsx-in-js

Conversation

@sahyl

@sahyl sahyl commented Oct 13, 2026

Copy link
Copy Markdown
Contributor

Fixes #14790.

Allow JSX in JavaScript files when checking boundaries and tracing file dependencies. This restores support lost during the switch to oxc, while keeping TypeScript parsing unchanged.

Add regression coverage for JSX across supported extensions, CommonJS imports, boundary violations, ignore comments, and TypeScript assertions.

Tested:

  • All 127 affected-crate tests pass on Linux and native Windows GNU.
  • The reported reproduction passes with the full Linux CLI. Invalid imports and malformed JSX still report errors.
  • Clippy and formatting checks pass.

Windows/MSVC was not tested locally.

@sahyl
sahyl requested review from a team and tknickman October 13, 2026 23:01
@vercel

vercel Bot commented Oct 13, 2026

Copy link
Copy Markdown
Contributor

@sahyl is attempting to deploy a commit to the Internal Apps Team on Vercel.

A member of the Team first needs to authorize it.

@anthonyshew anthonyshew left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

@anthonyshew
anthonyshew enabled auto-merge (squash) October 14, 2026 01:14
@anthonyshew
anthonyshew merged commit 8e6c376 into vercel:main Oct 14, 2026
31 of 41 checks passed
@sahyl
sahyl deleted the fix/14790-jsx-in-js branch October 14, 2026 02:10
anthonyshew pushed a commit that referenced this pull request Oct 16, 2026
## Release v2.11.9-canary.1

Versioned docs: https://v2-11-9-canary-1.turborepo.dev

### Changes

- fix: Guard setup publication plans and discovery indirections (#14468)
(`bd5ca22`)
- fix: Release setup locks in their acquiring process (#14472)
(`9fbf65d`)
- feat: Create and reconcile local setup locks (#14473) (`13aadad`)
- feat: Refresh managed setup locks explicitly (#14474) (`0db2e44`)
- feat: Force reinstall locked setup tools (#14475) (`cd18481`)
- feat: Bind setup records to installation generations (#14476)
(`34e2556`)
- chore: Update with-berry example (#14487) (`ac79d71`)
- fix: Generalize repository bootstrap across toolchains (#14444)
(`c162709`)
- fix: Keep Go discovery stable when the repository is reached through a
symlink (#14445) (`27ed5b3`)
- fix: Reject non-member local sources in the uv manifest fallback
(#14446) (`a7e8178`)
- fix: Hash ruff and pytest configuration between the root and uv
members (#14447) (`9ef241a`)
- fix: Hash Clippy configuration for Cargo lint tasks (#14448)
(`768d5ba`)
- fix: Carry uv tool configuration into pruned workspaces (#14449)
(`d6d63bd`)
- fix: Report inferred framework env vars for deferred tasks in dry runs
(#14478) (`215637c`)
- docs: Explain declaring Cargo sources read from outside the crate
(#14480) (`2935202`)
- fix: Upgrade turbo-gen Handlebars to 4.7.10 (#14471) (`71d0766`)
- chore: Add copyable Factory snapshot command (#14481) (`cb615c3`)
- feat: Validate sealed native setup baselines (#14482) (`b5fe180`)
- fix: Prevent Git index refresh during dirty hash collection (#14489)
(`6e9c65b`)
- fix: Disable agent guidance by default (#14490) (`ad820cb`)
- chore: Release Turborepo 2.11.8 (#14789) (`d937b9d`)
- perf: Prefetch Cargo metadata during lazy graph construction (#14497)
(`2a2786c`)
- perf: Compute Berry lockfile closures once across workspaces (#14499)
(`910886d`)
- perf: Check cache hit outputs in place instead of on the blocking pool
(#14524) (`ed120d5`)
- perf: Speed up Berry lockfile loading (#14500) (`81a81e8`)
- perf: Parse bun.lock without building a JSON syntax tree (#14502)
(`172d9e9`)
- perf: Skip the dry run cache batch window when there is no remote
cache (#14505) (`025eb71`)
- perf: Emit lockfile closures pre-sorted and cheapen closure interning
(#14525) (`2a4812f`)
- perf: Reuse configuration derived from turbo.json between the shim and
the CLI (#14521) (`cb65c08`)
- feat: Report locked tools-only setup plans (#14483) (`ae970f6`)
- perf: Compute Bun lockfile closures once across workspaces (#14501)
(`778e14a`)
- perf: Reuse open parent directories when restoring cache archives
(#14506) (`f3747f5`)
- perf: Skip dropping the run right before turbo run exits (#14507)
(`858990a`)
- perf: Match literal input exclusions without compiling globs (#14510)
(`1aa874f`)
- perf: Copy pruned package files in parallel (#14512) (`2ebac47`)
- feat: Report proposed first-lock and refresh setup plans (#14571)
(`d12516c`)
- perf: Compress large cache archives with multithreaded zstd (#14698)
(`5b3d03c`)
- perf: Read tracked file stats from directory listings on Windows
(#14633) (`7789888`)
- perf: Diff changed lockfile resolutions with a merge instead of
ordered sets (#14630) (`452c8b7`)
- perf: Write dry run text output through one buffered stdout handle
(#14625) (`213115d`)
- perf: Parse pnpm-workspace.yaml once per command (#14620) (`7ae73f9`)
- perf: Write each file trace error to stderr in a single call (#14618)
(`4abf82b`)
- perf: Reuse glob validation results when re-validating turbo.json in
the language server (#14615) (`bd3cda2`)
- perf: Keep git subprocesses off the critical path of dry runs (#14610)
(`ec761cb`)
- perf: Classify watch file changes when they arrive instead of on a
100ms poll (#14600) (`268696e`)
- perf: Buffer TUI raw-output spool writes (#14597) (`f8f298a`)
- perf: Add the turbo query version key without re-parsing the response
(#14592) (`463a689`)
- perf: Replay cached task logs in whole-line chunks (#14590)
(`255fd13`)
- perf: Write each boundaries diagnostic to stderr in a single call
(#14587) (`2d990c1`)
- perf: Walk leading-globstar input trees in parallel without wax
(#14511) (`462cb81`)
- perf: Reuse open parent directories when writing cache archives
(#14513) (`ac51cd7`)
- perf: Index Bun lockfile subgraph lookups instead of rescanning all
packages (#14514) (`8d11635`)
- perf: Render the pruned lockfile while package files are copied
(#14515) (`a5f426b`)
- feat: Resolve exact native npm lock cohorts (#14484) (`b5a179d`)
- perf: Batch prefixed task output into one write per chunk (#14588)
(`92dc725`)
- perf: Share one allocation per external package identity (#14528)
(`6c2531e`)
- perf: Remove quadratic package-name scan from microfrontends discovery
(#14527) (`679432d`)
- perf: Render file trace errors on several threads (#14623) (`09f6d34`)
- perf: Check boundaries packages in parallel again (#14598) (`a38ab01`)
- perf: Read PTY child output in 8 KiB chunks (#14594) (`78d5e8f`)
- perf: Load each package's tsconfig once when checking boundaries
(#14589) (`79570a7`)
- perf: Skip the file watcher round trip when checking outputs for new
task hashes (#14626) (`94b863f`)
- perf: Refresh only memory stats in `turbo info` (#14593) (`622fc20`)
- perf: Walk and record prune copy plans in parallel (#14522)
(`7928d4f`)
- feat: Reconcile sealed clone-local setup selections (#14485)
(`ed36803`)
- test: Add macOS ACL safety prerequisite for setup state (#14493)
(`01f493b`)
- fix: Accept Homebrew's bundled npm prefix in setup source preflight
(#14566) (`6f024d9`)
- feat: Report ignored version manager declarations during setup
(#14531) (`8f3a219`)
- feat: Provision clone-local setup without lock writes (#14486)
(`514c5b8`)
- feat: Integrate native npm provisioning into setup (#14491)
(`9cc8789`)
- test: Check pruned setup outputs through the real CLI (#14529)
(`5ab08c6`)
- feat: Parse Go toolchain declarations for setup (#14530) (`be0f607`)
- feat: Parse root uv version requests for setup (#14533) (`8529794`)
- test: Prove Unix process parity for native and npm-wrapped turbo run
(#14539) (`159902b`)
- feat: Add root-only `turbo setup` policy to turbo.json (#14541)
(`64a8a5f`)
- test: Interrupt Unix turbo setup through both entrypoints (#14542)
(`c0dc146`)
- feat: Bootstrap a verified repository-scoped rustup (#14543)
(`51b1233`)
- feat: Follow approved release CDN redirects in verified downloads
(#14557) (`e96b1e0`)
- test: Prove native Windows process parity for standalone and
npm-wrapped turbo run (#14565) (`fb76400`)
- fix: Explain missing Git and non-repository setup roots (#14567)
(`c6f671f`)
- fix: Keep non-UTF-8 arguments from crashing the turbo shim (#14570)
(`28a19ac`)
- feat: Install managed tool generations on native Windows (#14582)
(`ba28cd7`)
- feat: Add the shell hook by default from the POSIX installer (#14608)
(`4a85487`)
- feat: Accept Corepack SHA-224 package manager pins (#14640)
(`f739c30`)
- fix: Accept official Bun ZIP metadata in verified archives (#14657)
(`b4fe7fa`)
- fix: Write turbo.lock as indented JSON (#14738) (`95696a5`)
- fix: Accept project .npmrc files with only install-layout settings
(#14740) (`15f16ae`)
- feat: Define native lifecycle-script policy for dependency setup
(#14661) (`5784f11`)
- feat: Resolve uv requests to official locked releases (#14537)
(`c15f729`)
- feat: Install locked uv with repo-scoped launchers (#14538)
(`0754979`)
- feat: Record official Go release artifacts in turbo.lock (#14532)
(`2729bae`)
- feat: Create, refresh, and freeze uv selections in turbo setup
(#14547) (`bac15a7`)
- feat: Resolve root Python requests through managed uv (#14552)
(`2625ebd`)
- fix: Lock managed Python for every supported architecture (#14691)
(`0f3295d`)
- feat: Select Linux setup artifacts by detecting the host libc at
runtime (#14637) (`0a4bc5c`)
- feat: Provision verified Go toolchain archives (#14544) (`15da2ed`)
- feat: Provision locked rustup from turbo setup (#14548) (`77fb8eb`)
- fix: Keep managed setup working under Ubuntu's default 0002 umask
(#14666) (`85f1a46`)
- feat: Provision pnpm 11 releases with their module entry points
(#14742) (`0a03742`)
- fix: Accept npm and pnpm wrapper environments in setup source policy
(#14643) (`7b545d5`)
- feat: Extract official python-build-standalone archives (#14669)
(`dfcdccd`)
- feat: Declare additional repository tools in root setup policy
(#14574) (`f10cdcb`)
- fix: Parse JSX in JavaScript files (#14794) (`8e6c376`)
- fix: Complete CI frozen setup behavior (#14492) (`813cfbb`)
- feat: Provision tools with plain turbo setup and report skipped
dependencies (#14650) (`6b5719a`)
- feat: Record trusted setup installations outside the repository
(#14494) (`c5691d5`)
- feat: Provision pnpm 12 native binaries from verified platform
packages (#14743) (`0b20ecd`)
- feat: Parse root rust-toolchain files into portable requests (#14550)
(`3881ffb`)
- feat: Provision locked Python interpreters through managed uv (#14559)
(`9730f0a`)
- feat: Sync uv workspaces from the committed uv.lock (#14561)
(`32b7cd3`)
- feat: Resolve Rust toolchain requests to exact locked channels
(#14551) (`c52462d`)
- feat: Authorize prepared tools from private setup evidence (#14495)
(`027983e`)
- feat: Install locked Rust toolchains through private rustup (#14562)
(`ef05ed9`)
- feat: Create and update Rust selections in turbo.lock (#14563)
(`65dff32`)
- feat: Prefetch locked Cargo dependencies with managed cargo (#14564)
(`c2da04e`)
- feat: Activate trusted Node and pnpm for task execution (#14508)
(`b96a689`)
- feat: Enforce managed run compatibility before CLI handoff (#14509)
(`c6e79fb`)
- fix: Close managed execution authorization gaps (#14516) (`00faa27`)
- fix: Preserve informational exits in managed repositories (#14519)
(`d83f8ec`)
- feat: Reuse trusted installations for offline setup (#14518)
(`f994556`)
- feat: Add experimental managed Node and pnpm peer capabilities
(#14517) (`a506da8`)
- feat: Lock additional tool artifacts and detect declaration drift
(#14575) (`9bd0143`)
- feat: Install additional tools through a generic verified artifact
backend (#14577) (`695b772`)
- feat: Activate locked uv and Python and check their readiness (#14649)
(`715ecd1`)
- fix: Precompile managed Python bytecode while staging (#14670)
(`f096855`)
- feat: Prune setup records for deleted, moved, or re-cloned roots
(#14655) (`3f60d68`)
- feat: Activate locked Rust toolchains and check their readiness
(#14651) (`28afea9`)
- feat: Provision locked additional tools from turbo setup (#14581)
(`567145b`)
- feat: Create and refresh Go entries in turbo.lock during local setup
(#14553) (`27c71bb`)
- feat: Prefetch Go modules without changing go.mod or go.sum (#14554)
(`793dec9`)
- feat: Advertise the managed Node/pnpm peer contract on GNU Linux x64
(#14641) (`e539d18`)
- feat: Provision locked Yarn classic binaries (#14555) (`c69d6a2`)
- feat: Add repository and CLI controls for skipping lifecycle scripts
(#14662) (`8fcb0aa`)
- feat: Explain whether turbo setup repairs tools or updates the lock
(#14654) (`c3b633f`)
- feat: Reuse verified tool downloads across repositories (#14535)
(`558d101`)
- perf: Cache installed tool tree hashes per generation (#14653)
(`ad236b2`)
- test: Exercise global setup then plain turbo run end to end (#14642)
(`5a60b56`)
- feat: Apply root setup policy and CLI overrides in turbo setup
(#14663) (`a35bde6`)
- feat: Pin and verify the xz Rust tarballs rustup downloads (#14771)
(`90f44b6`)
- feat: Hash locked additional-tool artifact identity portably (#14583)
(`17a30c8`)
- feat: Provision locked modern Yarn bundles (#14556) (`319a7b2`)
- feat: Provision locked Bun binaries without global Bun (#14558)
(`37eaa02`)
- feat: Provision offline setup from verified cached artifacts (#14540)
(`91d21a1`)
- feat: Measure and remove inactive managed tool storage (#14549)
(`8344022`)
- feat: Create and update turbo.lock for Yarn and Bun during local setup
(#14560) (`6175fc0`)
- feat: Validate installed Yarn and Bun activation plans and checks
(#14648) (`7e07545`)
- feat: Set up Bun-only repositories without a Node declaration (#14658)
(`4763aa1`)
- feat: Add a shell hook that activates managed tools in bash and zsh
(#14603) (`6ce614d`)
- feat: Add an uninstall mode to the POSIX installer (#14636)
(`70ab324`)
- test: Recover setup killed mid-download and mid-unpack (#14569)
(`067223e`)
- feat: Route setup downloads through credential-free mirror overrides
(#14545) (`fbc28b4`)
- test: Race concurrent setup writers over one shared cache (#14573)
(`02fdf5c`)
- feat: Clean up replaced managed tools automatically during setup
(#14652) (`224beba`)
- feat: Add the `turbo exec` command surface (#14536) (`50557d1`)
- feat: Run `turbo exec` commands with the managed environment (#14568)
(`055f182`)
- feat: Activate locked Go and check its readiness in turbo setup
--check (#14644) (`db7a59a`)
- feat: Name the missing Node declaration when --no-lock setup cannot
start (#14701) (`5d5d411`)
- feat: Add shell hook support for fish and PowerShell (#14606)
(`7870baf`)
- fix: Run turbo setup in pruned output without a Git repository
(#14639) (`6e9908b`)
- fix: Accept umask 0002 ancestors of trusted setup records (#14702)
(`57184d1`)
- fix: Guard managed `turbo exec` local CLI handoff (#14572) (`4e4762b`)
- feat: Lock and verify system Node.js and pnpm under verify-system
policy (#14664) (`910f7a7`)
- feat: Record and authorize trusted setup roots on native Windows
(#14659) (`25d0073`)
- test: Verify `turbo exec` end to end from nested paths (#14578)
(`ef1e09d`)
- test: Prove Unix `turbo exec` parity for standalone and npm wrapper
(#14580) (`628a06e`)
- feat: Provision managed Node and pnpm on native Windows (#14584)
(`457f1dc`)
- fix: Preserve `turbo exec` behavior for Windows `.cmd` launchers and
Ctrl+C (#14646) (`07763e2`)
- test: Prove native Windows `turbo exec` entrypoint parity without
managed tools (#14660) (`986bd5d`)
- fix: Stop native Windows turbo setup on Ctrl+C from either entrypoint
(#14591) (`dead697`)
- fix: Refuse managed setup on Windows arm64 hosts, including x64 turbo
under emulation (#14672) (`76aee36`)
- fix: Propose setup plans with every ecosystem's lock resolver (#14744)
(`40de283`)
- fix: Detect the host libc for managed turbo run (#14710) (`97f284a`)
- feat: Add a frozen npm install adapter for setup dependencies (#14718)
(`bf6bc06`)
- feat: Activate additional tool binaries in managed run and exec
(#14706) (`0a7414e`)
- feat: Install locked npm dependencies during turbo setup (#14721)
(`c4eee00`)
- feat: Follow HTTPS redirects for additional-tool artifacts (#14707)
(`cd15afd`)
- feat: Configure setup mirrors in the root setup policy (#14700)
(`a82b7cf`)
- feat: Record trusted setup roots for --no-lock installs (#14727)
(`3736489`)
- feat: Activate and hash --no-lock selections in plain turbo run
(#14729) (`463ff19`)
- feat: Install additional-tool archives without a top-level folder
(#14708) (`887e800`)
- feat: Mirror Bun, uv, and Python release downloads (#14714)
(`dcd1156`)
- feat: Mirror Go and Rust release downloads (#14739) (`03b948c`)
- feat: Provision declared npm without lock writes (#14730) (`0409003`)
- feat: Activate every managed ecosystem in turbo run, including its own
probes (#14711) (`767bbae`)
- feat: Download additional tools through the shared cache, offline
mode, and a mirror (#14709) (`65a5653`)
- feat: Resolve native task commands through managed binaries (#14712)
(`fd5f189`)
- test: Cover the Unix additional-tool setup, run, and recovery matrix
(#14717) (`3e66b8b`)
- feat: Qualify additional tools on native Windows x64 (#14731)
(`6d2cd4f`)
- feat: Use verified system tools in managed turbo run (#14713)
(`99755d8`)
- test: Exercise managed Go setup then plain turbo run without host Go
(#14719) (`9d93333`)
- test: Exercise managed Rust setup then plain turbo run without host
Rust (#14720) (`0493634`)
- test: Exercise managed uv and Python setup then plain turbo run
without host Python (#14722) (`c880e8e`)
- test: Exercise managed Yarn and Bun setup then plain turbo run without
host tools (#14723) (`dcbfb66`)
- fix: Let turbo run and turbo exec use verify-system tools on musl
hosts (#14751) (`3ee58a1`)
- test: Qualify Yarn classic and modern Yarn setup on native Windows x64
(#14746) (`8f85a5e`)
- feat: Provision managed uv on native Windows x64 (#14749) (`2bef03b`)
- feat: Provision locked Rust toolchains on native Windows x64 (#14752)
(`05d681e`)
- fix: Kill the command when `turbo exec` is killed (#14757) (`4ffb0ad`)
- feat: Provision managed Go from the official Windows x64 zip (#14748)
(`803ad4a`)
- feat: Provision managed Python on native Windows x64 (#14756)
(`4093034`)
- feat: Activate managed tools from the PowerShell hook on native
Windows x64 (#14747) (`67c4aec`)
- feat: Activate managed Go with a plain GOROOT on native Windows
(#14754) (`6f94cfc`)
- feat: Provision locked Bun on native Windows x64 (#14750) (`2625c71`)
- fix: Keep PowerShell hook output ASCII so console code pages cannot
corrupt PATH (#14755) (`6e16487`)
- feat: Provision pnpm 12 native binaries on native Windows x64 (#14753)
(`b5be2f3`)
- fix: Kill the local `turbo` when the global `turbo` that handed off is
killed (#14785) (`45a8dea`)
- feat: Activate managed Rust on native Windows x64 (#14758) (`c4b70ca`)
- feat: Activate managed Go from the shell hook on native Windows x64
(#14764) (`d5aeac9`)
- fix: Block cache restoration writes to Git metadata (#14808)
(`26ccb98`)
- feat: Report locked dependency actions in turbo setup plans and checks
(#14724) (`85909df`)
- feat: Advertise the managed-run peer contract on every claimed
platform (#14780) (`409c609`)
- fix: Activate managed tools in turbo watch (#14779) (`b0dee21`)
- perf: Stamp installed tool trees on native Windows (#14774)
(`26ac5de`)
- feat: Install pnpm dependencies in frozen mode during setup (#14726)
(`849c145`)
- feat: Measure setup outcomes through standard telemetry (#14546)
(`a6baee9`)
- feat: Install Yarn dependencies immutably during setup (#14733)
(`12d5101`)
- fix: Activate managed tools in commands that discover the repository
(#14784) (`dfb8e37`)
- feat: Install Bun dependencies from a frozen lock during setup
(#14734) (`496489c`)
- feat: Sync locked uv workspaces during turbo setup (#14735)
(`cbd3ac9`)
- fix: Reject Windows prefixed paths during cache restore (#14809)
(`6e814c4`)
- feat: Prefetch locked Cargo dependencies during turbo setup (#14736)
(`65abf4d`)
- feat: Prefetch Go modules during turbo setup (#14737) (`c93e489`)
- test: Cover managed uv and Python setup on native Windows x64 (#14761)
(`14b60e4`)
- feat: Prefetch Cargo dependencies and report the MSVC linker on
Windows (#14760) (`3e9c10c`)
- feat: Install locked dependencies offline from native caches (#14759)
(`fc95b6e`)
- feat: Prefetch Go modules with managed Go on native Windows (#14762)
(`7356a00`)
- feat: Install locked JavaScript dependencies on native Windows x64
(#14763) (`d98d962`)
- feat: Probe repository-local turbo on Windows and cover pins on every
platform (#14781) (`1de7829`)
- feat: Export managed runtime variables from the shell hook on every
platform (#14802) (`fb29ed6`)
- refactor: Route setup's Git queries through an injectable boundary
(#14811) (`3e542a0`)
- perf: Load each tsconfig once per file trace (#14627) (`1b11a72`)
- perf: Overlap reading and compression when writing large cache
archives (#14604) (`dbdcdb8`)
- perf: Speed up pnpm lockfile pruning and encoding in turbo prune
(#14520) (`9ef9ee2`)
- perf: Prefetch remote cache artifacts as soon as task hashes are known
(#14585) (`aeab1d7`)
- perf: Remove the remaining quadratic passes from the Bun prune
subgraph (#14523) (`27ed79d`)
- perf: Memoize Cargo.lock closures and share resolution identities
(#14498) (`f674fb1`)
- perf: Match node_modules-style exclusions by path segment instead of
compiling globs (#14634) (`c5b05d0`)
- perf: Avoid waking the rayon pool for small workspaces (#14602)
(`8308fa9`)
- perf: Overlap affected change detection with package graph
construction (#14496) (`30692b5`)
- perf: Find line breaks in task output a block at a time (#14601)
(`e53bf84`)
- perf: Buffer task log file writes in 64 KiB blocks (#14607)
(`e319751`)
- perf: Hand lockfile closures to JavaScript resolution as indices
(#14596) (`f208320`)
- perf: Share each file's text across its trace errors (#14632)
(`d07431c`)
- fix: Preserve task output after non-zero exits (#14373) (`02d569b`)
- perf: Overlap reading and compression when building cache archives for
upload (#14617) (`b9aa312`)
- perf: Install cache archives locally while they upload (#14622)
(`36995e5`)
- perf: Skip newline normalization copies for already-normalized TUI
output (#14595) (`f05411f`)
- chore: Update with-changesets example (#14638) (`a3ef52a`)
- fix: Attribute Cargo.lock changes to the crates whose dependencies
changed (#14656) (`74c9fbc`)
- fix: Stop installing the Unix shell hook automatically (#14813)
(`9328416`)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
anthonyshew pushed a commit that referenced this pull request Oct 16, 2026
## Release v2.11.9

Versioned docs: https://v2-11-9.turborepo.dev

### Changes

- chore: Release Turborepo 2.11.8 (#14789) (`d937b9d`)
- perf: Prefetch Cargo metadata during lazy graph construction (#14497)
(`2a2786c`)
- perf: Compute Berry lockfile closures once across workspaces (#14499)
(`910886d`)
- perf: Check cache hit outputs in place instead of on the blocking pool
(#14524) (`ed120d5`)
- perf: Speed up Berry lockfile loading (#14500) (`81a81e8`)
- perf: Parse bun.lock without building a JSON syntax tree (#14502)
(`172d9e9`)
- perf: Skip the dry run cache batch window when there is no remote
cache (#14505) (`025eb71`)
- perf: Emit lockfile closures pre-sorted and cheapen closure interning
(#14525) (`2a4812f`)
- perf: Reuse configuration derived from turbo.json between the shim and
the CLI (#14521) (`cb65c08`)
- feat: Report locked tools-only setup plans (#14483) (`ae970f6`)
- perf: Compute Bun lockfile closures once across workspaces (#14501)
(`778e14a`)
- perf: Reuse open parent directories when restoring cache archives
(#14506) (`f3747f5`)
- perf: Skip dropping the run right before turbo run exits (#14507)
(`858990a`)
- perf: Match literal input exclusions without compiling globs (#14510)
(`1aa874f`)
- perf: Copy pruned package files in parallel (#14512) (`2ebac47`)
- feat: Report proposed first-lock and refresh setup plans (#14571)
(`d12516c`)
- perf: Compress large cache archives with multithreaded zstd (#14698)
(`5b3d03c`)
- perf: Read tracked file stats from directory listings on Windows
(#14633) (`7789888`)
- perf: Diff changed lockfile resolutions with a merge instead of
ordered sets (#14630) (`452c8b7`)
- perf: Write dry run text output through one buffered stdout handle
(#14625) (`213115d`)
- perf: Parse pnpm-workspace.yaml once per command (#14620) (`7ae73f9`)
- perf: Write each file trace error to stderr in a single call (#14618)
(`4abf82b`)
- perf: Reuse glob validation results when re-validating turbo.json in
the language server (#14615) (`bd3cda2`)
- perf: Keep git subprocesses off the critical path of dry runs (#14610)
(`ec761cb`)
- perf: Classify watch file changes when they arrive instead of on a
100ms poll (#14600) (`268696e`)
- perf: Buffer TUI raw-output spool writes (#14597) (`f8f298a`)
- perf: Add the turbo query version key without re-parsing the response
(#14592) (`463a689`)
- perf: Replay cached task logs in whole-line chunks (#14590)
(`255fd13`)
- perf: Write each boundaries diagnostic to stderr in a single call
(#14587) (`2d990c1`)
- perf: Walk leading-globstar input trees in parallel without wax
(#14511) (`462cb81`)
- perf: Reuse open parent directories when writing cache archives
(#14513) (`ac51cd7`)
- perf: Index Bun lockfile subgraph lookups instead of rescanning all
packages (#14514) (`8d11635`)
- perf: Render the pruned lockfile while package files are copied
(#14515) (`a5f426b`)
- feat: Resolve exact native npm lock cohorts (#14484) (`b5a179d`)
- perf: Batch prefixed task output into one write per chunk (#14588)
(`92dc725`)
- perf: Share one allocation per external package identity (#14528)
(`6c2531e`)
- perf: Remove quadratic package-name scan from microfrontends discovery
(#14527) (`679432d`)
- perf: Render file trace errors on several threads (#14623) (`09f6d34`)
- perf: Check boundaries packages in parallel again (#14598) (`a38ab01`)
- perf: Read PTY child output in 8 KiB chunks (#14594) (`78d5e8f`)
- perf: Load each package's tsconfig once when checking boundaries
(#14589) (`79570a7`)
- perf: Skip the file watcher round trip when checking outputs for new
task hashes (#14626) (`94b863f`)
- perf: Refresh only memory stats in `turbo info` (#14593) (`622fc20`)
- perf: Walk and record prune copy plans in parallel (#14522)
(`7928d4f`)
- feat: Reconcile sealed clone-local setup selections (#14485)
(`ed36803`)
- test: Add macOS ACL safety prerequisite for setup state (#14493)
(`01f493b`)
- fix: Accept Homebrew's bundled npm prefix in setup source preflight
(#14566) (`6f024d9`)
- feat: Report ignored version manager declarations during setup
(#14531) (`8f3a219`)
- feat: Provision clone-local setup without lock writes (#14486)
(`514c5b8`)
- feat: Integrate native npm provisioning into setup (#14491)
(`9cc8789`)
- test: Check pruned setup outputs through the real CLI (#14529)
(`5ab08c6`)
- feat: Parse Go toolchain declarations for setup (#14530) (`be0f607`)
- feat: Parse root uv version requests for setup (#14533) (`8529794`)
- test: Prove Unix process parity for native and npm-wrapped turbo run
(#14539) (`159902b`)
- feat: Add root-only `turbo setup` policy to turbo.json (#14541)
(`64a8a5f`)
- test: Interrupt Unix turbo setup through both entrypoints (#14542)
(`c0dc146`)
- feat: Bootstrap a verified repository-scoped rustup (#14543)
(`51b1233`)
- feat: Follow approved release CDN redirects in verified downloads
(#14557) (`e96b1e0`)
- test: Prove native Windows process parity for standalone and
npm-wrapped turbo run (#14565) (`fb76400`)
- fix: Explain missing Git and non-repository setup roots (#14567)
(`c6f671f`)
- fix: Keep non-UTF-8 arguments from crashing the turbo shim (#14570)
(`28a19ac`)
- feat: Install managed tool generations on native Windows (#14582)
(`ba28cd7`)
- feat: Add the shell hook by default from the POSIX installer (#14608)
(`4a85487`)
- feat: Accept Corepack SHA-224 package manager pins (#14640)
(`f739c30`)
- fix: Accept official Bun ZIP metadata in verified archives (#14657)
(`b4fe7fa`)
- fix: Write turbo.lock as indented JSON (#14738) (`95696a5`)
- fix: Accept project .npmrc files with only install-layout settings
(#14740) (`15f16ae`)
- feat: Define native lifecycle-script policy for dependency setup
(#14661) (`5784f11`)
- feat: Resolve uv requests to official locked releases (#14537)
(`c15f729`)
- feat: Install locked uv with repo-scoped launchers (#14538)
(`0754979`)
- feat: Record official Go release artifacts in turbo.lock (#14532)
(`2729bae`)
- feat: Create, refresh, and freeze uv selections in turbo setup
(#14547) (`bac15a7`)
- feat: Resolve root Python requests through managed uv (#14552)
(`2625ebd`)
- fix: Lock managed Python for every supported architecture (#14691)
(`0f3295d`)
- feat: Select Linux setup artifacts by detecting the host libc at
runtime (#14637) (`0a4bc5c`)
- feat: Provision verified Go toolchain archives (#14544) (`15da2ed`)
- feat: Provision locked rustup from turbo setup (#14548) (`77fb8eb`)
- fix: Keep managed setup working under Ubuntu's default 0002 umask
(#14666) (`85f1a46`)
- feat: Provision pnpm 11 releases with their module entry points
(#14742) (`0a03742`)
- fix: Accept npm and pnpm wrapper environments in setup source policy
(#14643) (`7b545d5`)
- feat: Extract official python-build-standalone archives (#14669)
(`dfcdccd`)
- feat: Declare additional repository tools in root setup policy
(#14574) (`f10cdcb`)
- fix: Parse JSX in JavaScript files (#14794) (`8e6c376`)
- fix: Complete CI frozen setup behavior (#14492) (`813cfbb`)
- feat: Provision tools with plain turbo setup and report skipped
dependencies (#14650) (`6b5719a`)
- feat: Record trusted setup installations outside the repository
(#14494) (`c5691d5`)
- feat: Provision pnpm 12 native binaries from verified platform
packages (#14743) (`0b20ecd`)
- feat: Parse root rust-toolchain files into portable requests (#14550)
(`3881ffb`)
- feat: Provision locked Python interpreters through managed uv (#14559)
(`9730f0a`)
- feat: Sync uv workspaces from the committed uv.lock (#14561)
(`32b7cd3`)
- feat: Resolve Rust toolchain requests to exact locked channels
(#14551) (`c52462d`)
- feat: Authorize prepared tools from private setup evidence (#14495)
(`027983e`)
- feat: Install locked Rust toolchains through private rustup (#14562)
(`ef05ed9`)
- feat: Create and update Rust selections in turbo.lock (#14563)
(`65dff32`)
- feat: Prefetch locked Cargo dependencies with managed cargo (#14564)
(`c2da04e`)
- feat: Activate trusted Node and pnpm for task execution (#14508)
(`b96a689`)
- feat: Enforce managed run compatibility before CLI handoff (#14509)
(`c6e79fb`)
- fix: Close managed execution authorization gaps (#14516) (`00faa27`)
- fix: Preserve informational exits in managed repositories (#14519)
(`d83f8ec`)
- feat: Reuse trusted installations for offline setup (#14518)
(`f994556`)
- feat: Add experimental managed Node and pnpm peer capabilities
(#14517) (`a506da8`)
- feat: Lock additional tool artifacts and detect declaration drift
(#14575) (`9bd0143`)
- feat: Install additional tools through a generic verified artifact
backend (#14577) (`695b772`)
- feat: Activate locked uv and Python and check their readiness (#14649)
(`715ecd1`)
- fix: Precompile managed Python bytecode while staging (#14670)
(`f096855`)
- feat: Prune setup records for deleted, moved, or re-cloned roots
(#14655) (`3f60d68`)
- feat: Activate locked Rust toolchains and check their readiness
(#14651) (`28afea9`)
- feat: Provision locked additional tools from turbo setup (#14581)
(`567145b`)
- feat: Create and refresh Go entries in turbo.lock during local setup
(#14553) (`27c71bb`)
- feat: Prefetch Go modules without changing go.mod or go.sum (#14554)
(`793dec9`)
- feat: Advertise the managed Node/pnpm peer contract on GNU Linux x64
(#14641) (`e539d18`)
- feat: Provision locked Yarn classic binaries (#14555) (`c69d6a2`)
- feat: Add repository and CLI controls for skipping lifecycle scripts
(#14662) (`8fcb0aa`)
- feat: Explain whether turbo setup repairs tools or updates the lock
(#14654) (`c3b633f`)
- feat: Reuse verified tool downloads across repositories (#14535)
(`558d101`)
- perf: Cache installed tool tree hashes per generation (#14653)
(`ad236b2`)
- test: Exercise global setup then plain turbo run end to end (#14642)
(`5a60b56`)
- feat: Apply root setup policy and CLI overrides in turbo setup
(#14663) (`a35bde6`)
- feat: Pin and verify the xz Rust tarballs rustup downloads (#14771)
(`90f44b6`)
- feat: Hash locked additional-tool artifact identity portably (#14583)
(`17a30c8`)
- feat: Provision locked modern Yarn bundles (#14556) (`319a7b2`)
- feat: Provision locked Bun binaries without global Bun (#14558)
(`37eaa02`)
- feat: Provision offline setup from verified cached artifacts (#14540)
(`91d21a1`)
- feat: Measure and remove inactive managed tool storage (#14549)
(`8344022`)
- feat: Create and update turbo.lock for Yarn and Bun during local setup
(#14560) (`6175fc0`)
- feat: Validate installed Yarn and Bun activation plans and checks
(#14648) (`7e07545`)
- feat: Set up Bun-only repositories without a Node declaration (#14658)
(`4763aa1`)
- feat: Add a shell hook that activates managed tools in bash and zsh
(#14603) (`6ce614d`)
- feat: Add an uninstall mode to the POSIX installer (#14636)
(`70ab324`)
- test: Recover setup killed mid-download and mid-unpack (#14569)
(`067223e`)
- feat: Route setup downloads through credential-free mirror overrides
(#14545) (`fbc28b4`)
- test: Race concurrent setup writers over one shared cache (#14573)
(`02fdf5c`)
- feat: Clean up replaced managed tools automatically during setup
(#14652) (`224beba`)
- feat: Add the `turbo exec` command surface (#14536) (`50557d1`)
- feat: Run `turbo exec` commands with the managed environment (#14568)
(`055f182`)
- feat: Activate locked Go and check its readiness in turbo setup
--check (#14644) (`db7a59a`)
- feat: Name the missing Node declaration when --no-lock setup cannot
start (#14701) (`5d5d411`)
- feat: Add shell hook support for fish and PowerShell (#14606)
(`7870baf`)
- fix: Run turbo setup in pruned output without a Git repository
(#14639) (`6e9908b`)
- fix: Accept umask 0002 ancestors of trusted setup records (#14702)
(`57184d1`)
- fix: Guard managed `turbo exec` local CLI handoff (#14572) (`4e4762b`)
- feat: Lock and verify system Node.js and pnpm under verify-system
policy (#14664) (`910f7a7`)
- feat: Record and authorize trusted setup roots on native Windows
(#14659) (`25d0073`)
- test: Verify `turbo exec` end to end from nested paths (#14578)
(`ef1e09d`)
- test: Prove Unix `turbo exec` parity for standalone and npm wrapper
(#14580) (`628a06e`)
- feat: Provision managed Node and pnpm on native Windows (#14584)
(`457f1dc`)
- fix: Preserve `turbo exec` behavior for Windows `.cmd` launchers and
Ctrl+C (#14646) (`07763e2`)
- test: Prove native Windows `turbo exec` entrypoint parity without
managed tools (#14660) (`986bd5d`)
- fix: Stop native Windows turbo setup on Ctrl+C from either entrypoint
(#14591) (`dead697`)
- fix: Refuse managed setup on Windows arm64 hosts, including x64 turbo
under emulation (#14672) (`76aee36`)
- fix: Propose setup plans with every ecosystem's lock resolver (#14744)
(`40de283`)
- fix: Detect the host libc for managed turbo run (#14710) (`97f284a`)
- feat: Add a frozen npm install adapter for setup dependencies (#14718)
(`bf6bc06`)
- feat: Activate additional tool binaries in managed run and exec
(#14706) (`0a7414e`)
- feat: Install locked npm dependencies during turbo setup (#14721)
(`c4eee00`)
- feat: Follow HTTPS redirects for additional-tool artifacts (#14707)
(`cd15afd`)
- feat: Configure setup mirrors in the root setup policy (#14700)
(`a82b7cf`)
- feat: Record trusted setup roots for --no-lock installs (#14727)
(`3736489`)
- feat: Activate and hash --no-lock selections in plain turbo run
(#14729) (`463ff19`)
- feat: Install additional-tool archives without a top-level folder
(#14708) (`887e800`)
- feat: Mirror Bun, uv, and Python release downloads (#14714)
(`dcd1156`)
- feat: Mirror Go and Rust release downloads (#14739) (`03b948c`)
- feat: Provision declared npm without lock writes (#14730) (`0409003`)
- feat: Activate every managed ecosystem in turbo run, including its own
probes (#14711) (`767bbae`)
- feat: Download additional tools through the shared cache, offline
mode, and a mirror (#14709) (`65a5653`)
- feat: Resolve native task commands through managed binaries (#14712)
(`fd5f189`)
- test: Cover the Unix additional-tool setup, run, and recovery matrix
(#14717) (`3e66b8b`)
- feat: Qualify additional tools on native Windows x64 (#14731)
(`6d2cd4f`)
- feat: Use verified system tools in managed turbo run (#14713)
(`99755d8`)
- test: Exercise managed Go setup then plain turbo run without host Go
(#14719) (`9d93333`)
- test: Exercise managed Rust setup then plain turbo run without host
Rust (#14720) (`0493634`)
- test: Exercise managed uv and Python setup then plain turbo run
without host Python (#14722) (`c880e8e`)
- test: Exercise managed Yarn and Bun setup then plain turbo run without
host tools (#14723) (`dcbfb66`)
- fix: Let turbo run and turbo exec use verify-system tools on musl
hosts (#14751) (`3ee58a1`)
- test: Qualify Yarn classic and modern Yarn setup on native Windows x64
(#14746) (`8f85a5e`)
- feat: Provision managed uv on native Windows x64 (#14749) (`2bef03b`)
- feat: Provision locked Rust toolchains on native Windows x64 (#14752)
(`05d681e`)
- fix: Kill the command when `turbo exec` is killed (#14757) (`4ffb0ad`)
- feat: Provision managed Go from the official Windows x64 zip (#14748)
(`803ad4a`)
- feat: Provision managed Python on native Windows x64 (#14756)
(`4093034`)
- feat: Activate managed tools from the PowerShell hook on native
Windows x64 (#14747) (`67c4aec`)
- feat: Activate managed Go with a plain GOROOT on native Windows
(#14754) (`6f94cfc`)
- feat: Provision locked Bun on native Windows x64 (#14750) (`2625c71`)
- fix: Keep PowerShell hook output ASCII so console code pages cannot
corrupt PATH (#14755) (`6e16487`)
- feat: Provision pnpm 12 native binaries on native Windows x64 (#14753)
(`b5be2f3`)
- fix: Kill the local `turbo` when the global `turbo` that handed off is
killed (#14785) (`45a8dea`)
- feat: Activate managed Rust on native Windows x64 (#14758) (`c4b70ca`)
- feat: Activate managed Go from the shell hook on native Windows x64
(#14764) (`d5aeac9`)
- fix: Block cache restoration writes to Git metadata (#14808)
(`26ccb98`)
- feat: Report locked dependency actions in turbo setup plans and checks
(#14724) (`85909df`)
- feat: Advertise the managed-run peer contract on every claimed
platform (#14780) (`409c609`)
- fix: Activate managed tools in turbo watch (#14779) (`b0dee21`)
- perf: Stamp installed tool trees on native Windows (#14774)
(`26ac5de`)
- feat: Install pnpm dependencies in frozen mode during setup (#14726)
(`849c145`)
- feat: Measure setup outcomes through standard telemetry (#14546)
(`a6baee9`)
- feat: Install Yarn dependencies immutably during setup (#14733)
(`12d5101`)
- fix: Activate managed tools in commands that discover the repository
(#14784) (`dfb8e37`)
- feat: Install Bun dependencies from a frozen lock during setup
(#14734) (`496489c`)
- feat: Sync locked uv workspaces during turbo setup (#14735)
(`cbd3ac9`)
- fix: Reject Windows prefixed paths during cache restore (#14809)
(`6e814c4`)
- feat: Prefetch locked Cargo dependencies during turbo setup (#14736)
(`65abf4d`)
- feat: Prefetch Go modules during turbo setup (#14737) (`c93e489`)
- test: Cover managed uv and Python setup on native Windows x64 (#14761)
(`14b60e4`)
- feat: Prefetch Cargo dependencies and report the MSVC linker on
Windows (#14760) (`3e9c10c`)
- feat: Install locked dependencies offline from native caches (#14759)
(`fc95b6e`)
- feat: Prefetch Go modules with managed Go on native Windows (#14762)
(`7356a00`)
- feat: Install locked JavaScript dependencies on native Windows x64
(#14763) (`d98d962`)
- feat: Probe repository-local turbo on Windows and cover pins on every
platform (#14781) (`1de7829`)
- feat: Export managed runtime variables from the shell hook on every
platform (#14802) (`fb29ed6`)
- refactor: Route setup's Git queries through an injectable boundary
(#14811) (`3e542a0`)
- perf: Load each tsconfig once per file trace (#14627) (`1b11a72`)
- perf: Overlap reading and compression when writing large cache
archives (#14604) (`dbdcdb8`)
- perf: Speed up pnpm lockfile pruning and encoding in turbo prune
(#14520) (`9ef9ee2`)
- perf: Prefetch remote cache artifacts as soon as task hashes are known
(#14585) (`aeab1d7`)
- perf: Remove the remaining quadratic passes from the Bun prune
subgraph (#14523) (`27ed79d`)
- perf: Memoize Cargo.lock closures and share resolution identities
(#14498) (`f674fb1`)
- perf: Match node_modules-style exclusions by path segment instead of
compiling globs (#14634) (`c5b05d0`)
- perf: Avoid waking the rayon pool for small workspaces (#14602)
(`8308fa9`)
- perf: Overlap affected change detection with package graph
construction (#14496) (`30692b5`)
- perf: Find line breaks in task output a block at a time (#14601)
(`e53bf84`)
- perf: Buffer task log file writes in 64 KiB blocks (#14607)
(`e319751`)
- perf: Hand lockfile closures to JavaScript resolution as indices
(#14596) (`f208320`)
- perf: Share each file's text across its trace errors (#14632)
(`d07431c`)
- fix: Preserve task output after non-zero exits (#14373) (`02d569b`)
- perf: Overlap reading and compression when building cache archives for
upload (#14617) (`b9aa312`)
- perf: Install cache archives locally while they upload (#14622)
(`36995e5`)
- perf: Skip newline normalization copies for already-normalized TUI
output (#14595) (`f05411f`)
- chore: Update with-changesets example (#14638) (`a3ef52a`)
- fix: Attribute Cargo.lock changes to the crates whose dependencies
changed (#14656) (`74c9fbc`)
- fix: Stop installing the Unix shell hook automatically (#14813)
(`9328416`)
- chore: Release Turborepo 2.11.9-canary.1 (#14817) (`a3bcc4a`)
- fix: Allow native package manager configuration during setup (#14816)
(`9c90852`)
- refactor: Remove setup lifecycle script controls (#14818) (`679efb8`)
- docs: Use .NET in the multi-language guide (#14793) (`6834819`)
- fix(cache): Parallelize dry-run HEAD fallback (#14801) (`78b039e`)
- fix: Allow non-recursive Turbo commands in root tasks (#14814)
(`730a98a`)

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
markharding pushed a commit to futo-org/Harbor that referenced this pull request Oct 20, 2026
This PR contains the following updates:

| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [turbo](https://turborepo.dev) ([source](https://github.com/vercel/turborepo)) | [`2.11.8` → `2.11.9`](https://renovatebot.com/diffs/npm/turbo/2.11.8/2.11.9) | ![age](https://developer.mend.io/api/mc/badges/age/npm/turbo/2.11.9?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/turbo/2.11.8/2.11.9?slim=true) |

---

> ⚠️ **Warning**
>
> Some dependencies could not be looked up. Check the [Dependency Dashboard](issues/99) for more information.

---

### Release Notes

<details>
<summary>vercel/turborepo (turbo)</summary>

### [`v2.11.9`](https://github.com/vercel/turborepo/releases/tag/v2.11.9): Turborepo v2.11.9

[Compare Source](vercel/turborepo@v2.11.8...v2.11.9)

<!-- Release notes generated using configuration in .github/release.yml at v2.11.9 -->

#### What's Changed

##### Changelog

- chore: Release Turborepo 2.11.8 by [@&#8203;github-actions](https://github.com/github-actions)\[bot] in [#&#8203;14789](vercel/turborepo#14789)
- perf: Prefetch Cargo metadata during lazy graph construction by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14497](vercel/turborepo#14497)
- perf: Compute Berry lockfile closures once across workspaces by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14499](vercel/turborepo#14499)
- perf: Check cache hit outputs in place instead of on the blocking pool by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14524](vercel/turborepo#14524)
- perf: Speed up Berry lockfile loading by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14500](vercel/turborepo#14500)
- perf: Parse bun.lock without building a JSON syntax tree by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14502](vercel/turborepo#14502)
- perf: Skip the dry run cache batch window when there is no remote cache by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14505](vercel/turborepo#14505)
- perf: Emit lockfile closures pre-sorted and cheapen closure interning by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14525](vercel/turborepo#14525)
- perf: Reuse configuration derived from turbo.json between the shim and the CLI by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14521](vercel/turborepo#14521)
- feat: Report locked tools-only setup plans by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14483](vercel/turborepo#14483)
- perf: Compute Bun lockfile closures once across workspaces by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14501](vercel/turborepo#14501)
- perf: Reuse open parent directories when restoring cache archives by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14506](vercel/turborepo#14506)
- perf: Skip dropping the run right before turbo run exits by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14507](vercel/turborepo#14507)
- perf: Match literal input exclusions without compiling globs by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14510](vercel/turborepo#14510)
- perf: Copy pruned package files in parallel by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14512](vercel/turborepo#14512)
- feat: Report proposed first-lock and refresh setup plans by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14571](vercel/turborepo#14571)
- perf: Compress large cache archives with multithreaded zstd by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14698](vercel/turborepo#14698)
- perf: Read tracked file stats from directory listings on Windows by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14633](vercel/turborepo#14633)
- perf: Diff changed lockfile resolutions with a merge instead of ordered sets by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14630](vercel/turborepo#14630)
- perf: Write dry run text output through one buffered stdout handle by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14625](vercel/turborepo#14625)
- perf: Parse pnpm-workspace.yaml once per command by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14620](vercel/turborepo#14620)
- perf: Write each file trace error to stderr in a single call by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14618](vercel/turborepo#14618)
- perf: Reuse glob validation results when re-validating turbo.json in the language server by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14615](vercel/turborepo#14615)
- perf: Keep git subprocesses off the critical path of dry runs by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14610](vercel/turborepo#14610)
- perf: Classify watch file changes when they arrive instead of on a 100ms poll by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14600](vercel/turborepo#14600)
- perf: Buffer TUI raw-output spool writes by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14597](vercel/turborepo#14597)
- perf: Add the turbo query version key without re-parsing the response by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14592](vercel/turborepo#14592)
- perf: Replay cached task logs in whole-line chunks by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14590](vercel/turborepo#14590)
- perf: Write each boundaries diagnostic to stderr in a single call by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14587](vercel/turborepo#14587)
- perf: Walk leading-globstar input trees in parallel without wax by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14511](vercel/turborepo#14511)
- perf: Reuse open parent directories when writing cache archives by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14513](vercel/turborepo#14513)
- perf: Index Bun lockfile subgraph lookups instead of rescanning all packages by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14514](vercel/turborepo#14514)
- perf: Render the pruned lockfile while package files are copied by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14515](vercel/turborepo#14515)
- feat: Resolve exact native npm lock cohorts by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14484](vercel/turborepo#14484)
- perf: Batch prefixed task output into one write per chunk by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14588](vercel/turborepo#14588)
- perf: Share one allocation per external package identity by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14528](vercel/turborepo#14528)
- perf: Remove quadratic package-name scan from microfrontends discovery by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14527](vercel/turborepo#14527)
- perf: Render file trace errors on several threads by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14623](vercel/turborepo#14623)
- perf: Check boundaries packages in parallel again by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14598](vercel/turborepo#14598)
- perf: Read PTY child output in 8 KiB chunks by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14594](vercel/turborepo#14594)
- perf: Load each package's tsconfig once when checking boundaries by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14589](vercel/turborepo#14589)
- perf: Skip the file watcher round trip when checking outputs for new task hashes by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14626](vercel/turborepo#14626)
- perf: Refresh only memory stats in `turbo info` by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14593](vercel/turborepo#14593)
- perf: Walk and record prune copy plans in parallel by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14522](vercel/turborepo#14522)
- feat: Reconcile sealed clone-local setup selections by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14485](vercel/turborepo#14485)
- test: Add macOS ACL safety prerequisite for setup state by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14493](vercel/turborepo#14493)
- fix: Accept Homebrew's bundled npm prefix in setup source preflight by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14566](vercel/turborepo#14566)
- feat: Report ignored version manager declarations during setup by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14531](vercel/turborepo#14531)
- feat: Provision clone-local setup without lock writes by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14486](vercel/turborepo#14486)
- feat: Integrate native npm provisioning into setup by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14491](vercel/turborepo#14491)
- test: Check pruned setup outputs through the real CLI by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14529](vercel/turborepo#14529)
- feat: Parse Go toolchain declarations for setup by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14530](vercel/turborepo#14530)
- feat: Parse root uv version requests for setup by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14533](vercel/turborepo#14533)
- test: Prove Unix process parity for native and npm-wrapped turbo run by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14539](vercel/turborepo#14539)
- feat: Add root-only `turbo setup` policy to turbo.json by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14541](vercel/turborepo#14541)
- test: Interrupt Unix turbo setup through both entrypoints by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14542](vercel/turborepo#14542)
- feat: Bootstrap a verified repository-scoped rustup by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14543](vercel/turborepo#14543)
- feat: Follow approved release CDN redirects in verified downloads by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14557](vercel/turborepo#14557)
- test: Prove native Windows process parity for standalone and npm-wrapped turbo run by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14565](vercel/turborepo#14565)
- fix: Explain missing Git and non-repository setup roots by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14567](vercel/turborepo#14567)
- fix: Keep non-UTF-8 arguments from crashing the turbo shim by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14570](vercel/turborepo#14570)
- feat: Install managed tool generations on native Windows by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14582](vercel/turborepo#14582)
- feat: Add the shell hook by default from the POSIX installer by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14608](vercel/turborepo#14608)
- feat: Accept Corepack SHA-224 package manager pins by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14640](vercel/turborepo#14640)
- fix: Accept official Bun ZIP metadata in verified archives by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14657](vercel/turborepo#14657)
- fix: Write turbo.lock as indented JSON by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14738](vercel/turborepo#14738)
- fix: Accept project .npmrc files with only install-layout settings by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14740](vercel/turborepo#14740)
- feat: Define native lifecycle-script policy for dependency setup by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14661](vercel/turborepo#14661)
- feat: Resolve uv requests to official locked releases by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14537](vercel/turborepo#14537)
- feat: Install locked uv with repo-scoped launchers by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14538](vercel/turborepo#14538)
- feat: Record official Go release artifacts in turbo.lock by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14532](vercel/turborepo#14532)
- feat: Create, refresh, and freeze uv selections in turbo setup by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14547](vercel/turborepo#14547)
- feat: Resolve root Python requests through managed uv by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14552](vercel/turborepo#14552)
- fix: Lock managed Python for every supported architecture by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14691](vercel/turborepo#14691)
- feat: Select Linux setup artifacts by detecting the host libc at runtime by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14637](vercel/turborepo#14637)
- feat: Provision verified Go toolchain archives by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14544](vercel/turborepo#14544)
- feat: Provision locked rustup from turbo setup by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14548](vercel/turborepo#14548)
- fix: Keep managed setup working under Ubuntu's default 0002 umask by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14666](vercel/turborepo#14666)
- feat: Provision pnpm 11 releases with their module entry points by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14742](vercel/turborepo#14742)
- fix: Accept npm and pnpm wrapper environments in setup source policy by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14643](vercel/turborepo#14643)
- feat: Extract official python-build-standalone archives by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14669](vercel/turborepo#14669)
- feat: Declare additional repository tools in root setup policy by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14574](vercel/turborepo#14574)
- fix: Parse JSX in JavaScript files by [@&#8203;sahyl](https://github.com/sahyl) in [#&#8203;14794](vercel/turborepo#14794)
- fix: Complete CI frozen setup behavior by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14492](vercel/turborepo#14492)
- feat: Provision tools with plain turbo setup and report skipped dependencies by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14650](vercel/turborepo#14650)
- feat: Record trusted setup installations outside the repository by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14494](vercel/turborepo#14494)
- feat: Provision pnpm 12 native binaries from verified platform packages by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14743](vercel/turborepo#14743)
- feat: Parse root rust-toolchain files into portable requests by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14550](vercel/turborepo#14550)
- feat: Provision locked Python interpreters through managed uv by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14559](vercel/turborepo#14559)
- feat: Sync uv workspaces from the committed uv.lock by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14561](vercel/turborepo#14561)
- feat: Resolve Rust toolchain requests to exact locked channels by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14551](vercel/turborepo#14551)
- feat: Authorize prepared tools from private setup evidence by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14495](vercel/turborepo#14495)
- feat: Install locked Rust toolchains through private rustup by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14562](vercel/turborepo#14562)
- feat: Create and update Rust selections in turbo.lock by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14563](vercel/turborepo#14563)
- feat: Prefetch locked Cargo dependencies with managed cargo by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14564](vercel/turborepo#14564)
- feat: Activate trusted Node and pnpm for task execution by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14508](vercel/turborepo#14508)
- feat: Enforce managed run compatibility before CLI handoff by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14509](vercel/turborepo#14509)
- fix: Close managed execution authorization gaps by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14516](vercel/turborepo#14516)
- fix: Preserve informational exits in managed repositories by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14519](vercel/turborepo#14519)
- feat: Reuse trusted installations for offline setup by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14518](vercel/turborepo#14518)
- feat: Add experimental managed Node and pnpm peer capabilities by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14517](vercel/turborepo#14517)
- feat: Lock additional tool artifacts and detect declaration drift by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14575](vercel/turborepo#14575)
- feat: Install additional tools through a generic verified artifact backend by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14577](vercel/turborepo#14577)
- feat: Activate locked uv and Python and check their readiness by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14649](vercel/turborepo#14649)
- fix: Precompile managed Python bytecode while staging by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14670](vercel/turborepo#14670)
- feat: Prune setup records for deleted, moved, or re-cloned roots by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14655](vercel/turborepo#14655)
- feat: Activate locked Rust toolchains and check their readiness by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14651](vercel/turborepo#14651)
- feat: Provision locked additional tools from turbo setup by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14581](vercel/turborepo#14581)
- feat: Create and refresh Go entries in turbo.lock during local setup by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14553](vercel/turborepo#14553)
- feat: Prefetch Go modules without changing go.mod or go.sum by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14554](vercel/turborepo#14554)
- feat: Advertise the managed Node/pnpm peer contract on GNU Linux x64 by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14641](vercel/turborepo#14641)
- feat: Provision locked Yarn classic binaries by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14555](vercel/turborepo#14555)
- feat: Add repository and CLI controls for skipping lifecycle scripts by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14662](vercel/turborepo#14662)
- feat: Explain whether turbo setup repairs tools or updates the lock by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14654](vercel/turborepo#14654)
- feat: Reuse verified tool downloads across repositories by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14535](vercel/turborepo#14535)
- perf: Cache installed tool tree hashes per generation by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14653](vercel/turborepo#14653)
- test: Exercise global setup then plain turbo run end to end by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14642](vercel/turborepo#14642)
- feat: Apply root setup policy and CLI overrides in turbo setup by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14663](vercel/turborepo#14663)
- feat: Pin and verify the xz Rust tarballs rustup downloads by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14771](vercel/turborepo#14771)
- feat: Hash locked additional-tool artifact identity portably by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14583](vercel/turborepo#14583)
- feat: Provision locked modern Yarn bundles by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14556](vercel/turborepo#14556)
- feat: Provision locked Bun binaries without global Bun by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14558](vercel/turborepo#14558)
- feat: Provision offline setup from verified cached artifacts by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14540](vercel/turborepo#14540)
- feat: Measure and remove inactive managed tool storage by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14549](vercel/turborepo#14549)
- feat: Create and update turbo.lock for Yarn and Bun during local setup by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14560](vercel/turborepo#14560)
- feat: Validate installed Yarn and Bun activation plans and checks by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14648](vercel/turborepo#14648)
- feat: Set up Bun-only repositories without a Node declaration by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14658](vercel/turborepo#14658)
- feat: Add a shell hook that activates managed tools in bash and zsh by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14603](vercel/turborepo#14603)
- feat: Add an uninstall mode to the POSIX installer by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14636](vercel/turborepo#14636)
- test: Recover setup killed mid-download and mid-unpack by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14569](vercel/turborepo#14569)
- feat: Route setup downloads through credential-free mirror overrides by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14545](vercel/turborepo#14545)
- test: Race concurrent setup writers over one shared cache by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14573](vercel/turborepo#14573)
- feat: Clean up replaced managed tools automatically during setup by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14652](vercel/turborepo#14652)
- feat: Add the `turbo exec` command surface by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14536](vercel/turborepo#14536)
- feat: Run `turbo exec` commands with the managed environment by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14568](vercel/turborepo#14568)
- feat: Activate locked Go and check its readiness in turbo setup --check by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14644](vercel/turborepo#14644)
- feat: Name the missing Node declaration when --no-lock setup cannot start by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14701](vercel/turborepo#14701)
- feat: Add shell hook support for fish and PowerShell by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14606](vercel/turborepo#14606)
- fix: Run turbo setup in pruned output without a Git repository by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14639](vercel/turborepo#14639)
- fix: Accept umask 0002 ancestors of trusted setup records by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14702](vercel/turborepo#14702)
- fix: Guard managed `turbo exec` local CLI handoff by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14572](vercel/turborepo#14572)
- feat: Lock and verify system Node.js and pnpm under verify-system policy by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14664](vercel/turborepo#14664)
- feat: Record and authorize trusted setup roots on native Windows by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14659](vercel/turborepo#14659)
- test: Verify `turbo exec` end to end from nested paths by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14578](vercel/turborepo#14578)
- test: Prove Unix `turbo exec` parity for standalone and npm wrapper by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14580](vercel/turborepo#14580)
- feat: Provision managed Node and pnpm on native Windows by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14584](vercel/turborepo#14584)
- fix: Preserve `turbo exec` behavior for Windows `.cmd` launchers and Ctrl+C by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14646](vercel/turborepo#14646)
- test: Prove native Windows `turbo exec` entrypoint parity without managed tools by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14660](vercel/turborepo#14660)
- fix: Stop native Windows turbo setup on Ctrl+C from either entrypoint by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14591](vercel/turborepo#14591)
- fix: Refuse managed setup on Windows arm64 hosts, including x64 turbo under emulation by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14672](vercel/turborepo#14672)
- fix: Propose setup plans with every ecosystem's lock resolver by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14744](vercel/turborepo#14744)
- fix: Detect the host libc for managed turbo run by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14710](vercel/turborepo#14710)
- feat: Add a frozen npm install adapter for setup dependencies by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14718](vercel/turborepo#14718)
- feat: Activate additional tool binaries in managed run and exec by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14706](vercel/turborepo#14706)
- feat: Install locked npm dependencies during turbo setup by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14721](vercel/turborepo#14721)
- feat: Follow HTTPS redirects for additional-tool artifacts by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14707](vercel/turborepo#14707)
- feat: Configure setup mirrors in the root setup policy by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14700](vercel/turborepo#14700)
- feat: Record trusted setup roots for --no-lock installs by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14727](vercel/turborepo#14727)
- feat: Activate and hash --no-lock selections in plain turbo run by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14729](vercel/turborepo#14729)
- feat: Install additional-tool archives without a top-level folder by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14708](vercel/turborepo#14708)
- feat: Mirror Bun, uv, and Python release downloads by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14714](vercel/turborepo#14714)
- feat: Mirror Go and Rust release downloads by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14739](vercel/turborepo#14739)
- feat: Provision declared npm without lock writes by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14730](vercel/turborepo#14730)
- feat: Activate every managed ecosystem in turbo run, including its own probes by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14711](vercel/turborepo#14711)
- feat: Download additional tools through the shared cache, offline mode, and a mirror by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14709](vercel/turborepo#14709)
- feat: Resolve native task commands through managed binaries by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14712](vercel/turborepo#14712)
- test: Cover the Unix additional-tool setup, run, and recovery matrix by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14717](https://github.com/vercel/turborepo/pull/14717)
- feat: Qualify additional tools on native Windows x64 by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14731](https://github.com/vercel/turborepo/pull/14731)
- feat: Use verified system tools in managed turbo run by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14713](https://github.com/vercel/turborepo/pull/14713)
- test: Exercise managed Go setup then plain turbo run without host Go by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14719](https://github.com/vercel/turborepo/pull/14719)
- test: Exercise managed Rust setup then plain turbo run without host Rust by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14720](https://github.com/vercel/turborepo/pull/14720)
- test: Exercise managed uv and Python setup then plain turbo run without host Python by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14722](https://github.com/vercel/turborepo/pull/14722)
- test: Exercise managed Yarn and Bun setup then plain turbo run without host tools by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14723](https://github.com/vercel/turborepo/pull/14723)
- fix: Let turbo run and turbo exec use verify-system tools on musl hosts by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14751](https://github.com/vercel/turborepo/pull/14751)
- test: Qualify Yarn classic and modern Yarn setup on native Windows x64 by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14746](https://github.com/vercel/turborepo/pull/14746)
- feat: Provision managed uv on native Windows x64 by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14749](https://github.com/vercel/turborepo/pull/14749)
- feat: Provision locked Rust toolchains on native Windows x64 by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14752](https://github.com/vercel/turborepo/pull/14752)
- fix: Kill the command when `turbo exec` is killed by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14757](https://github.com/vercel/turborepo/pull/14757)
- feat: Provision managed Go from the official Windows x64 zip by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14748](https://github.com/vercel/turborepo/pull/14748)
- feat: Provision managed Python on native Windows x64 by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14756](https://github.com/vercel/turborepo/pull/14756)
- feat: Activate managed tools from the PowerShell hook on native Windows x64 by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14747](https://github.com/vercel/turborepo/pull/14747)
- feat: Activate managed Go with a plain GOROOT on native Windows by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14754](https://github.com/vercel/turborepo/pull/14754)
- feat: Provision locked Bun on native Windows x64 by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14750](https://github.com/vercel/turborepo/pull/14750)
- fix: Keep PowerShell hook output ASCII so console code pages cannot corrupt PATH by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14755](https://github.com/vercel/turborepo/pull/14755)
- feat: Provision pnpm 12 native binaries on native Windows x64 by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14753](https://github.com/vercel/turborepo/pull/14753)
- fix: Kill the local `turbo` when the global `turbo` that handed off is killed by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14785](https://github.com/vercel/turborepo/pull/14785)
- feat: Activate managed Rust on native Windows x64 by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14758](https://github.com/vercel/turborepo/pull/14758)
- feat: Activate managed Go from the shell hook on native Windows x64 by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14764](https://github.com/vercel/turborepo/pull/14764)
- fix: Block cache restoration writes to Git metadata by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14808](https://github.com/vercel/turborepo/pull/14808)
- feat: Report locked dependency actions in turbo setup plans and checks by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14724](https://github.com/vercel/turborepo/pull/14724)
- feat: Advertise the managed-run peer contract on every claimed platform by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14780](https://github.com/vercel/turborepo/pull/14780)
- fix: Activate managed tools in turbo watch by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14779](https://github.com/vercel/turborepo/pull/14779)
- perf: Stamp installed tool trees on native Windows by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14774](https://github.com/vercel/turborepo/pull/14774)
- feat: Install pnpm dependencies in frozen mode during setup by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14726](https://github.com/vercel/turborepo/pull/14726)
- feat: Measure setup outcomes through standard telemetry by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14546](https://github.com/vercel/turborepo/pull/14546)
- feat: Install Yarn dependencies immutably during setup by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14733](https://github.com/vercel/turborepo/pull/14733)
- fix: Activate managed tools in commands that discover the repository by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14784](https://github.com/vercel/turborepo/pull/14784)
- feat: Install Bun dependencies from a frozen lock during setup by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14734](https://github.com/vercel/turborepo/pull/14734)
- feat: Sync locked uv workspaces during turbo setup by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14735](https://github.com/vercel/turborepo/pull/14735)
- fix: Reject Windows prefixed paths during cache restore by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14809](https://github.com/vercel/turborepo/pull/14809)
- feat: Prefetch locked Cargo dependencies during turbo setup by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14736](https://github.com/vercel/turborepo/pull/14736)
- feat: Prefetch Go modules during turbo setup by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14737](https://github.com/vercel/turborepo/pull/14737)
- test: Cover managed uv and Python setup on native Windows x64 by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14761](https://github.com/vercel/turborepo/pull/14761)
- feat: Prefetch Cargo dependencies and report the MSVC linker on Windows by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14760](https://github.com/vercel/turborepo/pull/14760)
- feat: Install locked dependencies offline from native caches by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14759](https://github.com/vercel/turborepo/pull/14759)
- feat: Prefetch Go modules with managed Go on native Windows by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14762](https://github.com/vercel/turborepo/pull/14762)
- feat: Install locked JavaScript dependencies on native Windows x64 by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14763](https://github.com/vercel/turborepo/pull/14763)
- feat: Probe repository-local turbo on Windows and cover pins on every platform by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14781](https://github.com/vercel/turborepo/pull/14781)
- feat: Export managed runtime variables from the shell hook on every platform by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14802](https://github.com/vercel/turborepo/pull/14802)
- refactor: Route setup's Git queries through an injectable boundary by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14811](https://github.com/vercel/turborepo/pull/14811)
- perf: Load each tsconfig once per file trace by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14627](https://github.com/vercel/turborepo/pull/14627)
- perf: Overlap reading and compression when writing large cache archives by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14604](https://github.com/vercel/turborepo/pull/14604)
- perf: Speed up pnpm lockfile pruning and encoding in turbo prune by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14520](https://github.com/vercel/turborepo/pull/14520)
- perf: Prefetch remote cache artifacts as soon as task hashes are known by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14585](https://github.com/vercel/turborepo/pull/14585)
- perf: Remove the remaining quadratic passes from the Bun prune subgraph by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14523](https://github.com/vercel/turborepo/pull/14523)
- perf: Memoize Cargo.lock closures and share resolution identities by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14498](https://github.com/vercel/turborepo/pull/14498)
- perf: Match node_modules-style exclusions by path segment instead of compiling globs by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14634](https://github.com/vercel/turborepo/pull/14634)
- perf: Avoid waking the rayon pool for small workspaces by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14602](https://github.com/vercel/turborepo/pull/14602)
- perf: Overlap affected change detection with package graph construction by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14496](https://github.com/vercel/turborepo/pull/14496)
- perf: Find line breaks in task output a block at a time by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14601](https://github.com/vercel/turborepo/pull/14601)
- perf: Buffer task log file writes in 64 KiB blocks by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14607](https://github.com/vercel/turborepo/pull/14607)
- perf: Hand lockfile closures to JavaScript resolution as indices by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14596](https://github.com/vercel/turborepo/pull/14596)
- perf: Share each file's text across its trace errors by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14632](https://github.com/vercel/turborepo/pull/14632)
- fix: Preserve task output after non-zero exits by [@&#8203;vercel-gh-bot-3](https://github.com/vercel-gh-bot-3)\[bot] in [#&#8203;14373](https://github.com/vercel/turborepo/pull/14373)
- perf: Overlap reading and compression when building cache archives for upload by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14617](https://github.com/vercel/turborepo/pull/14617)
- perf: Install cache archives locally while they upload by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14622](https://github.com/vercel/turborepo/pull/14622)
- perf: Skip newline normalization copies for already-normalized TUI output by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14595](https://github.com/vercel/turborepo/pull/14595)
- chore: Update with-changesets example by [@&#8203;vercel-gh-bot-3](https://github.com/vercel-gh-bot-3)\[bot] in [#&#8203;14638](https://github.com/vercel/turborepo/pull/14638)
- fix: Attribute Cargo.lock changes to the crates whose dependencies changed by [@&#8203;PedroRosalba](https://github.com/PedroRosalba) in [#&#8203;14656](https://github.com/vercel/turborepo/pull/14656)
- fix: Stop installing the Unix shell hook automatically by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14813](https://github.com/vercel/turborepo/pull/14813)
- chore: Release Turborepo 2.11.9-canary.1 by [@&#8203;github-actions](https://github.com/github-actions)\[bot] in [#&#8203;14817](https://github.com/vercel/turborepo/pull/14817)
- fix: Allow native package manager configuration during setup by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14816](https://github.com/vercel/turborepo/pull/14816)
- refactor: Remove setup lifecycle script controls by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14818](https://github.com/vercel/turborepo/pull/14818)
- docs: Use .NET in the multi-language guide by [@&#8203;sahyl](https://github.com/sahyl) in [#&#8203;14793](https://github.com/vercel/turborepo/pull/14793)
- fix(cache): Parallelize dry-run HEAD fallback by [@&#8203;FOWEPJF255](https://github.com/FOWEPJF255) in [#&#8203;14801](https://github.com/vercel/turborepo/pull/14801)

#### New Contributors

- [@&#8203;FOWEPJF255](https://github.com/FOWEPJF255) made their first contribution in [#&#8203;14801](https://github.com/vercel/turborepo/pull/14801)

**Full Changelog**: <vercel/turborepo@v2.11.8...v2.11.9>

</details>

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - "before 9am on tuesday"
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate CLI](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xNjcuMCIsInVwZGF0ZWRJblZlciI6IjQ0LjE2Ny4wIiwidGFyZ2V0QnJhbmNoIjoiZGV2ZWxvcCIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJyZW5vdmF0ZSJdfQ==-->

Reviewed-on: https://code.futo.org/harbor/harbor/pulls/1933
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

turbo boundaries and turbo query file tracing fail to parse JSX in .js files

2 participants