# What changed in turbo

> 541 changes in turbo 2 from its official release notes, upgrade guides and advisories: 19 breaking, 7 deprecations, 32 security, 80 new APIs and options. Each one cited. Sources checked 2026-10-18. HTML: https://unstale.sh/npm/turbo/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## turbo 2

### Breaking changes

- Managed setup refuses to run on Windows arm64 hosts, including when x64 turbo runs under emulation. (2.11.9) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.9)
- The fallback now rejects local sources that are not workspace members. (2.11.8) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.8)
- Empty tokens are rejected when reading token files. (2.11.5) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.5)
- Go tasks now follow Go's default binary output paths. (2.11.0) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.0)
- Incremental task caching is removed. (2.11.0) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.0)
- Unsupported Cargo local packages are rejected. (2.10.5) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.5)
- Cargo workspace packages must declare a name. (2.10.5) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.5)
- Output paths that traverse directories are rejected. (2.10.5) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.5)
- Web UI mode is removed. (2.9.18) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.18)
- Rejects OTEL endpoints that contain userinfo. (2.9.10) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.10)
- Unix parent death watchdogs were removed, changing how Turbo processes respond to the death of their parent process. (2.9.9) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.9)
- Using --filter with filterUsingTasks no longer pulls dependents into the task graph. (2.9.4) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.4)
- The configuration uses object maps rather than arrays. (2.9.0) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.0)
- Platform binaries are published under @turbo/ scoped packages. (2.9.0) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.0)
- The root package.json is no longer treated as a global trigger for --affected. (2.8.21) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.21)
- turbo run no longer uses the daemon; daemon flags and configuration are deprecated. (2.8.11) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.11)
- The daemon is removed from turbo run, changing how the command executes. (2.8.11) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.11)
- Removes the abandoned turbo clone command. (2.8.3) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.3)
- Turbo now validates that the version in a lockfile is a semver string. (2.7.6) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.7.6)

### Security

- Prevents cache restoration from writing to Git metadata and rejects Windows prefixed paths during restore. (2.11.9) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.9)
- Complete on-disk artifacts are signed after local cache writes. (2.11.5) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.5)
- Hardens cache archive symlink restoration and strips special mode bits from restored files. (2.10.0) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.0)
- Validates proxy Host headers and filters proxy environments. (2.10.0) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.0)
- Rejects OpenTelemetry endpoints with userinfo and prevents token injection to spoofed origins. (2.10.0) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.0)
- Cache archive symlink restoration is hardened. (2.9.18) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.18)
- Contains incremental cache outputs to prevent them from escaping their intended location. (2.9.18) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.18)
- Prune patch paths are confined. (2.9.18) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.18)
- Hardens file access by the query server. (2.9.18) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.18)
- Prevents git argument injection through SCM refs. (2.9.18) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.18)
- Prevents self-hosted login URLs from attempting to use Vercel SSO. (2.9.18) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.18)
- Hardens cache archive reads and restore writes against symlink attacks and path races. (2.9.15) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.15)
- OpenTelemetry endpoint validation was hardened. (2.9.15) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.15)
- Turbo: Login callback CSRF/session fixation (2.9.14) — [security advisory](https://github.com/advisories/GHSA-HCF7-66RW-9F5R), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.14)
- Turbo: Unexpected local code execution during Yarn Berry detection (2.9.14) — [security advisory](https://github.com/advisories/GHSA-3QCW-2RHX-2726), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.14)
- Hardened VS Code extension command execution to address command injection. (2.9.14) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.14)
- Hardens daemon IPC endpoints. (2.9.10) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.10)
- Escapes HTML payloads in graphs. (2.9.10) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.10)
- Authenticates the local devtools WebSocket. (2.9.10) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.10)
- Validates the Host header used by the microfrontend proxy. (2.9.10) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.10)
- Prevents OTEL tokens from being injected to spoofed origins. (2.9.10) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.10)
- Validates Host headers used by proxies. (2.9.10) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.10)
- Redacts environment values from task hash debug logs. (2.9.10) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.10)
- Restricts Vercel token reuse to trusted API origins. (2.9.10) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.10)
- Resolves security vulnerabilities in rustls-webpki. (2.8.21) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.21)
- Resolves security vulnerabilities in tar. (2.8.21) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.21)
- This future flag enforces a minimum HMAC key length. (2.8.14) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.15), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.14)
- Sanitizes git command inputs in create-turbo. (2.8.10) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.10)
- Restricts credential file permissions to owner-only. (2.8.10) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.10)
- Path validation in assertSafeGitArgument was enhanced, improving the codemod's handling of Git arguments. (2.8.8) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.8)
- Upgraded h2 to fix CONTINUATION Flood. (2.8.3) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.3)
- A command injection vulnerability in turbo-ignore was fixed. (2.6.3) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.6.3)

### Deprecations

- The --scope flag for turbo prune is deprecated. (2.9.0) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.0)
- The turbo scan command is deprecated. (2.8.21) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.21)
- Deprecates turbo-ignore in favor of `turbo query affected`. (2.8.19) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.19)
- The deprecation notice is tailored for Vercel users. (2.8.19) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.19)
- Graphviz-dependent graph formats are deprecated, and native SVG rendering is added. (2.8.18) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.18)
- The --parallel flag is deprecated. (2.8.18) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.18)
- Deprecates the --scope flag. (2.8.17) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.17)

### New APIs and options

