v2.10.0
📦 turborepoView on GitHub →
✨ 11 features🐛 31 fixes🔧 8 symbols
Summary
This release introduces incremental task caching, improved graceful shutdown, and new configuration options for local cache eviction (`cacheMaxAge`, `cacheMaxSize`). It also includes numerous fixes related to lockfile pruning, filtering logic, and Vercel authentication flows.
Migration Steps
- If you use the codemod, note that it now handles package manager catalogs.
- If you rely on local cache eviction, you may need to configure `cacheMaxAge` and `cacheMaxSize`.
- If you use Vercel authentication, note the move to standard OAuth/device flows.
✨ New Features
- Replaced package manager commands in scaffolded README files within create-turbo.
- Added support for package manager catalogs in the migration codemod (@turbo/codemod).
- Added `cacheMaxAge` and `cacheMaxSize` options for local cache eviction in @turbo/repository.
- Added Next.js + Elysia full-stack starter template to examples.
- Added incremental task caching.
- Allowed `--affected` and `--filter` flags to be combined.
- Added circular package dependency detection to boundaries.
- Increased remote cache upload chunk size from 8KB to 256KB.
- Parallelized `boundaries` checking with Rayon and cache DFS traversals.
- Added graceful shutdown support.
- Moved Vercel authentication to standard OAuth/device flows.
🐛 Bug Fixes
- Ensured `$schema` URL is always updated to a versioned format during migration.
- Added support for `turbo.jsonc` in codemod transforms.
- Preserved prerelease info in schema URL during codemod migration.
- Suppressed telemetry alert when running on Vercel.
- Added missing `@types/node` to `with-svelte` example apps.
- Resolved correct nested bun lockfile versions during prune.
- Reverted change to avoid `setsid()` in PTY spawn.
- Unblocked `watch` loop so interruptible persistent tasks restart on file changes.
- Treated `*` as wildcard in preflight Access-Control-Allow-Headers.
- Backfilled missing pnpm workspace importer entries during prune.
- Included transitive dependencies in engine graph pruning for affected paths using Task Graph.
- Updated AI-generated response disclaimer to include human attribution.
- Preserved shallow install strategy during npm lockfile pruning.
- Preserved per-workspace lockfiles during pnpm pruning.
- Prevented `filterUsingTasks` `--filter` from pulling dependents into Task Graph.
- Only enforced signature key length for keys that exist.
- Validated engine concurrency after task-level filtering.
- Retained microfrontend proxy tasks when using `filterUsingTasks`.
- Fixed Bun workspace lockfile pruning producing invalid output.
- Respected dirty `.gitignore` patterns during task input hashing.
- Added actionable message when remote cache is requested but not linked.
- Loaded custom CA certificates in fast webpki-only HTTP client.
- Aligned Markdown docs routing with docs/md endpoints.
- Supported two-dot git ranges in filter selectors.
- Ignored `SIGINT` in shim after spawning local `turbo`.
- Supported pnpm v11 multi-document lockfiles.
- Preserved graceful shutdown exit code.
- Kept Node wrapper alive during graceful shutdown.
- Preserved PTY graceful shutdown semantics.
- Preserved legacy Vercel auth compatibility.
- Recovered Vercel auth tokens across login flows.