v2.8.11

vercel/turborepov2.8.11Feb 25, 2026by turbo-orchestrator[bot]

AI Summary

This is a major performance-focused release featuring extensive optimizations across the codebase, including replacement of git subprocesses with native Rust libraries (libgit2 and gix-index), parallelization of multiple operations, and removal of the daemon from turbo run with deprecation of daemon flags and config.

Key Highlights

  • Major performance improvements: replaced git subprocesses with libgit2 and gix-index for faster file hashing
  • Removed daemon from `turbo run`, deprecated daemon flags and config
  • Multiple parallelization improvements across workspace discovery, lockfile parsing, package.json loading, and task hash computation
  • Reduced filesystem syscalls and CPU overhead in hot path operations
  • Optimized dependency resolution cache sharing across workspaces

Breaking Changes

  • Daemon removed from `turbo run` - daemon flags and config are now deprecated. Users relying on the daemon will need to update their workflows.

New Features

  • Remove daemon from `turbo run`, deprecate daemon flags and config

Full Release Notes

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

## What's Changed
### Docs
* chore: Migrate to Ultracite by @haydenbleasel in https://github.com/vercel/turborepo/pull/11948
### @turbo/repository
* perf: Defer TLS initialization to a background thread by @anthonyshew in https://github.com/vercel/turborepo/pull/11967
* fix: Add repository field to @turbo/repository package.json by @anthonyshew in https://github.com/vercel/turborepo/pull/11982
* release(library): 0.0.1-canary.19 by @github-actions[bot] in https://github.com/vercel/turborepo/pull/11983
### Changelog
* fix: Get all pnpm lockfile pruning tests passing by @anthonyshew in https://github.com/vercel/turborepo/pull/11897
* perf: Optimize pnpm lockfile transitive closure resolution by @anthonyshew in https://github.com/vercel/turborepo/pull/11898
* fix: Resolve npm packages in @turbo/gen compiled binary by @anthonyshew in https://github.com/vercel/turborepo/pull/11900
* perf: Deduplicate file hashing and parallelize globwalks by @anthonyshew in https://github.com/vercel/turborepo/pull/11902
* perf: Improve transitive dependency resolution cache sharing across workspaces by @anthonyshew in https://github.com/vercel/turborepo/pull/11903
* perf: Reduce filesystem syscalls in globwalk, SCM hashing, and task scheduling by @anthonyshew in https://github.com/vercel/turborepo/pull/11907
* feat: Remove daemon from `turbo run`, deprecate daemon flags and config by @anthonyshew in https://github.com/vercel/turborepo/pull/11910
* test: Replace help text integration tests with insta snapshots by @anthonyshew in https://github.com/vercel/turborepo/pull/11911
* perf: Reduce allocations in SCM hashing, glob preprocessing, and cache lookups by @anthonyshew in https://github.com/vercel/turborepo/pull/11916
* perf: Parallelize package.json loading and reduce builder allocations by @anthonyshew in https://github.com/vercel/turborepo/pull/11918
* perf: Cache compiled env wildcard regexes for builtin pass-through patterns by @anthonyshew in https://github.com/vercel/turborepo/pull/11920
* perf: Replace O(N) workspace path lookup with HashMap index in DependencySplitter by @anthonyshew in https://github.com/vercel/turborepo/pull/11922
* perf: Parallelize lockfile parsing with workspace discovery by @anthonyshew in https://github.com/vercel/turborepo/pull/11927
* perf: Optimize `turbo run` hotpath with parallelization and reduced allocations by @anthonyshew in https://github.com/vercel/turborepo/pull/11928
* perf: Share HTTP client and improve profile instrumentation by @anthonyshew in https://github.com/vercel/turborepo/pull/11929
* perf: Share HTTP client and improve profile instrumentation by @anthonyshew in https://github.com/vercel/turborepo/pull/11932
* perf: Reduce git subprocess calls on startup by @anthonyshew in https://github.com/vercel/turborepo/pull/11934
* chore: Upgrade zstd 0.12.3 to 0.13.3 by @anthonyshew in https://github.com/vercel/turborepo/pull/11936
* perf: Replace git subprocesses with `libgit2` and skip unnecessary summary work by @anthonyshew in https://github.com/vercel/turborepo/pull/11938
* perf: Reduce per-package hashing overhead and eliminate SCM subprocesses by @anthonyshew in https://github.com/vercel/turborepo/pull/11942
* perf: Reduce CPU overhead in `turbo run` hot path by @anthonyshew in https://github.com/vercel/turborepo/pull/11947
* perf: Replace `libgit2` git status with `gix-index` for faster file hashing by @anthonyshew in https://github.com/vercel/turborepo/pull/11950
* perf: Resolve literal input paths via stat instead of glob walk by @anthonyshew in https://github.com/vercel/turborepo/pull/11955
* perf: Optimize engine builder, task visitor, and untracked file discovery by @anthonyshew in https://github.com/vercel/turborepo/pull/11956
* perf: Parallelize `turbo run` pre-execution hot path by @anthonyshew in https://github.com/vercel/turborepo/pull/11958
* chore: Add tracing spans to uninstrumented hot path functions by @anthonyshew in https://github.com/vercel/turborepo/pull/11959
* perf: Use `Arc<str>` for task dependency hashes to avoid heap clones by @anthonyshew in https://github.com/vercel/turborepo/pull/11962
* perf: Add more tracing spans into startup path by @anthonyshew in https://github.com/vercel/turborepo/pull/11965
* perf: Parallelize task hash computation across topological waves by @anthonyshew in https://github.com/vercel/turborepo/pull/11969
* perf: Send engine callback before tracker bookkeeping and add tracing spans by @anthonyshew in https://github.com/vercel/turborepo/pull/11970
* fix: Resolve git_root to worktree root in linked worktrees by @anthonyshew in https://github.com/vercel/turborepo/pull/11974
* perf: Fast path for shallow wildcard glob patterns in workspace discovery by @anthonyshew in https://github.com/vercel/turborepo/pull/11972
* chore: Move git hooks from pre-commit to pre-push and match CI lint checks by @anthonyshew in https://github.com/vercel/turborepo/pull/11977
* chore: Update AGENTS.md by @anthonyshew in https://github.com/vercel/turborepo/pull/11978
* perf: Replace heap-allocated String with stack-allocated OidHash for git OIDs by @anthonyshew in https://github.com/vercel/turborepo/pull/11984
* perf: Eliminate redundant syscalls in FSCache fetch and exists by @anthonyshew in https://github.com/vercel/turborepo/pull/11985
* perf: Reduce per-task allocations in visitor dispatch loop by @anthonyshew in https://github.com/vercel/turborepo/pull/11986
* docs: Fix same-page anchor links that don't scroll to target by @anthonyshew in https://github.com/vercel/turborepo/pull/11989
* docs: Mention inputs key in package hash inputs table by @anthonyshew in https://github.com/vercel/turborepo/pull/11990
* fix(docs): update sitemap.md to single-line pipe-delimited format by @molebox in https://github.com/vercel/turborepo/pull/11976
* fix: Disable husky pre-push hook during release staging by @anthonyshew in https://github.com/vercel/turborepo/pull/11991
* fix: Use versioned schema URLs in Turborepo skill files by @anthonyshew in https://github.com/vercel/turborepo/pull/11994
* fix: Restore daemon client in `RunCache` for `turbo watch` by @anthonyshew in https://github.com/vercel/turborepo/pull/11995


**Full Changelog**: https://github.com/vercel/turborepo/compare/v2.8.10...v2.8.11