- Setup now allows native package manager configuration. (2.11.9) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.9)
- Adds an uninstall mode; the installer no longer automatically installs the Unix shell hook. (2.11.9) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.9)
- Adds shell-hook support for activating managed tools in bash, zsh, fish, and PowerShell, and exporting managed runtime variables. (2.11.9) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.9)
- Adds a command surface for running commands with the managed environment. (2.11.9) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.9)
- Adds managed setup for resolving, locking, installing, and activating repository toolchains and dependencies, including JavaScript package managers, Go, Rust, Python, and additional tools. (2.11.9) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.9)
- Supports setup without lock writes, records trusted setup roots for no-lock installs, and activates and hashes no-lock selections during plain turbo run. (2.11.9) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.9)
- Adds controls for skipping dependency lifecycle scripts through repository policy and the CLI. (2.11.9) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.9)
- Allows setup downloads to use credential-free mirror overrides, with mirrors configurable in the root setup policy. (2.11.9) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.9)
- Adds root-only setup policy configuration for declaring repository tools and applying setup policy. (2.11.9) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.9)
- An experimental future flag for setup was added. (2.11.8) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.8)
- An experimental setup command surface can create and reconcile local setup locks, resolve and install managed Node.js and package-manager tools, and check, refresh, or force-reinstall locked tools. (2.11.8) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.8)
- Tasks can now have tags, with configuration inheritance. (2.11.6) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.6)
- The CLI can now filter tasks by tags. (2.11.6) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.6)
- Query results now expose task and package tags. (2.11.6) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.6)
- Query can now filter tasks and packages by tags. (2.11.6) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.6)
- Adds standalone installer URLs for curl-pipe-bash installation. (2.11.5) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.5)
- The package adds affected query APIs. (2.11.4) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.4)
- Turborepo adds experimental native Go workspace support, including workspace graphs, task tables, input and output contracts, external resolution fingerprints, toolchain environment fingerprints, change observations, and prune planning. (2.11.0) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.0)
- Framework inference now supports Remix and the NUXT_ENV_* wildcard. (2.11.0) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.0)
- Static repository discovery and safe affected candidates are exposed. (2.11.0) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.0)
- turbo query now exposes compact task planning. (2.11.0) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.0)
- Cargo root packages are supported, allowing Turborepo to include root-level Cargo packages in its workspace handling. (2.10.13) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.13)
- Adds an experimental foundation for Go workspace graphs. (2.10.13) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.13)
- Adds a NUXT_ENV_* wildcard for environment variable inference. (2.10.13) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.13)
- Turborepo now detects package-level turbo.jsonc files. (2.10.13) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.13)
- Adds Remix framework inference. (2.10.13) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.13)
- Workspace.find adds skipPackageGraph, allowing callers to skip package graph construction. (2.10.13) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.13)
- Affectedness calculations can span different toolchains. (2.10.10) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.10)
- Turborepo supports nub.lock files. (2.10.10) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.10)
- Remote base refs can be resolved in GitHub Actions behind a future flag. (2.10.8) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.8)
- Adds selection of runnable task entrypoints. (2.10.7) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.7)
- Turborepo supports repositories containing only Cargo projects. (2.10.6) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.6)
- The Remote Cache can serve as an sccache backend for Cargo tasks, with sccache embedded so no separate installation is needed. (2.10.5) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.5)
- Adds the no-op experimentalCargoWorkspaces future flag. (2.10.4) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.4)
- turbo query exposes resolved experimentalCI task configuration. (2.10.4) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.4)
- Adds nub to the package manager options available in create-turbo. (2.10.3) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.3)
- Users can toggle between the TUI and streamed logs. (2.10.3) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.3)
- Adds a --production flag to turbo prune. (2.10.3) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.3)
- Turborepo recognizes package manager declarations in devEngines.packageManager, including declarations in workspaces. (2.10.1) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.1)
- Adds circular package dependency detection to boundaries. (2.10.0) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.0)
- Adds JIT task input hashing and deferred hashing for task inputs, allowing hashes to be computed later in task execution. (2.10.0) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.0)
- Adds JIT task input hashing. (2.9.17) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.17)
- Supports P-521 ECDSA certificate chains over rustls. (2.9.17) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.17)
- Adds heap allocation profiling for investigating memory use. (2.9.15) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.15)
- Adds incremental task caching. (2.9.4) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.4)
- Adds cacheMaxAge to configure local cache eviction based on age. (2.9.1) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.1)
- Adds cacheMaxSize to configure local cache eviction based on size. (2.9.1) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.1)
- The turbo.json task configuration accepts the experimentalCI key. (2.9.0) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.0)
- Adds experimentalObservability with an OpenTelemetry backend. (2.9.0) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.0)
- FORCE_COLOR and NO_COLOR are included in the built-in passthrough environment variables. (2.9.0) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.0)
- Prune can include globalDependencies behind a future flag. (2.9.0) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.0)
- Experimental structured logging is available with --json and --log-file. (2.9.0) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.0)
- Experimental structured logging is available with --log-file and --json. (2.9.0) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.0)
- The global configuration key can be included in prune behind futureFlags.globalConfiguration. (2.9.0) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.0)
- A global configuration key is added behind futureFlags.globalConfiguration. (2.8.21) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.21)
- Adds a flag for experimental structured logging. (2.8.21) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.21)
- Adds a flag for experimental structured logging. (2.8.21) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.21)
- Adds a NAPI binding that exposes packages from a lockfile. (2.8.21) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.21)
- The command uses query internals, and turbo query ls is added as a shorthand. (2.8.21) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.21)
- This future flag enables task-level resolution for --filter. (2.8.18) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.18)
- Pruning can include `globalDependencies` behind a future flag. (2.8.18) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.18)
- A CLI shorthand is available for the affected query. (2.8.18) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.18)
- Adds a future flag for task-level --affected detection using task inputs. (2.8.17) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.17)
- A new query detects changes at the task level. (2.8.15) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.15)
- Adds telemetry for detecting AI coding agents. (2.8.14) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.15), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.14)
- Adds FORCE_COLOR to the builtin passthrough environment variables. (2.8.14) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.15), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.14)
- This OTel metrics configuration controls cardinality. (2.8.14) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.15), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.14)
- Adds experimental OpenTelemetry observability configuration using object maps rather than arrays. (2.8.13) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.13)
- The turbo.json schema now permits comments and trailing commas. (2.8.2) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.2)
- An agent skill was added to Turbo. (2.7.6) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.7.6)
- Task definitions can include an optional description field. (2.7.5) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.7.5)
- Adds the errorsOnlyShowHash future flag. (2.7.5) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.7.5)
- Adds a docs subcommand for searching documentation. (2.7.5) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.7.5)
- Turbo adds support for Git worktrees. (2.7.4) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.7.4)
- Provides a query for external dependencies. (2.7.1) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.7.1)
- Root-level microfrontends.json configuration is allowed for @vercel/microfrontends. (2.7.0) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.7.0)
- Tasks can use an extends field in turbo.json. (2.7.0) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.7.0)
- Adds microfrontends support, including configuration through microfrontends.json. (2.6.0) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.6.0)
- Adds support for custom microfrontends.json naming. (2.6.0) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.6.0)
- Lets users search the TUI task list by pressing /. (2.6.0) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.6.0)

