release(turborepo): 2.10.3 (#13222)
## Release v2.10.3
> [!CAUTION]
> Versioned docs aliasing FAILED. [View
logs](https://github.com/vercel/turborepo/actions/runs/28672736782)
### Changes
- feat: Add nub to create-turbo options (#13173) (`82b1cf1`)
- release(turborepo): 2.10.2 (#13174) (`ec30b18`)
- release(turborepo): 2.10.3-canary.1 (#13176) (`47e2b22`)
- fix: Normalize package manager versions (#13177) (`658f607`)
- fix: Use singular workspace in package resolution error (#13178)
(`d199c53`)
- fix: Support nub native lockfiles (#13179) (`50546e6`)
- perf(build): Enable thin LTO + codegen-units=1 for release builds
(#13160) (`628aea9`)
- release(turborepo): 2.10.3-canary.2 (#13181) (`16aed08`)
- feat: Add aube package manager support (#13183) (`0f78006`)
- release(turborepo): 2.10.3-canary.3 (#13184) (`fec7cee`)
- fix: Normalize package manager version output (#13185) (`f469ed8`)
- release(turborepo): 2.10.3-canary.4 (#13186) (`406fe59`)
- refactor: Richer internal dependency data (#13188) (`909c696`)
- fix: Honor package manager version ranges (`136273e`)
- fix: Skip node_modules in boundaries checks (#13191) (`93741a0`)
- fix: Add token exchange recovery guidance (#13192) (`bef588b`)
- feat: Add --production flag to turbo prune (#13190) (`3777442`)
- release(turborepo): 2.10.3-canary.5 (#13193) (`ca20ca2`)
- feat: Accept Bun lockfile version 2 (#13119) (`69e2085`)
- fix: Handle task executor join errors as internal errors (#13148)
(`c4017e9`)
- fix: Tweaks for nub support (#13187) (`ca029ee`)
- release(turborepo): 2.10.3-canary.6 (#13194) (`b79f767`)
- release(turborepo): 2.10.3-canary.7 (#13195) (`b426736`)
- chore: Upgrade TypeScript to 7.0.1-rc (#13144) (`cf07baa`)
- docs: Add filtered installs to Vercel guide (#13196) (`7e70b52`)
- examples: add with-mcp-servers (#12997) (`8eb4d9d`)
- fix: Report malformed JSON parse errors instead of panicking (#13198)
(`a69df7d`)
- fix: Improve error messaging when platform binary is missing (#13199)
(`8e145f0`)
- release(turborepo): 2.10.3-canary.8 (#13200) (`5987ed1`)
- fix(watch): recover from slow initial hash instead of timing out
(#13159) (`05e26cb`)
- chore: Update vitest example to vitest 4 and use native test merging
(#13202) (`e2b61dc`)
- feat: Toggle between the TUI and streamed logs (#13203) (`1325455`)
- fix: Resolve Bun scoped package deps that share a name with a
dependency (#13207) (`e4773ab`)
- feat: Select tasks by clicking rows in the TUI task list (#13206)
(`c568f67`)
- perf: Avoid deep-cloning dependency maps in lockfile closure cache
(#13209) (`abd84cf`)
- perf: Cache root internal dependencies in package graph (#13211)
(`7ec8c6d`)
- feat: Automatically copy TUI selection to clipboard on mouse release
(#13208) (`61d6013`)
- perf: Cache env wildcard matches across tasks during hashing (#13210)
(`148b1dd`)
- perf: Replace per-package graph traversals in scope filtering (#13212)
(`28d1871`)
- perf: Derive dirty hash from repo index (#13213) (`b521d32`)
- fix: Include untracked symlinks in repo-index dirty hash (#13218)
(`c3c91ab`)
- refactor: Use upstream libghostty-vt crates instead of vendored
bindings (#13205) (`c2115dc`)
- fix: Remove devtools feature flag (#13219) (`65efe27`)
- fix: Harden TUI terminal restore during shutdown (#13220) (`dccab93`)
- fix: Correct gitignore precedence in untracked walk and memoize
matcher chains (#13221) (`bc32fcc`)
---------
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>