v2.10.0

vercel/turborepov2.10.0Jun 24, 2026by github-actions[bot]

AI Summary

This major version introduces incremental task caching, improved Vercel auth flows, and experimental Cargo workspace support. It also allows combining `--affected` and `--filter` flags.

Key Highlights

  • Incremental task caching
  • Vercel auth migration to standard OAuth/device flows
  • Experimental Cargo workspace support
  • Combine `--affected` and `--filter` flags
  • Graceful shutdown improvements

New Features

  • Add incremental task caching
  • Allow `--affected` and `--filter` to be combined
  • Move Vercel auth to standard OAuth/device flows
  • Graceful shutdown
  • Support pnpm v11 multi-document lockfiles

Full Release Notes

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

## What's Changed
### create-turbo
* feat: Replace package manager commands in scaffolded README files by @DependerKumarSoni in https://github.com/vercel/turborepo/pull/6747
* chore: Update dependencies found in audits by @anthonyshew in https://github.com/vercel/turborepo/pull/12586
### @turbo/codemod
* feat: Handle package manager catalogs in migration codemod by @anthonyshew in https://github.com/vercel/turborepo/pull/12496
* fix: Always update $schema URL to versioned format during migration by @anthonyshew in https://github.com/vercel/turborepo/pull/12529
* fix: Support `turbo.jsonc` in codemod transforms by @anthonyshew in https://github.com/vercel/turborepo/pull/12532
* fix: Preserve prerelease info in schema URL during codemod migration by @anthonyshew in https://github.com/vercel/turborepo/pull/12542
### eslint
* chore: Upgrade dependencies to resolve their known vulnerabilities by @anthonyshew in https://github.com/vercel/turborepo/pull/12604
### @turbo/repository
* feat: Add `cacheMaxAge` and `cacheMaxSize` for local cache eviction by @anthonyshew in https://github.com/vercel/turborepo/pull/12487
* chore: Update to Rust 1.95.0 by @ognevny in https://github.com/vercel/turborepo/pull/12636
### @turbo/telemetry
* fix: Suppress telemetry alert when running on Vercel by @anthonyshew in https://github.com/vercel/turborepo/pull/12576
### Examples
* feat(examples): Add Next.js + Elysia full-stack starter template by @eastgold15 in https://github.com/vercel/turborepo/pull/12414
* build(deps): Bump @xmldom/xmldom from 0.8.11 to 0.8.12 in /examples/with-react-native-web by @dependabot[bot] in https://github.com/vercel/turborepo/pull/12537
* fix: Add missing `@types/node` to `with-svelte` example apps by @anthonyshew in https://github.com/vercel/turborepo/pull/12585
* feat(sandbox): Bump @vercel/sandbox from v1 to beta by @marc-vercel in https://github.com/vercel/turborepo/pull/12595
* chore: Update examples to Turbo 2.9.6 by @cursor[bot] in https://github.com/vercel/turborepo/pull/12600
* examples: Add Ultracite example by @haydenbleasel in https://github.com/vercel/turborepo/pull/12615
### Changelog
* docs: Release post for 2.9 by @anthonyshew in https://github.com/vercel/turborepo/pull/12441
* docs: Add documentation for cacheMaxAge and cacheMaxSize options by @anthonyshew in https://github.com/vercel/turborepo/pull/12500
* fix: Resolve correct nested bun lockfile versions during prune by @anthonyshew in https://github.com/vercel/turborepo/pull/12506
* Revert "fix: Avoid `setsid()` in PTY spawn to prevent macOS Gatekeeper CPU spikes" by @anthonyshew in https://github.com/vercel/turborepo/pull/12507
* fix: Unblock `watch` loop so interruptible persistent tasks restart on file changes by @anthonyshew in https://github.com/vercel/turborepo/pull/12509
* fix(api-client): Treat * as wildcard in preflight Access-Control-Allow-Headers by @bitttttten in https://github.com/vercel/turborepo/pull/12503
* docs: Document `turbo.*` generator variables by @anthonyshew in https://github.com/vercel/turborepo/pull/12511
* fix: Backfill missing pnpm workspace importer entries during prune by @anthonyshew in https://github.com/vercel/turborepo/pull/12514
* fix: Include transitive dependencies in engine graph pruning for affected paths using Task Graph by @anthonyshew in https://github.com/vercel/turborepo/pull/12516
* fix: Update AI-generated response disclaimer to include human attribution by @anthonyshew with @Copilot in https://github.com/vercel/turborepo/pull/12517
* fix: Preserve shallow install strategy during npm lockfile pruning by @anthonyshew in https://github.com/vercel/turborepo/pull/12520
* fix: Preserve per-workspace lockfiles during pnpm pruning by @anthonyshew in https://github.com/vercel/turborepo/pull/12519
* feat: Add incremental task caching by @anthonyshew in https://github.com/vercel/turborepo/pull/12531
* docs: Send siteId as label on feedback GitHub issues by @molebox in https://github.com/vercel/turborepo/pull/12527
* Replace local ai-agent-detection with @vercel/agent-readability by @molebox in https://github.com/vercel/turborepo/pull/12528
* fix: Prevent `filterUsingTasks` `--filter` from pulling dependents into Task Graph by @anthonyshew in https://github.com/vercel/turborepo/pull/12535
* fix: Only enforce signature key length for keys that exist by @anthonyshew in https://github.com/vercel/turborepo/pull/12538
* fix: Validate engine concurrency after task-level filtering by @anthonyshew in https://github.com/vercel/turborepo/pull/12540
* feat: Allow `--affected` and `--filter` to be combined by @anthonyshew in https://github.com/vercel/turborepo/pull/12543
* fix(config): Deep-merge nested OTEL config across priority sources by @bitttttten in https://github.com/vercel/turborepo/pull/12513
* fix: Retain microfrontend proxy tasks when using `filterUsingTasks` by @anthonyshew in https://github.com/vercel/turborepo/pull/12545
* fix: Bun workspace lockfile pruning producing invalid output by @JRoy in https://github.com/vercel/turborepo/pull/12548
* fix: Respect dirty .gitignore patterns during task input hashing by @anthonyshew in https://github.com/vercel/turborepo/pull/12557
* feat: Add circular package dependency detection to boundaries by @anthonyshew in https://github.com/vercel/turborepo/pull/12567
* perf: Increase remote cache upload chunk size from 8KB to 256KB by @anthonyshew in https://github.com/vercel/turborepo/pull/12568
* perf: Parallelize `boundaries` checking with Rayon and cache DFS traversals by @anthonyshew in https://github.com/vercel/turborepo/pull/12569
* docs: Add Bun equivalent for updating dependencies by @anthonyshew in https://github.com/vercel/turborepo/pull/12580
* fix: Mention `turbo.json` in concurrency error message by @anthonyshew in https://github.com/vercel/turborepo/pull/12582
* fix: Surface actionable message when remote cache is requested but not linked by @anthonyshew in https://github.com/vercel/turborepo/pull/12584
* chore: Delete agents app by @anthonyshew in https://github.com/vercel/turborepo/pull/12587
* fix: Load custom CA certificates in fast webpki-only HTTP client by @anthonyshew in https://github.com/vercel/turborepo/pull/12591
* docs: Remove pre-release badges by @anthonyshew in https://github.com/vercel/turborepo/pull/12592
* fix: Align Markdown docs routing with docs/md endpoints by @molebox in https://github.com/vercel/turborepo/pull/12596
* fix: Support two-dot git ranges in filter selectors by @anthonyshew in https://github.com/vercel/turborepo/pull/12599
* feat: Graceful shutdown by @anthonyshew in https://github.com/vercel/turborepo/pull/12607
* test: Add stdin EOF startup regression coverage by @anthonyshew in https://github.com/vercel/turborepo/pull/12609
* fix: Ignore `SIGINT` in shim after spawning local `turbo` by @anthonyshew in https://github.com/vercel/turborepo/pull/12612
* fix: Support pnpm v11 multi-document lockfiles by @anthonyshew in https://github.com/vercel/turborepo/pull/12616
* fix: Preserve graceful shutdown exit code by @anthonyshew in https://github.com/vercel/turborepo/pull/12620
* fix: Keep Node wrapper alive during graceful shutdown by @anthonyshew in https://github.com/vercel/turborepo/pull/12622
* fix: Preserve PTY graceful shutdown semantics by @anthonyshew in https://github.com/vercel/turborepo/pull/12624
* feat: Move Vercel auth to standard OAuth/device flows by @markandrus in https://github.com/vercel/turborepo/pull/12526
* fix: Preserve legacy Vercel auth compatibility by @anthonyshew in https://github.com/vercel/turborepo/pull/12629
* fix: Recover Vercel auth tokens across login flows by @anthonyshew in https://github.com/vercel/turborepo/pull/12631
* docs: Fix TURBO_PLATFORM_ENV_DISABLED value in docs (true, not false) by @sleitor in https://github.com/vercel/turborepo/pull/12633
* chore: Update flags SDK by @AndyBitz in https://github.com/vercel/turborepo/pull/12646
* ci: Disable AWS-backed sccache by @anthonyshew in https://github.com/vercel/turborepo/pull/12663
* fix: Prevent prune from overmatching gitignore entries by @anthonyshew in https://github.com/vercel/turborepo/pull/12662
* ci: Harden release API commits by @anthonyshew in https://github.com/vercel/turborepo/pull/12664
* ci: Fix release API commit paths by @anthonyshew in https://github.com/vercel/turborepo/pull/12665
* release(turborepo): 2.9.7-canary.14 by @github-actions[bot] in https://github.com/vercel/turborepo/pull/12666
* chore: Add `tbx` sandbox helper by @anthonyshew in https://github.com/vercel/turborepo/pull/12668
* fix: Allow npm registry in tbx sandboxes by @anthonyshew in https://github.com/vercel/turborepo/pull/12669
* fix: Install turbo globally in tbx base by @anthonyshew in https://github.com/vercel/turborepo/pull/12670
* docs: Clarify package hash file inputs by @anthonyshew in https://github.com/vercel/turborepo/pull/12671
* fix: Allow tbx sandboxes to use stale bases by @anthonyshew in https://github.com/vercel/turborepo/pull/12672
* fix: Install dotfiles during `tbx base refresh` by @anthonyshew in https://github.com/vercel/turborepo/pull/12673
* fix: Improve tbx sandbox startup by @anthonyshew in https://github.com/vercel/turborepo/pull/12674
* fix: Improve tbx sandbox startup defaults by @anthonyshew in https://github.com/vercel/turborepo/pull/12675
* fix: Support pnpm 11 flat patch lockfiles by @anthonyshew in https://github.com/vercel/turborepo/pull/12676
* docs: Fix link to passthrough variables source code by @Wartijn in https://github.com/vercel/turborepo/pull/12643
* release(turborepo): 2.9.7-canary.15 by @github-actions[bot] in https://github.com/vercel/turborepo/pull/12677
* fix: Avoid rerunning non-cacheable watch dependencies by @anthonyshew in https://github.com/vercel/turborepo/pull/12678
* release(turborepo): 2.9.7 by @github-actions[bot] in https://github.com/vercel/turborepo/pull/12679
* test: Add regression for gitignored output restore by @anthonyshew in https://github.com/vercel/turborepo/pull/12681
* docs: Clarify root task guidance by @anthonyshew in https://github.com/vercel/turborepo/pull/12683
* fix: Preserve concrete dependency precedence by @anthonyshew in https://github.com/vercel/turborepo/pull/12682
* release(turborepo): 2.9.8-canary.1 by @github-actions[bot] in https://github.com/vercel/turborepo/pull/12685
* fix: Resolve Yarn catalog affected packages by @anthonyshew in https://github.com/vercel/turborepo/pull/12684
* release(turborepo): 2.9.8-canary.2 by @github-actions[bot] in https://github.com/vercel/turborepo/pull/12687
* fix: Preserve Bun prune lockfile validity by @anthonyshew in https://github.com/vercel/turborepo/pull/12686
* release(turborepo): 2.9.8-canary.3 by @github-actions[bot] in https://github.com/vercel/turborepo/pull/12689
* fix: Create prune docker bin stubs by @anthonyshew in https://github.com/vercel/turborepo/pull/12688
* release(turborepo): 2.9.8-canary.4 by @github-actions[bot] in https://github.com/vercel/turborepo/pull/12690
* fix: Keep tbx shell connections stable by @anthonyshew in https://github.com/vercel/turborepo/pull/12692
* perf: Reduce `turbo watch` hash memory spikes by @anthonyshew in https://github.com/vercel/turborepo/pull/12695
* release(turborepo): 2.9.8-canary.5 by @github-actions[bot] in https://github.com/vercel/turborepo/pull/12696
* fix: Reduce parent-death watchdog CPU usage by @anthonyshew in https://github.com/vercel/turborepo/pull/12697
* release(turborepo): 2.9.8-canary.6 by @github-actions[bot] in https://github.com/vercel/turborepo/pull/12698
* release(turborepo): 2.9.8 by @github-actions[bot] in https://github.com/vercel/turborepo/pull/12700
* fix: Remove Unix parent death watchdogs by @anthonyshew in https://github.com/vercel/turborepo/pull/12699
* release(turborepo): 2.9.9-canary.1 by @github-actions[bot] in https://github.com/vercel/turborepo/pull/12705
* fix: Scope repo index prefixes to Git root by @anthonyshew in https://github.com/vercel/turborepo/pull/12706
* release(turborepo): 2.9.9-canary.2 by @github-actions[bot] in https://github.com/vercel/turborepo/pull/12708
* ci: Harden non-release GitHub Actions by @anthonyshew in https://github.com/vercel/turborepo/pull/12707
* docs: Add pnpm workspace flag (-w) to Oxc setup docs by @mattjoll in https://github.com/vercel/turborepo/pull/12655
* fix: Harden OG image signatures by @anthonyshew in https://github.com/vercel/turborepo/pull/12709
* fix: Scope release npm publishing credentials by @anthonyshew in https://github.com/vercel/turborepo/pull/12710
* ci: Harden release workflows by @anthonyshew in https://github.com/vercel/turborepo/pull/12711
* release(turborepo): 2.9.9-canary.3 by @github-actions[bot] in https://github.com/vercel/turborepo/pull/12712
* fix: Harden docs security endpoints by @anthonyshew in https://github.com/vercel/turborepo/pull/12713
* ci: Harden internal GitHub Actions by @anthonyshew in https://github.com/vercel/turborepo/pull/12714
* ci: Harden release workflow handling by @anthonyshew in https://github.com/vercel/turborepo/pull/12715
* fix: Preserve lockfiles during dry-run conversion by @anthonyshew in https://github.com/vercel/turborepo/pull/12717
* ci: Fix LSP workflow container matrix by @anthonyshew in https://github.com/vercel/turborepo/pull/12718
* release(turborepo): 2.9.9-canary.4 by @github-actions[bot] in https://github.com/vercel/turborepo/pull/12716
* release(turborepo): 2.9.9 by @github-actions[bot] in https://github.com/vercel/turborepo/pull/12719
* fix: Respect SCM env vars in `turbo query affected` by @anthonyshew in https://github.com/vercel/turborepo/pull/12722
* ci: Package VSCode extension in release workflow by @anthonyshew in https://github.com/vercel/turborepo/pull/12723
* fix: Avoid some raw `create-turbo` example telemetry by @anthonyshew in https://github.com/vercel/turborepo/pull/12725
* fix: Escape graph HTML payloads by @anthonyshew in https://github.com/vercel/turborepo/pull/12726
* fix: Prevent OTEL token injection to spoofed origins by @anthonyshew in https://github.com/vercel/turborepo/pull/12727
* fix: Retry HTTP status failures by @anthonyshew in https://github.com/vercel/turborepo/pull/12728
* fix: Validate microfrontend proxy Host header by @anthonyshew in https://github.com/vercel/turborepo/pull/12730
* fix: Redact task hash env debug logs by @anthonyshew in https://github.com/vercel/turborepo/pull/12733
* fix: Filter microfrontend proxy environments by @anthonyshew in https://github.com/vercel/turborepo/pull/12732
* fix: Preserve FSEvents mount points for device-relative paths by @anthonyshew in https://github.com/vercel/turborepo/pull/12729
* fix: Validate proxy Host headers by @anthonyshew in https://github.com/vercel/turborepo/pull/12731
* fix: Resolve TypeScript `.js` extension imports to `.ts` files in boundaries by @maschwenk in https://github.com/vercel/turborepo/pull/12644
* fix: Use random temp path for repo downloads by @anthonyshew in https://github.com/vercel/turborepo/pull/12736
* release(turborepo): 2.9.10-canary.1 by @github-actions[bot] in https://github.com/vercel/turborepo/pull/12734
* fix: Reject OTel endpoints with userinfo by @anthonyshew in https://github.com/vercel/turborepo/pull/12737
* fix: Authenticate local devtools WebSocket by @anthonyshew in https://github.com/vercel/turborepo/pull/12738
* fix: Handle clipboard exec errors by @anthonyshew in https://github.com/vercel/turborepo/pull/12739
* fix: Restrict Vercel token reuse to trusted API origins by @anthonyshew in https://github.com/vercel/turborepo/pull/12740
* fix: Keep workspace config discovery inside root by @anthonyshew in https://github.com/vercel/turborepo/pull/12741
* fix: Hardening for daemon IPC endpoints by @anthonyshew in https://github.com/vercel/turborepo/pull/12742
* fix: Enforce cache filesystem boundaries by @anthonyshew in https://github.com/vercel/turborepo/pull/12743
* release(turborepo): 2.9.10 by @github-actions[bot] in https://github.com/vercel/turborepo/pull/12745
* ci: Publish VS Code extension on release by @anthonyshew in https://github.com/vercel/turborepo/pull/12747
* fix: Start daemon for VSCode Extension from the extension itself by @anthonyshew in https://github.com/vercel/turborepo/pull/12749
* release(turborepo): 2.9.11-canary.1 by @github-actions[bot] in https://github.com/vercel/turborepo/pull/12748
* fix: Include file URIs in LSP lifecycle logs by @anthonyshew in https://github.com/vercel/turborepo/pull/12751
* fix: Handle JSON decoration visitor depth by @anthonyshew in https://github.com/vercel/turborepo/pull/12752
* fix: Resolve relative `turbo path` in VS Code extension by @anthonyshew in https://github.com/vercel/turborepo/pull/12753
* fix: Preserve Bun nested dependencies during prune by @anthonyshew in https://github.com/vercel/turborepo/pull/12754
* fix: Prefer installed Turbo for LSP by @anthonyshew in https://github.com/vercel/turborepo/pull/12755
* release(turborepo): 2.9.11-canary.2 by @github-actions[bot] in https://github.com/vercel/turborepo/pull/12750
* ci: Parallelize LSP release publishing by @anthonyshew in https://github.com/vercel/turborepo/pull/12758
* fix: Reduce VS Code extension startup popups by @anthonyshew in https://github.com/vercel/turborepo/pull/12759
* fix: Support `turbo.jsonc` in VS Code extension by @anthonyshew in https://github.com/vercel/turborepo/pull/12760
* fix: Remove VS Code task key gradient by @anthonyshew in https://github.com/vercel/turborepo/pull/12761
* release(turborepo): 2.9.11-canary.3 by @github-actions[bot] in https://github.com/vercel/turborepo/pull/12756
* chore: Release v2.9.11-canary.4 by @anthonyshew in https://github.com/vercel/turborepo/pull/12762
* ci: Stop VS Code publish from blocking release PR by @anthonyshew in https://github.com/vercel/turborepo/pull/12763
* release(turborepo): 2.9.11-canary.5 by @github-actions[bot] in https://github.com/vercel/turborepo/pull/12764
* fix: Publish VS Code extension from release tag by @anthonyshew in https://github.com/vercel/turborepo/pull/12765
* fix: Support shimmed VS Code LSP probes by @anthonyshew in https://github.com/vercel/turborepo/pull/12767
* release(turborepo): 2.9.11-canary.6 by @github-actions[bot] in https://github.com/vercel/turborepo/pull/12766
* release(turborepo): 2.9.11-canary.7 by @github-actions[bot] in https://github.com/vercel/turborepo/pull/12768
* fix: Allow `$TURBO_EXTENDS$` in LSP diagnostics by @anthonyshew in https://github.com/vercel/turborepo/pull/12770
* release(turborepo): 2.9.11 by @github-actions[bot] in https://github.com/vercel/turborepo/pull/12771
* fix: Allow transit nodes in LSP diagnostics by @anthonyshew in https://github.com/vercel/turborepo/pull/12773
* release(turborepo): 2.9.12 by @github-actions[bot] in https://github.com/vercel/turborepo/pull/12774
* fix: Restore docs mobile menu by @anthonyshew in https://github.com/vercel/turborepo/pull/12782
* ci: Use `pull_request` for PR title linting by @anthonyshew in https://github.com/vercel/turborepo/pull/12787
* ci: Scope GitHub Actions caches by branch by @anthonyshew in https://github.com/vercel/turborepo/pull/12788
* test: Validate lockfiles without dependency downloads by @anthonyshew in https://github.com/vercel/turborepo/pull/12789
* Removed unneeded import form hash creation script in docs by @dancrumb in https://github.com/vercel/turborepo/pull/12799
* fix: Validate auth callback state by @anthonyshew in https://github.com/vercel/turborepo/pull/12802
* fix: Harden VS Code extension command execution by @anthonyshew in https://github.com/vercel/turborepo/pull/12800
* fix: Avoid project-local Yarn during detection by @anthonyshew in https://github.com/vercel/turborepo/pull/12801
* chore: Release 2.9.13 by @anthonyshew in https://github.com/vercel/turborepo/pull/12803
* release(turborepo): 2.9.14 by @github-actions[bot] in https://github.com/vercel/turborepo/pull/12805
* fix: Prune package.json workspaces by @anthonyshew in https://github.com/vercel/turborepo/pull/12808
* fix: Wait for process trees before task completion by @anthonyshew in https://github.com/vercel/turborepo/pull/12809
* release(turborepo): 2.9.15-canary.1 by @github-actions[bot] in https://github.com/vercel/turborepo/pull/12810
* ci: Sign macOS release binaries by @anthonyshew in https://github.com/vercel/turborepo/pull/12811
* release(turborepo): 2.9.15-canary.2 by @github-actions[bot] in https://github.com/vercel/turborepo/pull/12812
* fix: Prevent cache archive symlink reads by @anthonyshew in https://github.com/vercel/turborepo/pull/12813
* release(turborepo): 2.9.15-canary.3 by @github-actions[bot] in https://github.com/vercel/turborepo/pull/12814
* fix: Avoid path-racy chmod during directory restore by @anthonyshew in https://github.com/vercel/turborepo/pull/12815
* fix: Prevent cache restore symlink race writes by @anthonyshew in https://github.com/vercel/turborepo/pull/12817
* chore: Deny Rust panic extraction by default by @anthonyshew in https://github.com/vercel/turborepo/pull/12818
* fix: Make structured log symlink defense race-safe by @anthonyshew in https://github.com/vercel/turborepo/pull/12821
* fix: Preserve Bun alias child packages by @anthonyshew in https://github.com/vercel/turborepo/pull/12822
* fix: Avoid UTF-8 panics at boundaries by @anthonyshew in https://github.com/vercel/turborepo/pull/12823
* fix: Preserve non-UTF-8 Git path boundaries by @anthonyshew in https://github.com/vercel/turborepo/pull/12826
* fix: Create daemon dirs with private permissions by @anthonyshew in https://github.com/vercel/turborepo/pull/12827
* fix: Return Berry lockfile errors instead of panicking by @anthonyshew in https://github.com/vercel/turborepo/pull/12828
* fix: Isolate Corepack state in integration tests by @anthonyshew in https://github.com/vercel/turborepo/pull/12831
* ci: Use larger Windows runners for Rust tests by @anthonyshew in https://github.com/vercel/turborepo/pull/12832
* docs: Add `with-vite-module-federation` example by @gioboa in https://github.com/vercel/turborepo/pull/12794
* test: Run Rust tests without partitioning by @anthonyshew in https://github.com/vercel/turborepo/pull/12833
* chore: Remove `TaskHashTracker`-based `expect()` calls by @anthonyshew in https://github.com/vercel/turborepo/pull/12836
* chore: Deduplicate hash canonicalization by @anthonyshew in https://github.com/vercel/turborepo/pull/12837
* fix: Prevent Windows process drain hangs by @anthonyshew in https://github.com/vercel/turborepo/pull/12838
* fix: Refactor execsync to execfilesync for Shell command built from environment values by @bjormgyg in https://github.com/vercel/turborepo/pull/12829
* test: Bound vt100 random quickcheck by @anthonyshew in https://github.com/vercel/turborepo/pull/12839
* fix: Validate daemon discovery responses by @anthonyshew in https://github.com/vercel/turborepo/pull/12840
* fix: Store `PackageGraph` root invariants by @anthonyshew in https://github.com/vercel/turborepo/pull/12841
* chore: Avoid engine graph node expects by @anthonyshew in https://github.com/vercel/turborepo/pull/12842
* test: Make Rust tests parallel-safe by @anthonyshew in https://github.com/vercel/turborepo/pull/12843
* fix: Avoid graph utility node lookup panics by @anthonyshew in https://github.com/vercel/turborepo/pull/12844
* fix: Avoid graph walker `expect()` calls by @anthonyshew in https://github.com/vercel/turborepo/pull/12845
* fix: Remove fs panic extraction lints by @anthonyshew in https://github.com/vercel/turborepo/pull/12846
* fix: Remove fixed map panic extraction calls by @anthonyshew in https://github.com/vercel/turborepo/pull/12847
* fix: Remove devtools WebSocket panics by @anthonyshew in https://github.com/vercel/turborepo/pull/12850
* fix: Remove json rewrite panic lint allow by @anthonyshew in https://github.com/vercel/turborepo/pull/12848
* fix: Remove turborepo-types panic lint allows by @anthonyshew in https://github.com/vercel/turborepo/pull/12849
* chore: Remove turborepo-hash build expect by @anthonyshew in https://github.com/vercel/turborepo/pull/12851
* fix: Remove napi panic lint allows by @anthonyshew in https://github.com/vercel/turborepo/pull/12852
* fix: Avoid globwatch expect calls by @anthonyshew in https://github.com/vercel/turborepo/pull/12853
* fix: Remove LSP expect callsites by @anthonyshew in https://github.com/vercel/turborepo/pull/12854
* fix: Remove scope panic lint allows by @anthonyshew in https://github.com/vercel/turborepo/pull/12855
* fix: Remove task hash panic lints by @anthonyshew in https://github.com/vercel/turborepo/pull/12856
* fix: Remove frameworks panic lint allows by @anthonyshew in https://github.com/vercel/turborepo/pull/12857
* fix: Remove microfrontends proxy expect lint allow by @anthonyshew in https://github.com/vercel/turborepo/pull/12859
* fix: Avoid API client expect calls by @anthonyshew in https://github.com/vercel/turborepo/pull/12858
* fix: Avoid task executor expect calls by @anthonyshew in https://github.com/vercel/turborepo/pull/12860
* fix: Remove turbo-trace unwrap callsite by @anthonyshew in https://github.com/vercel/turborepo/pull/12863
* fix: Remove Vercel API mock expect usage by @anthonyshew in https://github.com/vercel/turborepo/pull/12862
* fix: Remove vt100 expect lint allow by @anthonyshew in https://github.com/vercel/turborepo/pull/12861
* fix: Remove turborepo-shim expect callsites by @anthonyshew in https://github.com/vercel/turborepo/pull/12864
* test: Deflake daemon existing process test by @anthonyshew in https://github.com/vercel/turborepo/pull/12865
* fix: Avoid repository NAPI unwrap calls by @anthonyshew in https://github.com/vercel/turborepo/pull/12866
* fix: Remove pidlock panic callsites by @anthonyshew in https://github.com/vercel/turborepo/pull/12867
* fix: Remove telemetry panic callsites by @anthonyshew in https://github.com/vercel/turborepo/pull/12868
* chore: Remove Rust re-export shims by @anthonyshew in https://github.com/vercel/turborepo/pull/12870
* fix: Remove turbo-json panic lint allows by @anthonyshew in https://github.com/vercel/turborepo/pull/12869
* fix: Remove `globwalk`'s `expect()` callsites by @anthonyshew in https://github.com/vercel/turborepo/pull/12871
* fix: Remove `turbopath`'s `expect()` callsites by @anthonyshew in https://github.com/vercel/turborepo/pull/12872
* test: Deflake Corepack prepare lock on Windows by @anthonyshew in https://github.com/vercel/turborepo/pull/12873
* fix: Remove signals panic callsites by @anthonyshew in https://github.com/vercel/turborepo/pull/12874
* fix: Remove `turbo-trace`'s `expect()` allow by @anthonyshew in https://github.com/vercel/turborepo/pull/12876
* fix: Remove Vercel API mock unwrap usage by @anthonyshew in https://github.com/vercel/turborepo/pull/12877
* fix: Remove task executor unwrap usage by @anthonyshew in https://github.com/vercel/turborepo/pull/12878
* fix: Remove run summary expect usage by @anthonyshew in https://github.com/vercel/turborepo/pull/12879
* fix: Remove microfrontends proxy unwrap usage by @anthonyshew in https://github.com/vercel/turborepo/pull/12880
* fix: Remove api client unwrap usage by @anthonyshew in https://github.com/vercel/turborepo/pull/12881
* fix: Remove globwalk unwrap usage by @anthonyshew in https://github.com/vercel/turborepo/pull/12883
* fix: Remove UI `expect()` usage by @anthonyshew in https://github.com/vercel/turborepo/pull/12882
* fix: Remove microfrontends expect usage by @anthonyshew in https://github.com/vercel/turborepo/pull/12885
* fix: Remove `boundaries`'s `expect()` usage by @anthonyshew in https://github.com/vercel/turborepo/pull/12887
* fix: Remove `turborepo-process`'s `unwrap()` usage by @anthonyshew in https://github.com/vercel/turborepo/pull/12888
* fix: Remove UI unwrap usage by @anthonyshew in https://github.com/vercel/turborepo/pull/12889
* fix: Remove microfrontends unwrap allow by @anthonyshew in https://github.com/vercel/turborepo/pull/12890
* fix: Remove `turborepo-process`'s `expect()` usage by @anthonyshew in https://github.com/vercel/turborepo/pull/12891
* fix: Remove scm expect usage by @anthonyshew in https://github.com/vercel/turborepo/pull/12893
* fix: Remove auth unwrap usage by @anthonyshew in https://github.com/vercel/turborepo/pull/12886
* fix: Remove `turbopath`'s `unwrap()` usage by @anthonyshew in https://github.com/vercel/turborepo/pull/12884
* fix: Remove `auth`'s `expect()` usage by @anthonyshew in https://github.com/vercel/turborepo/pull/12895
* fix: Remove wax unwrap usage by @anthonyshew in https://github.com/vercel/turborepo/pull/12899
* fix: Remove scm unwrap usage by @anthonyshew in https://github.com/vercel/turborepo/pull/12897
* fix: Remove `turborepo-boundaries`'s `unwrap()` usage by @anthonyshew in https://github.com/vercel/turborepo/pull/12896
* fix: Remove daemon unwrap usage by @anthonyshew in https://github.com/vercel/turborepo/pull/12898
* fix: Include lockfile-changed packages in affected tasks by @anthonyshew in https://github.com/vercel/turborepo/pull/12900
* fix: Remove `turborepo-wax`'s `expect()` usage by @anthonyshew in https://github.com/vercel/turborepo/pull/12901
* fix: Remove `turborepo-filewatch`'s `expect()` usage by @anthonyshew in https://github.com/vercel/turborepo/pull/12903
* fix: Remove `turborepo-cache`'s `expect()` usage by @anthonyshew in https://github.com/vercel/turborepo/pull/12902
* fix: Remove `turborepo-daemon`'s `expect()` usage by @anthonyshew in https://github.com/vercel/turborepo/pull/12904
* fix: Remove `turborepo-engine`'s `unwrap()` usage by @anthonyshew in https://github.com/vercel/turborepo/pull/12906
* fix: Remove filewatch unwrap usage by @anthonyshew in https://github.com/vercel/turborepo/pull/12907
* fix: Remove engine expect usage by @anthonyshew in https://github.com/vercel/turborepo/pull/12908
* fix: Remove cache unwrap usage by @anthonyshew in https://github.com/vercel/turborepo/pull/12909
* fix: Remove `turborepo-lockfiles` `expect()` usage by @anthonyshew in https://github.com/vercel/turborepo/pull/12910
* chore: Set pnpm minimum release age by @anthonyshew in https://github.com/vercel/turborepo/pull/12912
* fix: Remove `turborepo-lockfiles`'s `unwrap()` usage by @anthonyshew in https://github.com/vercel/turborepo/pull/12911
* fix: Remove `turborepo-vt100`'s `unwrap()` usage by @anthonyshew in https://github.com/vercel/turborepo/pull/12913
* release(turborepo): 2.9.15-canary.4 by @github-actions[bot] in https://github.com/vercel/turborepo/pull/12905
* fix: Remove `turborepo-lib`'s `unwrap()` usage by @anthonyshew in https://github.com/vercel/turborepo/pull/12915
* fix: Remove `turborepo-lib`'s `expect()` usage by @anthonyshew in https://github.com/vercel/turborepo/pull/12914
* fix: Remove shim test unwrap usage by @anthonyshew in https://github.com/vercel/turborepo/pull/12917
* fix: Remove turbo json test unwrap allowance by @anthonyshew in https://github.com/vercel/turborepo/pull/12918
* fix: Remove run summary test unwrap usage by @anthonyshew in https://github.com/vercel/turborepo/pull/12916
* release(turborepo): 2.9.15-canary.5 by @github-actions[bot] in https://github.com/vercel/turborepo/pull/12919
* fix: Restore task completion semantics by @anthonyshew in https://github.com/vercel/turborepo/pull/12923
* fix: Preserve nested Bun workspace dependency versions by @anthonyshew in https://github.com/vercel/turborepo/pull/12924
* release(turborepo): 2.9.15-canary.6 by @github-actions[bot] in https://github.com/vercel/turborepo/pull/12925
* fix: Restore release PR auto-merge by @anthonyshew in https://github.com/vercel/turborepo/pull/12927
* perf: Index repo gitignore matchers by @anthonyshew in https://github.com/vercel/turborepo/pull/12928
* ci: Disable incremental Rust test builds by @anthonyshew in https://github.com/vercel/turborepo/pull/12929
* perf: Trim OpenTelemetry crate features by @anthonyshew in https://github.com/vercel/turborepo/pull/12930
* perf: Trim microfrontends proxy HTTP features by @anthonyshew in https://github.com/vercel/turborepo/pull/12931
* fix: Accept `experimentalCI` object config by @anthonyshew in https://github.com/vercel/turborepo/pull/12934
* release(turborepo): 2.9.15-canary.7 by @github-actions[bot] in https://github.com/vercel/turborepo/pull/12935
* fix: Restore a few internal invariant checks by @anthonyshew in https://github.com/vercel/turborepo/pull/12933
* fix: Improve profile tracing coverage by @anthonyshew in https://github.com/vercel/turborepo/pull/12936
* fix: Use build-scale OTel duration buckets by @anthonyshew in https://github.com/vercel/turborepo/pull/12939
* fix: Preserve pnpm injected peer package entries by @anthonyshew in https://github.com/vercel/turborepo/pull/12940
* feat: Add heap allocation profiling by @anthonyshew in https://github.com/vercel/turborepo/pull/12943
* release(turborepo): 2.9.15-canary.8 by @anthonyshew in https://github.com/vercel/turborepo/pull/12945
* docs: Correct attribute presence claims in turborepo-otel by @adityasingh2400 in https://github.com/vercel/turborepo/pull/12932
* chore(turbo-codemod): Remove duplicate "in" in transforms path comment by @mvanhorn in https://github.com/vercel/turborepo/pull/12948
* chore: Switch Geist font imports to npm geist package by @christopherkindl in https://github.com/vercel/turborepo/pull/12952
* fix: Respect root gitignore during prune by @anthonyshew in https://github.com/vercel/turborepo/pull/12953
* fix: Harden OTEL endpoint validation by @anthonyshew in https://github.com/vercel/turborepo/pull/12954
* release(turborepo): 2.9.15 by @github-actions[bot] in https://github.com/vercel/turborepo/pull/12955
* fix: Avoid hanging PTY shutdown by @anthonyshew in https://github.com/vercel/turborepo/pull/12958
* fix: Retry npm tlog publish failures by @anthonyshew in https://github.com/vercel/turborepo/pull/12959
* release(turborepo): 2.9.16-canary.1 by @anthonyshew in https://github.com/vercel/turborepo/pull/12960
* fix: Preserve nested Bun dependency versions by @anthonyshew in https://github.com/vercel/turborepo/pull/12963
* Revert "fix: Preserve nested Bun dependency versions" by @anthonyshew in https://github.com/vercel/turborepo/pull/12964
* release(turborepo): 2.9.16-canary.2 by @github-actions[bot] in https://github.com/vercel/turborepo/pull/12961
* fix: Preserve nested Bun dependency versions by @anthonyshew in https://github.com/vercel/turborepo/pull/12965
* fix: Don't delete existing `.git` when using `--no-git` flag by @anthonyshew in https://github.com/vercel/turborepo/pull/12968
* fix: Keep non-PTY stdin alive for persistent tasks by @anthonyshew in https://github.com/vercel/turborepo/pull/12972
* release(turborepo): 2.9.16 by @github-actions[bot] in https://github.com/vercel/turborepo/pull/12970
* release(turborepo): 2.9.17-canary.1 by @github-actions[bot] in https://github.com/vercel/turborepo/pull/12973
* fix: Add auth HTTP timeouts by @anthonyshew in https://github.com/vercel/turborepo/pull/12976
* fix: Detect affected root tasks in query by @anthonyshew in https://github.com/vercel/turborepo/pull/12977
* fix: Wait for Windows graceful shutdown by @anthonyshew in https://github.com/vercel/turborepo/pull/12979
* release(turborepo): 2.9.17-canary.2 by @github-actions[bot] in https://github.com/vercel/turborepo/pull/12980
* test: Skip installs for JSON output fixtures by @anthonyshew in https://github.com/vercel/turborepo/pull/12981
* feat: Add Rsbuild examples by @Nsttt in https://github.com/vercel/turborepo/pull/12942
* test: Skip installs for single package dry runs by @anthonyshew in https://github.com/vercel/turborepo/pull/12982
* test: Skip Corepack setup without installs by @anthonyshew in https://github.com/vercel/turborepo/pull/12983
* test: Skip installs for metadata-only Rust tests by @anthonyshew in https://github.com/vercel/turborepo/pull/12985
* test: Skip remaining unnecessary fixture installs by @anthonyshew in https://github.com/vercel/turborepo/pull/12986
* test: Add final hash contract snapshots by @anthonyshew in https://github.com/vercel/turborepo/pull/12984
* test: Trim run logging integration matrix by @anthonyshew in https://github.com/vercel/turborepo/pull/12987
* test: Trim affected query integration matrix by @anthonyshew in https://github.com/vercel/turborepo/pull/12988
* test: Narrow Windows integration test group by @anthonyshew in https://github.com/vercel/turborepo/pull/12989
* test: Trim task dependency integration coverage by @anthonyshew in https://github.com/vercel/turborepo/pull/12990
* test: Trim affected integration coverage by @anthonyshew in https://github.com/vercel/turborepo/pull/12991
* test: Collapse integration test matrices by @anthonyshew in https://github.com/vercel/turborepo/pull/12992
* test: Collapse non-watch integration matrices by @anthonyshew in https://github.com/vercel/turborepo/pull/12993
* test: Collapse summary and caching test setup by @anthonyshew in https://github.com/vercel/turborepo/pull/12994
* test: Trim lockfile-aware caching integration matrix by @anthonyshew in https://github.com/vercel/turborepo/pull/12995
* test: Move inference, env, and otel coverage lower by @anthonyshew in https://github.com/vercel/turborepo/pull/12996
* test: Trim turborepo-scm subprocess tests by @anthonyshew in https://github.com/vercel/turborepo/pull/12998
* test: Remove Windows nextest thread cap by @anthonyshew in https://github.com/vercel/turborepo/pull/12999
* test: Trim workspace config integration tests by @anthonyshew in https://github.com/vercel/turborepo/pull/13000
* test: Trim run logging integration coverage by @anthonyshew in https://github.com/vercel/turborepo/pull/13001
* test: Trim summary inference and single package tests by @anthonyshew in https://github.com/vercel/turborepo/pull/13002
* test: Trim continue and persistent integration tests by @anthonyshew in https://github.com/vercel/turborepo/pull/13004
* test: Trim force and workspace inheritance tests by @anthonyshew in https://github.com/vercel/turborepo/pull/13005
* test: Trim SCM regression matrix by @anthonyshew in https://github.com/vercel/turborepo/pull/13006
* test: Trim miscellaneous integration tests by @anthonyshew in https://github.com/vercel/turborepo/pull/13007
* test: Trim affected and cache integration coverage by @anthonyshew in https://github.com/vercel/turborepo/pull/13008
* refactor: Split engine builder modules by @anthonyshew in https://github.com/vercel/turborepo/pull/13009
* refactor: Split process child module by @anthonyshew in https://github.com/vercel/turborepo/pull/13014
* refactor: Split CLI module by @anthonyshew in https://github.com/vercel/turborepo/pull/13013
* refactor: Split Bun lockfile module by @anthonyshew in https://github.com/vercel/turborepo/pull/13012
* Fix typo in .gitignore comment by @saiteja-madha in https://github.com/vercel/turborepo/pull/13010
* fix: Preserve Bun nested dependency versions by @anthonyshew in https://github.com/vercel/turborepo/pull/13016
* docs: Exclude Next.js dev server output from cache examples by @anthonyshew in https://github.com/vercel/turborepo/pull/13019
* release(turborepo): 2.9.17-canary.3 by @github-actions[bot] in https://github.com/vercel/turborepo/pull/13017
* fix: Highlight active docs sidebar item by @anthonyshew in https://github.com/vercel/turborepo/pull/13023
* fix: Ignore peer dependencies in package graph by @kitten in https://github.com/vercel/turborepo/pull/13025
* release(turborepo): 2.9.17-canary.4 by @github-actions[bot] in https://github.com/vercel/turborepo/pull/13032
* fix: Preserve pnpm override-resolved prune deps by @anthonyshew in https://github.com/vercel/turborepo/pull/13031
* fix: Keep PTY stdin open for tasks by @anthonyshew in https://github.com/vercel/turborepo/pull/13033
* fix: Add TUI pane padding before logs by @anthonyshew in https://github.com/vercel/turborepo/pull/13034
* fix(api-client): Support P-521 ECDSA certificate chains over rustls by @anthonyshew in https://github.com/vercel/turborepo/pull/13036
* chore: Restore aarch64 musl release builds by @anthonyshew in https://github.com/vercel/turborepo/pull/13037
* release(turborepo): 2.9.17-canary.5 by @github-actions[bot] in https://github.com/vercel/turborepo/pull/13038
* docs: Remove ESM warning from gen page by @anthonyshew in https://github.com/vercel/turborepo/pull/13039
* fix: Bypass npm command shim on Windows by @anthonyshew in https://github.com/vercel/turborepo/pull/13040
* feat: Add JIT task input hashing by @anthonyshew in https://github.com/vercel/turborepo/pull/13043
* fix: Defer hashes for JIT task dependents by @anthonyshew in https://github.com/vercel/turborepo/pull/13045
* release(turborepo): 2.9.17-canary.6 by @github-actions[bot] in https://github.com/vercel/turborepo/pull/13044
* release(turborepo): 2.9.17-canary.7 by @github-actions[bot] in https://github.com/vercel/turborepo/pull/13046
* fix: Send Ctrl+C to Windows PTY tasks by @anthonyshew in https://github.com/vercel/turborepo/pull/13041
* release(turborepo): 2.9.17 by @github-actions[bot] in https://github.com/vercel/turborepo/pull/13047
* ci: Fetch version.txt via API in docs alias failure notification by @anthonyshew in https://github.com/vercel/turborepo/pull/13050
* fix: Harden cache archive symlink restore by @anthonyshew in https://github.com/vercel/turborepo/pull/13051
* chore: Remove web UI mode by @anthonyshew in https://github.com/vercel/turborepo/pull/13052
* fix: Harden query server file access by @anthonyshew in https://github.com/vercel/turborepo/pull/13053
* fix: Confine prune patch paths by @anthonyshew in https://github.com/vercel/turborepo/pull/13054
* fix: Prevent git argument injection in SCM refs by @anthonyshew in https://github.com/vercel/turborepo/pull/13055
* fix: Strip special mode bits from cache restore by @anthonyshew in https://github.com/vercel/turborepo/pull/13056
* fix: Contain incremental cache outputs by @anthonyshew in https://github.com/vercel/turborepo/pull/13057
* fix(turborepo): Normalize Windows daemon path hash by @Balance8 in https://github.com/vercel/turborepo/pull/13020
* fix: Preserve vt100 cell byte counts by @anthonyshew in https://github.com/vercel/turborepo/pull/13058
* fix: Separate artifact signature fields by @anthonyshew in https://github.com/vercel/turborepo/pull/13059
* fix: Validate OidHash hex buffers by @anthonyshew in https://github.com/vercel/turborepo/pull/13060
* fix: Block self-hosted login URLs from attempting to use Vercel's SSO by @anthonyshew in https://github.com/vercel/turborepo/pull/13061
* release(turborepo): 2.9.18 by @github-actions[bot] in https://github.com/vercel/turborepo/pull/13062
* fix: Re-authenticate when stored token loses access to linked team by @anthonyshew in https://github.com/vercel/turborepo/pull/13064
* release(turborepo): 2.9.19-canary.1 by @github-actions[bot] in https://github.com/vercel/turborepo/pull/13065
* fix: Stop shim from killing local turbo on Windows Ctrl+C by @anthonyshew in https://github.com/vercel/turborepo/pull/13067
* release(turborepo): 2.9.19-canary.2 by @github-actions[bot] in https://github.com/vercel/turborepo/pull/13068
* ci: Add PR workflow timeouts by @anthonyshew in https://github.com/vercel/turborepo/pull/13070
* fix: Deliver Ctrl-C to ConPTY children during graceful shutdown on Windows by @anthonyshew in https://github.com/vercel/turborepo/pull/13069
* release(turborepo): 2.9.19-canary.3 by @github-actions[bot] in https://github.com/vercel/turborepo/pull/13071
* fix: Use PTY for interactive Windows tasks by @anthonyshew in https://github.com/vercel/turborepo/pull/13073
* fix: Filter pruned pnpm workspace patches by @anthonyshew in https://github.com/vercel/turborepo/pull/13075
* fix: Cache outputs through internal symlinks by @anthonyshew in https://github.com/vercel/turborepo/pull/13076
* fix: Avoid Windows PTY task output by @anthonyshew in https://github.com/vercel/turborepo/pull/13077
* release(turborepo): 2.9.19-canary.4 by @github-actions[bot] in https://github.com/vercel/turborepo/pull/13074
* release(turborepo): 2.9.19-canary.5 by @github-actions[bot] in https://github.com/vercel/turborepo/pull/13079
* fix: Preserve PNPM deps check config by @anthonyshew in https://github.com/vercel/turborepo/pull/13084
* fix: Speed up default create-turbo download by @anthonyshew in https://github.com/vercel/turborepo/pull/13085
* fix: Preserve pnpm peer-resolved prune entries by @anthonyshew in https://github.com/vercel/turborepo/pull/13086
* fix: Precompute unblocked JIT descendants by @anthonyshew in https://github.com/vercel/turborepo/pull/13088
* fix: Use repo package manager for generate by @anthonyshew in https://github.com/vercel/turborepo/pull/13089
* fix: Handle Windows package manager shutdown by @anthonyshew in https://github.com/vercel/turborepo/pull/13090
* release(turborepo): 2.9.19-canary.6 by @github-actions[bot] in https://github.com/vercel/turborepo/pull/13092
* fix: Prevent duplicate PTY graceful shutdown signals by @anthonyshew in https://github.com/vercel/turborepo/pull/13093
* fix: Remove accidental shell commands example changes by @anthonyshew in https://github.com/vercel/turborepo/pull/13094
* release(turborepo): 2.9.19-canary.7 by @github-actions[bot] in https://github.com/vercel/turborepo/pull/13095
* fix: Refine graceful shutdown messaging by @anthonyshew in https://github.com/vercel/turborepo/pull/13098
* fix: Gracefully stop nested PTY processes by @anthonyshew in https://github.com/vercel/turborepo/pull/13100
* fix: Restore TUI force shutdown by @anthonyshew in https://github.com/vercel/turborepo/pull/13102
* release(turborepo): 2.9.19-canary.8 by @github-actions[bot] in https://github.com/vercel/turborepo/pull/13103
* fix: Upgrade tsdown in kitchen-sink api to fix dev script by @anthonyshew in https://github.com/vercel/turborepo/pull/13105
* fix: Soften force shutdown message by @anthonyshew in https://github.com/vercel/turborepo/pull/13104
* fix: Thread `allow_no_package_manager` to daemon and watcher by @kitten in https://github.com/vercel/turborepo/pull/13091
* fix: Preserve bun patchedDependencies during prune by @anthonyshew in https://github.com/vercel/turborepo/pull/13106
* fix: Ignore symlink cycles when caching outputs by @anthonyshew in https://github.com/vercel/turborepo/pull/13107
* release(turborepo): 2.9.19-canary.9 by @github-actions[bot] in https://github.com/vercel/turborepo/pull/13108
* fix: Preserve terminal settings for child PTYs by @anthonyshew in https://github.com/vercel/turborepo/pull/13110
* fix: Upgrade esbuild to patched version by @anthonyshew in https://github.com/vercel/turborepo/pull/13112
* fix(prune): Relocate stranded transitive deps when promoting npm workspace-nested packages by @anthonyshew in https://github.com/vercel/turborepo/pull/13111
* Update Next.js version to 16.2.5 by @hack-313-ip in https://github.com/vercel/turborepo/pull/13081
* fix: Add ComSpec and PATHEXT to default Windows env passthrough by @anthonyshew in https://github.com/vercel/turborepo/pull/13114
* fix: Respect task inputs when stopping interruptible persistent tasks in watch by @anthonyshew in https://github.com/vercel/turborepo/pull/13116
* docs: Fix stderr debugging guidance by @gwagjiug in https://github.com/vercel/turborepo/pull/13122
* feat: Add deferred hashing for task inputs by @anthonyshew in https://github.com/vercel/turborepo/pull/13125
* fix: Restart deferred hash consumers in watch by @anthonyshew in https://github.com/vercel/turborepo/pull/13127
* chore: Update to Rust 1.96.0 by @ognevny in https://github.com/vercel/turborepo/pull/12974
* fix: Improve watch graceful shutdown by @anthonyshew in https://github.com/vercel/turborepo/pull/13128
* fix: Hash selected dependency outputs instead of tasks by @anthonyshew in https://github.com/vercel/turborepo/pull/13129
* release(turborepo): 2.9.19-canary.10 by @github-actions[bot] in https://github.com/vercel/turborepo/pull/13130