### Performance

- The dry-run HEAD fallback is parallelized. (2.11.9) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.9)
- Nested .gitignore discovery now skips ignored directories. (2.11.8) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.8)
- Avoids formatting Bun lockfiles during parsing. (2.11.5) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.5)
- Parses character classes without compiling a regex. (2.11.5) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.5)
- Serves a static GraphiQL page. (2.11.5) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.5)
- Reduces TUI allocations by upgrading Ratatui. (2.11.5) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.5)
- Reduces CLI size by upgrading serde_json. (2.11.5) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.5)
- Cache analytics are sent in larger batches. (2.11.4) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.4)
- Dry-run remote cache existence checks are batched. (2.11.4) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.4)
- Reuses the parsed lockfile during lazy graph loading. (2.11.3) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.3)
- Remote-cache transfers now bound memory use instead of retaining whole artifacts. (2.11.0) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.0)
- Memory usage is bounded while task output is streamed. (2.11.0) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.0)
- Turborepo skips unused Package Configuration stat calls, reducing unnecessary filesystem work. (2.10.12) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.12)
- Same-prefix tree-wildcard globs are merged into one directory walk. (2.10.12) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.12)
- Native uv tool tasks are cached. (2.10.11) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.11)
- Pruning walks the repository once, improving the pruning process. (2.10.10) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.10)
- Simple include globs are evaluated without wax compilation, improving their evaluation performance. (2.10.5) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.5)
- Reduces hash memory spikes while running watch. (2.9.8) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.8)
- Boundaries checking is parallelized with Rayon, and DFS traversals are cached. (2.9.5) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.5)
- Increases remote cache upload chunk size from 8KB to 256KB. (2.9.5) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.5)
- Skips irrelevant packages when using package#task syntax, improving task selection performance. (2.8.14) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.15), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.14)
- Streams file contents during hashing and reduces allocations in file hash computation to lower memory usage. (2.8.13) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.13)
- Replaces SWC with oxc for JavaScript and TypeScript parsing. (2.8.13) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.13)
- Optimizes the npm lockfile parser. (2.8.13) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.13)
- Eliminates per-directory stat system calls during untracked file detection. (2.8.13) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.13)
- The hot path is optimized through parallelization and reduced allocations. (2.8.11) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.11)
- Replaces twox-hash with xxhash-rust and optimizes file hashing. (2.8.10) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.10)
- Batches per-package git subprocess calls into a repo-wide index. (2.8.10) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.10)
- Reduces allocations in globwalk. (2.8.10) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.10)
- Optimizes hot-path hash computation by avoiding clones and using unstable sorts. (2.8.10) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.10)
- Replaces O(V³) Floyd-Warshall with O(V+E) DFS in watch mode subgraph creation. (2.8.10) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.10)
- Finding tasks impacted by packages is faster. (2.7.0) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.7.0)
- Makes an ESLint rule approximately 8.6 times faster. (2.6.0) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.6.0)

### Behavior and default changes

- Activates managed tools and resolves native task commands through managed binaries during task execution. (2.11.9) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.9)
- The check mode activates locked Go and checks its readiness; setup plans and checks also report locked dependency actions. (2.11.9) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.9)
- Agent guidance is disabled by default. (2.11.8) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.8)
- Artifact requests are coordinated after rate limiting. (2.11.4) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.4)
- Remote caching is disabled after unrecoverable forbidden responses. (2.11.4) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.4)
- The version is included in JSON output instead of appearing in a separate banner. (2.11.4) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.4)
- Cargo and uv affectedness can now be inferred from static package inputs. (2.11.0) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.0)
- Go workspace packages now receive derived short names. (2.11.0) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.0)
- Native tasks are now shown in task listings. (2.11.0) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.0)
- Package queries and pruning now account for tasks. (2.11.0) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.0)
- Rust builds are more stable on macOS. (2.11.0) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.0)
- Raw output retention is bounded independently of scrollback. (2.11.0) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.0)
- experimentalCI is now included in task hashes, so changes to this setting affect cache keys. (2.10.13) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.13)
- LOCALAPPDATA is now passed through by default. (2.10.13) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.13)
- Next.js framework inference now recognizes NEXT_DEPLOYMENT_ID. (2.10.13) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.13)
- Turborepo uses uv workspace metadata when working with uv projects. (2.10.13) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.13)
- Affected queries now include virtual tasks. (2.10.12) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.12)
- Dry-run JSON output is streamed, improving how the command produces its output. (2.10.12) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.12)
- The EXPERIMENTAL label moves from the ls command to the --output flag. (2.10.10) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.10)
- Dependencies for aggregate native tasks are composed, and aggregate task overrides are respected. (2.10.9) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.9)
- Unresolved Cargo artifacts are no longer cached. (2.10.6) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.6)
- Cargo cache is isolated by host platform, requires current lockfiles for caching, and hashes Cargo build environment inputs. (2.10.5) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.5)
- Cargo run tasks are no longer cached. (2.10.5) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.5)
- Outputs outside package roots are allowed. (2.10.5) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.5)
- Turborepo parses and validates the task command field and can resolve and execute command overrides. (2.10.5) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.5)
- Toolchain tasks appear in the TUI and are not run in silence. (2.10.5) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.5)
- Turbo discovers Cargo crates as packages in a workspace. (2.10.4) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.4)
- Turbo hashes Cargo external dependencies per crate. (2.10.4) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.4)
- turbo prune becomes Cargo-aware. (2.10.4) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.4)
- turbo watch becomes Cargo-aware. (2.10.4) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.4)
- Turborepo accepts Bun lockfile version 2. (2.10.3) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.3)
- TUI selection is automatically copied to the clipboard when the mouse is released. (2.10.3) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.3)
- Tasks can be selected by clicking rows in the TUI task list. (2.10.3) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.3)
- Adds graceful shutdown and preserves exit codes and PTY semantics while keeping the Node wrapper alive during shutdown. (2.10.0) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.0)
- Adds HTTP timeouts for auth requests. (2.9.17) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.17)
- Defers hashes for JIT task dependents. (2.9.17) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.17)
- LSP diagnostics now allow transit nodes. (2.9.12) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.12)
- Graceful shutdown now preserves exit codes and PTY semantics, keeps the Node wrapper alive, and ignores SIGINT in the shim after spawning local turbo. (2.9.7) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.7)
- Vercel authentication moves to standard OAuth/device flows while retaining legacy compatibility and recovering tokens across login flows. (2.9.7) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.7)
- The fast webpki-only HTTP client now loads custom CA certificates. (2.9.6) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.6)
- Boundaries checking now detects circular package dependencies. (2.9.5) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.5)
- Scaffolded README files now use replacement package manager commands. (2.9.5) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.5)
- Telemetry alerts are suppressed when running on Vercel. (2.9.5) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.5)
- Allows --affected and --filter to be combined when selecting tasks. (2.9.4) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.4)
- Nested OTEL configuration is deep-merged across priority sources. (2.9.4) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.4)
- Preflight handling now treats * as a wildcard in Access-Control-Allow-Headers. (2.9.2) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.2)
- The filename is now optional for --profile and --anon-profile. (2.9.0) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.0)
- Pruning supports pnpm per-workspace lockfiles. (2.9.0) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.0)
- Watch mode no longer uses the daemon. (2.9.0) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.0)
- NixOS environment variables are added to the default passthroughs. (2.8.21) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.21)
- Git SHA and dirty hash are sent to the remote cache. (2.8.21) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.21)
- The run summary is shown after the TUI exits. (2.8.21) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.21)
- The query command is promoted from experimental to stable. (2.8.21) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.21)
- Watch is supported in single-package workspaces. (2.8.21) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.21)
- The Node.js shim now supports legacy unscoped binary package names. (2.8.19) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.19)
- Cache metadata now includes the Git SHA and dirty hash. (2.8.18) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.18)
- Uninstalled package managers are now sorted to the bottom of the package manager selection. (2.8.18) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.18)
- Cyclic package graphs are allowed; validation is performed only at the task graph level. (2.8.18) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.18)
- The run prelude displays richer remote cache status. (2.8.18) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.18)
- The Run Summary now surfaces cache SCM metadata. (2.8.18) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.18)
- Workspace copying now supports private GitHub repositories. (2.8.18) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.18)
- TURBO_* environment variables are passed through to child processes in Strict Mode. (2.8.18) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.18)
- Includes the Node.js version in the command output. (2.8.17) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.17)
- Watch uses the task graph. (2.8.17) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.17)
- Treats Bun runtime modules as builtins when checking boundaries. (2.8.14) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.15), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.14)
- Includes version, platform, and CPU count in Chrome trace profiles. (2.8.14) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.15), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.14)
- Adds NO_COLOR to the builtin passthrough environment variables. (2.8.14) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.15), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.14)
- OTel metrics export uses delta temporality. (2.8.14) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.14)
- Telemetry and analytics HTTP flushes are fire-and-forget during shutdown. (2.8.14) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.14)
- Single-package mode also checks devDependencies when inferring the framework. (2.8.13) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.13)
- OTel metrics are sent without requiring the --summarize flag. (2.8.13) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.13)
- The filename is now optional. (2.8.10) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.10)
- Profile trace output now includes LLM-friendly Markdown. (2.8.10) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.10)
- The filename is now optional. (2.8.10) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.10)
- The docs markdown endpoint now includes the Vary: Accept header, affecting how responses are cached based on the Accept header. (2.8.5) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.5)
- Microfrontends JSONC files now support trailing commas. (2.8.1) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.1)
- Turbo version validation now uses the lockfile for all package managers. (2.8.1) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.1)
- Removes the requirement for a root app package to support polyrepos. (2.7.5) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.7.5)
- Wildcards now exclude framework-inferred environment variables. (2.7.2) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.7.2)
- Packages are now allowed to import themselves. (2.7.1) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.7.1)
- Tasks are composed when turbo.json files are composed. (2.7.0) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.7.0)
- Task restarts in watch mode are fine-grained and interruptible. (2.7.0) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.7.0)
- A GitHub Actions environment variable is now included in the default passthrough. (2.6.3) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.6.3)
- A Windows-specific environment variable is added to the default passthroughs. (2.6.2) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.7.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.6.2)
- The selected task highlight uses reverse video to improve accessibility. (2.6.2) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.6.2)
- Padding is added to task names and icons in the TUI. (2.6.2) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.6.2)
- Some Linux variables are added to the default passthrough environment variables. (2.6.1) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.6.1)
- The icon is moved to the left side in the terminal user interface. (2.6.1) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.6.1)

### Tooling