## New Contributors
* @eastgold15 made their first contribution in https://github.com/vercel/turborepo/pull/12414
* @JRoy made their first contribution in https://github.com/vercel/turborepo/pull/12548
* @DependerKumarSoni made their first contribution in https://github.com/vercel/turborepo/pull/6747
* @marc-vercel made their first contribution in https://github.com/vercel/turborepo/pull/12595
* @cursor[bot] made their first contribution in https://github.com/vercel/turborepo/pull/12600
* @markandrus made their first contribution in https://github.com/vercel/turborepo/pull/12526
* @AndyBitz made their first contribution in https://github.com/vercel/turborepo/pull/12646
* @Wartijn made their first contribution in https://github.com/vercel/turborepo/pull/12643
* @mattjoll made their first contribution in https://github.com/vercel/turborepo/pull/12655
* @dancrumb made their first contribution in https://github.com/vercel/turborepo/pull/12799
* @gioboa made their first contribution in https://github.com/vercel/turborepo/pull/12794
* @bjormgyg made their first contribution in https://github.com/vercel/turborepo/pull/12829
* @adityasingh2400 made their first contribution in https://github.com/vercel/turborepo/pull/12932
* @mvanhorn made their first contribution in https://github.com/vercel/turborepo/pull/12948
* @christopherkindl made their first contribution in https://github.com/vercel/turborepo/pull/12952
* @Nsttt made their first contribution in https://github.com/vercel/turborepo/pull/12942
* @saiteja-madha made their first contribution in https://github.com/vercel/turborepo/pull/13010
* @kitten made their first contribution in https://github.com/vercel/turborepo/pull/13025
* @Balance8 made their first contribution in https://github.com/vercel/turborepo/pull/13020
* @gwagjiug made their first contribution in https://github.com/vercel/turborepo/pull/13122

**Full Changelog**: https://github.com/vercel/turborepo/compare/v2.9.0...v2.10.0