- Installs locked JavaScript dependencies in frozen or immutable modes, including npm, pnpm, Yarn, and Bun. (2.11.9) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.9)
- Supports offline setup from verified cached artifacts and reuses trusted installations and verified downloads. (2.11.9) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.9)
- Adds managed tool provisioning and activation on native Windows x64 for Node, pnpm, Go, Rust, Python, uv, Bun, and Yarn. (2.11.9) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.9)
- Records locked tool selections and artifacts for setup, including Go, Rust, Yarn, and Bun; setup can create or refresh these selections. (2.11.9) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.9)
- The npm package now bundles documentation, making the docs available in the package. (2.11.5) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.5)
- Turborepo discovers Cargo crates as packages, executes Cargo crate tasks, and derives task inputs, outputs, and per-crate external dependency hashes. (2.11.0) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.0)
- Turborepo recognizes nub as a package manager, supports its native lockfiles, and adds it to create-turbo options. (2.11.0) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.0)
- Turborepo now supports pnpm 6 single-package lockfiles. (2.10.13) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.13)
- Turborepo adds support for Python virtual environments. (2.10.13) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.13)
- Turborepo can discover pytest tasks. (2.10.10) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.10)
- Turborepo parses Python quality tool declarations, resolves and synthesizes tasks, and hashes their inputs. (2.10.9) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.9)
- Turborepo adds support for running on Android through Termux. (2.10.8) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.8)
- Turborepo adds a native format task for Cargo projects. (2.10.8) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.8)
- Turborepo can discover uv workspaces, run native uv tasks, hash lockfile closures, watch workspace changes, and prune workspaces. (2.10.8) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.8)
- Turborepo can infer tasks for Cargo workspaces. (2.10.6) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.6)
- Adds verification tasks scoped to individual Cargo crates. (2.10.6) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.6)
- Run summaries report incremental cache reuse. (2.10.5) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.5)
- Turbo executes Cargo crate tasks via Cargo. (2.10.4) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.4)
- Turbo derives input and output globs for Cargo tasks. (2.10.4) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.4)
- Turborepo adds package manager support for aube. (2.10.3) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.3)
- Adds a sandbox helper, with fixes for npm registry access, stale bases, dotfile installation during base refresh, and sandbox startup. (2.9.7) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.7)
- Turbo surfaces an actionable message when remote cache is requested but not linked, helping developers resolve the configuration issue. (2.9.6) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.6)
- The concurrency error message now mentions turbo.json, helping developers identify where to configure concurrency. (2.9.6) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.6)
- The migration codemod now handles package manager catalogs. (2.9.1) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.1)
- The post-hashing setup phase is instrumented for trace visibility. (2.8.14) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.14)
- A new transformer is available in @turbo/codemod to update versioned schema JSON. (2.7.6) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.7.6)
- Turborepo adds support for Yarn 4 catalogs. (2.7.0) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.7.0)
- The microfrontends port command is cross-platform. (2.6.1) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.6.1)
- Introduces a new OAuth flow for the Turborepo CLI with Vercel. (2.6.0) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.6.0)

### Fixes and other changes

- Attributes lockfile changes to the crates whose dependencies changed. (2.11.9) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.9)
- Fixes parsing JSX in JavaScript files. (2.11.9) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.9)
- Preserves task output after tasks exit with a non-zero status. (2.11.9) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.9)
- Activates managed tools when running turbo watch. (2.11.9) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.9)
- The codemod no longer generates duplicate package names. (2.11.8) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.8)
- Task graphs are now populated for affected and filtered listings. (2.11.8) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.8)
- Automatic Turbo downloads now use the repository's package manager. (2.11.8) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.8)
- Cargo lint task hashing now includes Clippy configuration. (2.11.8) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.8)
- Dry runs now report inferred framework environment variables for deferred tasks. (2.11.8) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.8)
- Go discovery remains stable when a repository is reached through a symlink. (2.11.8) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.8)
- Pruned workspaces now support npm patches. (2.11.8) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.8)
- Pruning now preserves unknown pnpm lockfile settings and removes unused catalog snapshots. (2.11.8) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.8)
- Optional npm peers are now excluded from pruned lockfiles. (2.11.8) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.8)
- uv tool configuration is now carried into pruned workspaces. (2.11.8) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.8)
- Vercel OIDC token rotation is ignored in .env.local cache inputs. (2.11.7) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.7)
- SDKROOT is passed through to repository tasks. (2.11.7) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.7)
- Production MFE negative lookaheads now match locally. (2.11.6) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.6)
- Query commands now infer single-package mode. (2.11.6) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.6)
- Standalone turbo is upgraded when the installer is rerun. (2.11.6) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.6)
- Task inputs are normalized consistently for affected detection and hashing. (2.11.6) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.6)
- Prune now keeps Yarn patch resolutions that use npm protocol selectors. (2.11.6) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.6)
- Query metadata is completed for non-script entrypoints. (2.11.6) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.6)
- Adds path context to globwatch errors. (2.11.5) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.5)
- Resolves LSP task references with a JSONC AST. (2.11.5) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.5)
- Reports source paths for package manager errors. (2.11.5) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.5)
- Stabilizes pnpm per-workspace lockfile hashes. (2.11.5) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.5)
- Formats pnpm v5 package names correctly. (2.11.5) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.5)
- Remote artifact requests back off during outages, avoiding repeated requests while the remote service is unavailable. (2.11.5) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.5)
- Validates glob bases in scope selectors. (2.11.5) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.5)
- Restores log streaming in the TUI after the Ratatui upgrade. (2.11.5) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.5)
- Waits for watcher setup to complete. (2.11.5) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.5)
- Affected detection now respects negated global dependencies. (2.11.4) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.4)
- Only secondary go.work files that Go reads for workspace members are rejected. (2.11.4) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.4)
- Concurrent remote-cache token recovery is shared. (2.11.4) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.4)
- Normalizes input globs used to determine affected tasks. (2.11.3) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.3)
- Root internal dependency changes are treated as global changes when determining affected tasks. (2.11.3) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.3)
- Gitignored files are ignored when checking boundaries. (2.11.3) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.3)
- Avoids microfrontend polyrepo warnings. (2.11.3) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.3)
- Stops tasks when their parent exits. (2.11.3) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.3)
- Stabilizes the order of boundary tags in prune output. (2.11.3) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.3)
- Repeatable CLI flags are restored, so developers can pass the same flag multiple times again. (2.11.2) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.2)
- esbuild builds are now allowed for pnpm generators. (2.11.1) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.1)
- Invalid affected-task globs are shown to the user. (2.11.0) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.0)
- Affected-task queries include virtual tasks and compose correctly with package filters. (2.11.0) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.0)
- Pruning preserves Bun overrides, trusted dependencies, workspace bins, and git integrity, and accepts lockfile version 3. (2.11.0) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.0)
- Manual hashing applies nested parent gitignore patterns and respects gitignore rules even without Git metadata. (2.11.0) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.0)
- Affectedness from uv lockfile changes is scoped appropriately. (2.11.0) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.0)
- Leading flags are again accepted for implicit run commands. (2.10.13) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.13)
- Berry lockfile identifiers are parsed with hand-written parsers instead of regex captures. (2.10.12) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.12)
- Berry lockfile resolution overrides are indexed by dependency name. (2.10.12) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.12)
- Turborepo now respects gitignore rules even when git metadata is absent. (2.10.11) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.11)
- Turborepo now tolerates transient input files. (2.10.11) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.11)
- Manual hashing now applies nested parent gitignore patterns. (2.10.10) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.10)
- Bun pruning preserves overrides objects, trustedDependencies, workspace bins, and git integrity, and accepts lockfileVersion 3. (2.10.10) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.10)
- Affected tasks are now composed with package filters. (2.10.9) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.9)
- Prunes Bun wildcard workspace development dependencies. (2.10.9) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.9)
- Invalidates only when Git ignore sources change. (2.10.9) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.9)
- File watching falls back to polling on macOS. (2.10.8) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.8)
- The TUI task list can now be scrolled with the mouse wheel. (2.10.8) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.8)
- Supports multiple file watch roots on macOS. (2.10.7) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.7)
- Preserves pnpm root dependencies during pruning. (2.10.7) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.7)
- Preserves pnpm aliased dependencies during pruning. (2.10.7) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.7)
- JIT inputs are matched for affected tasks. (2.10.6) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.6)
- Dynamic imports are checked in boundaries. (2.10.6) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.6)
- Cargo profile outputs are resolved exactly. (2.10.6) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.6)
- Cargo target output layouts are resolved. (2.10.6) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.6)
- Git failures are surfaced by create-turbo. (2.10.6) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.6)
- Pruning preserves pnpm node@runtime: lockfile entries. (2.10.6) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.6)
- Shutdown signals are retained when force exiting. (2.10.6) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.6)
- Colors are preserved in TUI output. (2.10.6) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.6)
- Pruning a Bun production workspace excludes development dependencies. (2.10.6) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.6)
- The turbo watch behavior is refactored. (2.10.6) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.6)
- Pruning preserves the Yarn Babel extension. (2.10.6) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.6)
- Project Yarn package extensions are preserved. (2.10.6) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.6)
- Pruning removes extraneous entries from bun.lock. (2.10.5) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.5)
- npm prune rehoisting is made deterministic and complete. (2.10.5) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.5)
- Pruning preserves pnpm patches that use version range keys. (2.10.5) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.5)
- Fixes make the compile cache actually cache, avoid ambient CARGO_INCREMENTAL suppressing cache injection, and prevent storage failures from failing builds. (2.10.5) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.5)
- Task inputs preserve watch rerun semantics. (2.10.5) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.5)
- Pruning preserves Yarn package extension ranges. (2.10.5) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.5)
- Relative imports resolving into node_modules are no longer flagged. (2.10.4) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.4)
- Ancestor-scoped Bun dependencies remain resolvable after prune renames. (2.10.4) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.4)
- Input exclusion globs are now applied during the filesystem walk. (2.10.4) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.4)
- Resolves Bun scoped package dependencies that share a name with a dependency. (2.10.3) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.3)
- The version field accepts semver ranges. (2.10.3) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.11.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.9), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.3)
- Reports malformed JSON parse errors instead of panicking. (2.10.3) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.3)
- Skips node_modules in boundaries checks. (2.10.3) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.3)
- Adds support for nub native lockfiles. (2.10.3) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.3)
- Normalizes the displayed package manager version. (2.10.3) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.3)
- Normalizes package manager versions. (2.10.3) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.3)
- Uses the singular form “workspace” in package resolution errors. (2.10.3) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.3)
- Improves error messaging when a platform binary is missing. (2.10.3) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.3)
- Adds recovery guidance for token exchange errors. (2.10.3) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.3)
- Hardens terminal restoration during TUI shutdown. (2.10.3) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.3)
- Recovers from slow initial hashing instead of timing out. (2.10.3) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.3)
- Avoids following nested symlinked cache outputs. (2.10.2) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.2)
- Preserves three-level nested Bun lockfile entries during pruning. (2.10.2) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.2)
- Turborepo supports Corepack packageManager integrity hashes, fixing package manager detection for configurations that include them. (2.10.1) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.1)
- XDG_DATA_* environment variables are included in the environment variables passed through by Turborepo. (2.10.1) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.1)
- Re-authenticates when a stored token loses access to its linked team. (2.10.0) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.0)
- Adds support for pnpm v11 multi-document lockfiles. (2.10.0) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.0)
- Fixes lockfile and workspace pruning across Bun, npm, pnpm, Yarn, and package.json workspaces, including preservation of install strategies and per-workspace lockfiles. (2.10.0) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.0)
- Respects the root gitignore during pruning and preserves package-manager dependency, patch, and override information in pruned workspaces. (2.10.0) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.0)
- Affected queries now respect SCM environment variables and include packages changed through lockfiles. (2.10.0) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.0)
- Keeps non-PTY stdin alive for persistent tasks and uses a PTY for interactive Windows tasks. (2.10.0) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.0)
- The watch loop restarts interruptible persistent tasks after file changes and avoids rerunning non-cacheable watch dependencies. (2.10.0) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.0)
- Special mode bits are stripped during cache restore. (2.9.18) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.18)
- The daemon path hash is normalized on Windows. (2.9.18) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.18)
- Bypasses the npm command shim on Windows. (2.9.17) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.17)
- Ignores peer dependencies when constructing the package graph. (2.9.17) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.17)
- Keeps non-PTY stdin alive for persistent tasks. (2.9.17) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.17)
- Preserves pnpm override-resolved dependencies during pruning. (2.9.17) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.17)
- Keeps PTY stdin open for tasks. (2.9.17) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.17)
- Detects affected root tasks in query results. (2.9.17) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.17)
- Waits for graceful shutdown on Windows. (2.9.17) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.17)
- Sends Ctrl+C to Windows PTY tasks. (2.9.17) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.17)
- Preserves nested dependency versions for Bun. (2.9.16) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.17), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.16)
- No longer deletes an existing `.git` directory when used. (2.9.16) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.16)
- Avoids hanging during PTY shutdown. (2.9.16) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.16)
- Packages changed in the lockfile are now included when determining affected tasks. (2.9.15) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.15)
- Berry lockfile errors are returned instead of causing a panic. (2.9.15) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.15)
- Bun alias child packages and nested workspace dependency versions are preserved. (2.9.15) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.15)
- Accepts `experimentalCI` as an object configuration. (2.9.15) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.15)
- Pruning now correctly handles package.json workspaces. (2.9.15) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.15)
- pnpm injected peer package entries are now preserved. (2.9.15) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.15)
- Turborepo waits for process trees before task completion and prevents Windows process drain hangs. (2.9.15) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.15)
- Pruning now respects the root gitignore. (2.9.15) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.15)
- Restores task completion semantics. (2.9.15) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.15)
- The language server now prefers an installed Turbo. (2.9.11) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.11)
- LSP diagnostics now allow $TURBO_EXTENDS$. (2.9.11) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.11)
- The VS Code extension now resolves relative turbo paths correctly. (2.9.11) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.11)
- Pruning now preserves nested Bun dependencies. (2.9.11) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.11)
- The extension starts the daemon itself, reducing setup friction for developers using the extension. (2.9.11) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.11)
- The extension now supports turbo.jsonc configuration files. (2.9.11) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.11)
- The extension now supports shimmed VS Code LSP probes. (2.9.11) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.11)
- Enforces filesystem boundaries for the cache. (2.9.10) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.10)
- Handles errors from clipboard exec operations. (2.9.10) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.10)
- Preserves FSEvents mount points for device-relative paths. (2.9.10) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.10)
- Retries requests that fail with HTTP status errors. (2.9.10) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.10)
- Filters environments passed through the microfrontend proxy. (2.9.10) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.10)
- Uses a random temporary path for repository downloads. (2.9.10) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.10)
- Respects SCM environment variables when determining affected packages. (2.9.10) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.10)
- Resolves TypeScript `.js` extension imports to `.ts` files in boundaries. (2.9.10) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.10)
- Keeps workspace configuration discovery inside the repository root. (2.9.10) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.10)
- Dry-run conversion now preserves lockfiles. (2.9.9) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.9)
- Repo index prefixes are scoped to the Git root. (2.9.9) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.9)
- Preserves concrete dependency precedence. (2.9.8) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.8)
- Keeps shell connections stable. (2.9.8) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.8)
- Creates bin stubs for Docker prune output. (2.9.8) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.8)
- Preserves Bun prune lockfile validity. (2.9.8) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.8)
- Resolves affected packages when using Yarn catalogs. (2.9.8) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.8)
- Filter selectors now support two-dot Git ranges. (2.9.7) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.7)
- Turbo supports pnpm v11 multi-document and flat patch lockfiles. (2.9.7) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.7)
- Prune no longer overmatches gitignore entries. (2.9.7) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.7)
- Non-cacheable watch dependencies are no longer rerun. (2.9.7) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.7)
- Bun workspace lockfile pruning no longer produces invalid output. (2.9.4) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.4)
- Engine concurrency is validated after task-level filtering. (2.9.4) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.4)
- Microfrontend proxy tasks are retained when using filterUsingTasks. (2.9.4) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.4)
- Migration codemods update the schema URL to a versioned format and preserve prerelease information. (2.9.4) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.4)
- Signature key length is enforced only for keys that exist. (2.9.4) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.4)
- Task input hashing now respects dirty .gitignore patterns. (2.9.4) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.4)
- Codemod transforms now support turbo.jsonc configuration files. (2.9.4) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.10.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.4)
- pnpm pruning now preserves per-workspace lockfiles. (2.9.3) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.3)
- turbo prune now preserves npm's shallow install strategy during lockfile pruning. (2.9.2) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.2)
- turbo prune now backfills missing pnpm workspace importer entries. (2.9.2) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.2)
- Engine graph pruning for affected paths now includes transitive dependencies when using the Task Graph. (2.9.2) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.2)
- Interruptible persistent tasks restart on file changes instead of leaving the watch loop blocked. (2.9.2) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.2)
- Keeps stdin alive for persistent tasks in stream mode. (2.9.0) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.0)
- Pruning preserves file: and link: protocol entries in Bun lockfiles. (2.9.0) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.0)
- Pruning retains injected workspace package entries in pnpm lockfiles. (2.9.0) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.0)
- Fixes incorrect git root resolution in linked worktrees by resolving to the worktree root. (2.9.0) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.0)
- Dry-run cache status now matches normal runs by checking caching guards. (2.8.21) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.21)
- Unix domain sockets and other special files are skipped during file hashing. (2.8.21) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.21)
- The eslint-plugin-turbo task-definition iteration now guards against missing tasks or pipeline. (2.8.21) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.21)
- Fixes missing dependencies after npm lockfile parsing. (2.8.21) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.21)
- Lockfile parsing now preserves dedupePeers and unknown pnpm settings. (2.8.21) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.21)
- Avoids setsid() during PTY spawn to prevent macOS Gatekeeper CPU spikes. (2.8.21) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.21)
- Generator name conflicts across workspaces are resolved. (2.8.21) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.21)
- Fixes a hang with mixed interruptible persistent tasks. (2.8.21) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.21)
- Prevents a panic with persistent tasks. (2.8.21) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.21)
- Prevents stdin from being dropped for persistent tasks in stream mode. (2.8.20) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.20)
- Local binary resolution now detects scoped @turbo/{platform} packages. (2.8.19) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.19)
- The codemod no longer silently renames existing packages. (2.8.18) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.18)
- Affected task query results no longer include phantom tasks. (2.8.18) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.18)
- Affected task detection now handles `$TURBO_ROOT$` inputs when this option is used. (2.8.18) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.18)
- Pruning with pnpm patches now preserves package.json key order. (2.8.18) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.18)
- Task arguments are now always included in filtered packages. (2.8.18) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.18)
- Affected detection no longer matches unrelated root files. (2.8.18) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.18)
- Inlining PlopTypes fixes implicit any for consumers. (2.8.18) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.18)
- Pruning preserves all Bun lockfile overrides. (2.8.18) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.18)
- Validates task names when --affected produces an empty package scope. (2.8.17) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.17)
- Aligns query affectedTasks behavior with run --affected for $TURBO_ROOT$ inputs. (2.8.17) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.17)
- Fixes root-level tasks not executing when using //# CLI syntax. (2.8.17) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.17)
- Improves the connectivity check and offline error messages, and removes a redundant online check. (2.8.17) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.17)
- Resolves package-name-shaped path aliases in tsconfig paths. (2.8.17) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.17)
- Initializes the TUI terminal even when all tasks hit cache. (2.8.17) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.17)
- Nested Bun lockfile entries are promoted when a hoisted version is pruned. (2.8.16) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.16)
- The clean-globs codemod now guards against a missing pipeline key. (2.8.16) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.16)
- The errors-only setting is now honored for non-cached tasks. (2.8.16) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.16)
- Resolves pnpm catalog: specifiers to workspace dependencies in the task graph. (2.8.15) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.15)
- Waits for dependsOn on the first run and no longer uses the daemon in watch mode. (2.8.15) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.15)
- Ensures the noUpdateNotifier setting in turbo.json is respected. (2.8.14) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.15), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.14)
- Preserves deeply nested workspace dependencies during npm lockfile pruning. (2.8.14) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.15), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.14)
- On its first run, turbo watch waits for dependsOn tasks to complete. (2.8.14) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.14)
- Corrects dependency iteration order so dependencies takes precedence over devDependencies. (2.8.13) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.13)
- Filters orphaned Yarn packageExtensions entries during lockfile pruning. (2.8.13) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.13)
- Merges with into the root configuration instead of replacing it. (2.8.13) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.13)
- The command no longer hangs when daemon file watching fails. (2.8.13) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.13)
- Fixes pruning for pnpm per-workspace lockfiles, Berry patch overrides, injected pnpm workspace packages, and file: or link: protocol entries in Yarn v1 and Bun lockfiles. (2.8.13) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.13)
- Excludes peer dependencies from workspace external dependency resolution and treats npm: alias dependencies as external rather than workspace references. (2.8.13) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.13)
- turbo prune now resolves correct nested Bun lockfile versions. (2.8.12) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.2), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.12)
- peerDependencies no longer overwrite concrete dependency specifiers. (2.8.12) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.12)
- Restores the daemon client in RunCache for turbo watch. (2.8.11) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.11)
- Moves node-plop to dependencies so PlopTypes resolves for consumers. (2.8.10) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.10)
- Avoided a panic in sandboxed environments by removing the system-configuration dependency. (2.8.8) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.8)
- Orphaned Windows child processes are cleaned up on shutdown. (2.8.8) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.8)
- Fixed a hang in the Windows TUI caused by portable-pty 0.9.0 ConPTY changes. (2.8.8) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.8)
- Keeps stdin alive for persistent tasks in stream mode. (2.8.7) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.7)
- Normalizes bare LF to CRLF to prevent garbled logs. (2.8.7) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.7)
- turbo boundaries now handles subpath package imports. (2.8.7) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.9.0), [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.7)
- Emits a space for empty vt100 cells to fix TUI repainting when switching tasks. (2.8.6) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.8.6)
- A directory filter no longer causes Turbo to inject a package name. (2.7.6) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.7.6)
- Enables mouse capture for all terminals to restore scroll functionality. (2.7.5) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.7.5)
- Improves behavior for tasks killed due to out-of-memory conditions. (2.7.5) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.7.5)
- Makes package inference deterministic for subdirectory filters. (2.7.5) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.7.5)
- Using the bun package manager no longer causes create-turbo to hang. (2.7.4) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.7.4)
- File watching now works for non-root volumes on macOS. (2.7.4) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.7.4)
- Mouse mode is properly disabled when the TUI exits or panics. (2.7.4) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.7.4)
- The pnpm turbo script no longer enters an infinite loop. (2.7.4) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.7.4)
- Text selection works correctly when the TUI sidebar is hidden. (2.7.4) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.7.4)
- Workspace globs with a leading ./ are normalized. (2.7.4) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.7.4)
- Bun support now includes GitHub and Git packages. (2.7.3) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.7.3)
- The TUI is now shown when using --output-logs=errors-only or --output-logs=none. (2.7.3) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.7.3)
- Loader UI states in create-turbo were fixed. (2.7.2) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.7.2)
- Transit nodes in Devtools were fixed. (2.7.2) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.7.2)
- The TUI no longer flashes on a >>> FULL TURBO. (2.7.2) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.7.2)
- Fixes overly aggressive path checking during microfrontends loading. (2.7.1) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.7.1)
- Correctly validates the workspace root as a package. (2.7.1) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.7.1)
- Exit codes are preserved in notifyUpdate functions. (2.7.0) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.7.0)
- Quoting in turbo-ignore commands is fixed. (2.7.0) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.7.0)
- A crash during column wrapping in the vt100 TUI was prevented. (2.6.3) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.6.3)
- Relative paths are resolved before validation, so valid relative values are handled correctly. (2.6.2) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.6.2)
- Git commands use the `-z` option to handle Unicode file paths. (2.6.2) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.6.2)
- The `execa` call uses the `shell` option on Windows. (2.6.2) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.6.2)
- Boundary analysis now parses import attributes. (2.6.1) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.6.1)
- Graceful shutdown behavior is more deterministic. (2.6.1) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.6.1)
- Bun lockfile pruning better matches the real Bun lockfile format, handles patchedDependencies, includes bunfig.toml among copied files, and improves version resolution. (2.6.1) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.6.1)
- Adds Linux environment variables to global passthroughs. (2.6.0) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.6.0)
- Exporting a graph to a .dot file no longer requires Graphviz to be installed. (2.6.0) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.6.0)
- Fixes the binary call used by the microfrontends proxy on Windows. (2.6.0) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.6.0)
- Fixes recursive transitive closure analysis in the npm lockfile parser. (2.6.0) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.6.0)
- Fixes handling of injectWorkspacePackages when pruning with pnpm. (2.6.0) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.6.0)
- Fixes a symlinking bug on Windows. (2.6.0) — [release notes](https://github.com/vercel/turborepo/releases/tag/v2.6.0)
