Impact Score: 5/10
Turborepo v2.9.0
Source available โ automated, not human-reviewed
Component: turbo ยท Channel: stable. Automated analysis, not a compatibility certification. How this works.
Analysis updated: 2026-11-01.
โก Executive Summary (TL;DR)
Turborepo v2.9.0. Source highlight: docs: Release post for 2.8
Who Does This Impact? (Role-Based Analysis)
๐ป Software Engineers & Devs
Check the source notes against the package and APIs you use before upgrading.
๐ Product & Engineering Leads
Use the documented changes to assess relevance to your product; release frequency alone is not a quality measure.
โ๏ธ DevOps & Security
Verify the target version, runtime requirements and rollback procedure in the official documentation.
โจ New Features & Capabilities (6)
- feat: Add requestType tracking for header-negotiated markdown
- feat: Migrate from tsup to tsdown
- feat: Add `affectedUsingTaskInputs` future flag for task-level `--affected` detection
- feat: Deprecate `turbo-ignore` in favor of `turbo query affected`
- feat: Add experimentalObservability with an OTel backend
- feat: Add `packagesFromLockfile()` NAPI binding to `@turbo/repository`
โก Performance & Enhancements (6)
- perf: Defer TLS initialization to a background thread
- perf: Replace third-party crates with Rust std lib equivalents
- perf: Reduce duplicate dependency versions
- perf: Optimize hot-path hash computation by avoiding clones and using unstable sorts
- perf: Replace twox-hash with xxhash-rust and optimize file hashing
- perf: Reduce allocations in globwalk
๐ง Bug Fixes & Patches (6)
- docs: Fix curl markdown Accept header syntax in 2.8 release blog
- docs: Fix worktree command in blog post
- fix: Upgrade next to fix HTTP deserialization DoS
- fix: Upgrade mermaid to fix lodash-es vulnerability
- fix: Upgrade recharts to fix lodash vulnerability
- fix: Upgrade rehype packages to fix mdast-util-to-hast vulnerability
๐ View Raw Release Notes (Original Developer Log)
<!-- Release notes generated using configuration in .github/release.yml at v2.9.0 -->
## What's Changed
### Docs
* docs: Release post for 2.8 by @anthonyshew in https://github.com/vercel/turborepo/pull/11559
* docs: Update oxc.mdx to include cache false by @bestickley in https://github.com/vercel/turborepo/pull/11571
* docs: Fix curl markdown Accept header syntax in 2.8 release blog by @marko-hologram in https://github.com/vercel/turborepo/pull/11580
* docs: Fix worktree command in blog post by @anthonyshew in https://github.com/vercel/turborepo/pull/11583
* docs: Rename command โ subcommand by @anthonyshew in https://github.com/vercel/turborepo/pull/11584
* feat: Add requestType tracking for header-negotiated markdown by @molebox in https://github.com/vercel/turborepo/pull/11585
* fix: Upgrade next to fix HTTP deserialization DoS by @anthonyshew in https://github.com/vercel/turborepo/pull/11597
* fix: Upgrade mermaid to fix lodash-es vulnerability by @anthonyshew in https://github.com/vercel/turborepo/pull/11611
* fix: Upgrade recharts to fix lodash vulnerability by @anthonyshew in https://github.com/vercel/turborepo/pull/11606
* chore: Move applications to apps/ directory by @anthonyshew in https://github.com/vercel/turborepo/pull/11613
* fix: Upgrade rehype packages to fix mdast-util-to-hast vulnerability by @anthonyshew in https://github.com/vercel/turborepo/pull/11616
* chore: Migrate to Ultracite by @haydenbleasel in https://github.com/vercel/turborepo/pull/11948
* fix: Strip JSX components from heading anchors and TOC entries by @anthonyshew in https://github.com/vercel/turborepo/pull/12404
### create-turbo
* fix: Upgrade tsup to fix rollup and glob vulnerabilities by @anthonyshew in https://github.com/vercel/turborepo/pull/11601
* fix: Upgrade inquirer to 8.2.7 to fix tmp vulnerability by @anthonyshew in https://github.com/vercel/turborepo/pull/11622
* fix: Upgrade ts-jest to 29.4.6 to fix brace-expansion ReDoS vulnerabilities by @anthonyshew in https://github.com/vercel/turborepo/pull/11623
* feat: Migrate from tsup to tsdown by @anthonyshew in https://github.com/vercel/turborepo/pull/11649
* fix: Upgrade semver to fix ReDoS vulnerability by @anthonyshew in https://github.com/vercel/turborepo/pull/11683
* fix: Upgrade inquirer to remove lodash dependency by @anthonyshew in https://github.com/vercel/turborepo/pull/11709
* fix: Upgrade tsdown in create-turbo to resolve valibot ReDoS vulnerability by @anthonyshew in https://github.com/vercel/turborepo/pull/11702
* fix: Upgrade jest to v30 to resolve brace-expansion ReDoS vulnerability by @anthonyshew in https://github.com/vercel/turborepo/pull/11706
* fix: Recover version numbering to 2.8.9-canary.0 by @anthonyshew in https://github.com/vercel/turborepo/pull/11853
* fix: Sanitize git command inputs in create-turbo by @anthonyshew in https://github.com/vercel/turborepo/pull/11876
* chore: Remove pnpm-eslint .vscode transform from create-turbo by @anthonyshew in https://github.com/vercel/turborepo/pull/12186
* fix: Improve create-turbo connectivity check and offline error messages by @anthonyshew in https://github.com/vercel/turborepo/pull/12257
* feat: Add `affectedUsingTaskInputs` future flag for task-level `--affected` detection by @anthonyshew in https://github.com/vercel/turborepo/pull/12247
* fix: Replace dns.lookup with https.get for create-turbo online check by @anthonyshew in https://github.com/vercel/turborepo/pull/12277
* fix: Remove redundant online check from create-turbo by @anthonyshew in https://github.com/vercel/turborepo/pull/12281
* fix: Sort uninstalled package managers to bottom of `create-turbo` selection by @anthonyshew in https://github.com/vercel/turborepo/pull/12353
### turbo-ignore
* fix: Resolve pnpm audit vulnerabilities via dependency bumps by @anthonyshew in https://github.com/vercel/turborepo/pull/12220
* feat: Deprecate `turbo-ignore` in favor of `turbo query affected` by @anthonyshew in https://github.com/vercel/turborepo/pull/12382
* fix: Tailored `turbo-ignore` deprecation notice for Vercel users by @anthonyshew in https://github.com/vercel/turborepo/pull/12385
### @turbo/codemod
* fix: Upgrade axios to fix SSRF vulnerability by @anthonyshew in https://github.com/vercel/turborepo/pull/11599
* fix: Replace axios with native fetch in turbo-codemod by @anthonyshew in https://github.com/vercel/turborepo/pull/11600
* fix: Upgrade diff to fix DoS vulnerabilities by @anthonyshew in https://github.com/vercel/turborepo/pull/11621
* fix: Upgrade tsdown to fix valibot and diff vulnerabilities by @anthonyshew in https://github.com/vercel/turborepo/pull/11766
* fix: Upgrade semver to fix ReDoS vulnerability by @anthonyshew in https://github.com/vercel/turborepo/pull/11765
* fix: Enhance path validation in assertSafeGitArgument by @odaysec in https://github.com/vercel/turborepo/pull/11788
* fix: Guard against missing `pipeline` key in `clean-globs` codemod by @anthonyshew in https://github.com/vercel/turborepo/pull/12235
* fix: Stop `add-package-names` codemod from silently renaming existing packages by @anthonyshew in https://github.com/vercel/turborepo/pull/12332
* fix: Handle Yarn 2+ in @turbo/codemod install commands by @anthonyshew in https://github.com/vercel/turborepo/pull/12477
### eslint
* fix: Upgrade eslint devDependency to fix stack overflow vulnerability by @anthonyshew in https://github.com/vercel/turborepo/pull/11610
* fix: Upgrade esbuild to fix arbitrary request vulnerability by @anthonyshew in https://github.com/vercel/turborepo/pull/11615
* fix: Upgrade Next.js to 16.1.5 to fix DoS vulnerabilities by @anthonyshew in https://github.com/vercel/turborepo/pull/11681
* fix: Upgrade eslint to v10 to resolve @eslint/plugin-kit ReDoS vulnerability by @anthonyshew in https://github.com/vercel/turborepo/pull/11705
* fix(eslint-plugin-turbo): Guard against missing tasks/pipeline in forEachTaskDef by @sleitor in https://github.com/vercel/turborepo/pull/12411
### @turbo/repository
* fix: Rename cli workspace package to avoid false audit match by @anthonyshew in https://github.com/vercel/turborepo/pull/11767
* 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
* feat: Add experimentalObservability with an OTel backend by @bkonkle in https://github.com/vercel/turborepo/pull/11130
* release(library): 0.0.1-canary.20 by @github-actions[bot] in https://github.com/vercel/turborepo/pull/12116
* chore: Update to Rust 1.94.0 by @ognevny in https://github.com/vercel/turborepo/pull/12192
* feat: Add `packagesFromLockfile()` NAPI binding to `@turbo/repository` by @anthonyshew in https://github.com/vercel/turborepo/pull/12454
* release(library): 0.0.1-canary.21 by @github-actions[bot] in https://github.com/vercel/turborepo/pull/12455
### Examples
* examples: Update NODE_VERSION to 24.13.1 in Dockerfile by @i5d6 in https://github.com/vercel/turborepo/pull/11591
* fix: escaping for link titles in LinksService by @odaysec in https://github.com/vercel/turborepo/pull/11632
* examples: Update NODE_VERSION to 24.13.1 in Dockerfile by @i5d6 in https://github.com/vercel/turborepo/pull/11679
* docs: Replace mysql refs with postgres by @kyedavey in https://github.com/vercel/turborepo/pull/11827
* feat: Add with-otel example with pre-configured Grafana dashboard by @anthonyshew in https://github.com/vercel/turborepo/pull/12043
* examples: Upgrade with-react-native-web example to use latest versions by @serjooo in https://github.com/vercel/turborepo/pull/12085
* fix: Duplicate /signup? in Vercel URL by @04cb in https://github.com/vercel/turborepo/pull/12088
* examples: Fix markdown links inside code blocks in basic README by @sleitor in https://github.com/vercel/turborepo/pull/11946
* fix: Match `vite` and `@vitejs/plugin-react` versions on example by @GabrielBB in https://github.com/vercel/turborepo/pull/12193
* fix: Sync yarn lockfile before upgrading turbo in examples updater by @anthonyshew in https://github.com/vercel/turborepo/pull/12286
* chore: Upgrade Next.js to 16.2.0 in examples and apps by @anthonyshew in https://github.com/vercel/turborepo/pull/12389
* fix(examples): Update of `with-svelte` example by @floriansalihovic in https://github.com/vercel/turborepo/pull/11952
* fix: Use script-shell=bash for cross-platform with-shell-commands example by @Goldyvaiiii in https://github.com/vercel/turborepo/pull/12436
### Changelog
* fix: Support trailing commas in microfrontends JSONC files by @anthonyshew in https://github.com/vercel/turborepo/pull/11573
* perf: Replace third-party crates with Rust std lib equivalents by @anthonyshew in https://github.com/vercel/turborepo/pull/11569
* perf: Reduce duplicate dependency versions by @anthonyshew in https://github.com/vercel/turborepo/pull/11568
* chore: Remove legacy Go/goreleaser buildcontainer directory by @anthonyshew in https://github.com/vercel/turborepo/pull/11576
* chore: Rename README.md to RULE.md in skills directory by @anthonyshew in https://github.com/vercel/turborepo/pull/11582
* fix: Validate turbo version from lockfile for all package managers by @anthonyshew in https://github.com/vercel/turborepo/pull/11587
* fix: Add `allowComments` and `allowTrailingCommas` to turbo.json schema by @ddmoney420 in https://github.com/vercel/turborepo/pull/11579
* chore: Eliminate ts-rs serde attribute parse warnings by @anthonyshew in https://github.com/vercel/turborepo/pull/11589
* fix: Extract git argument validation into reusable helper by @anthonyshew in https://github.com/vercel/turborepo/pull/11593
* fix: Upgrade fast-xml-parser to fix RangeError DoS by @anthonyshew in https://github.com/vercel/turborepo/pull/11598
* fix: Upgrade semver to fix ReDoS vulnerability by @anthonyshew in https://github.com/vercel/turborepo/pull/11596
* fix: Upgrade tar to fix security vulnerabilities by @anthonyshew in https://github.com/vercel/turborepo/pull/11602
* fix: Upgrade @actions/github to fix @octokit vulnerabilities by @anthonyshew in https://github.com/vercel/turborepo/pull/11607
* fix: Upgrade @vercel/blob and @actions packages to fix undici vulnerability by @anthonyshew in https://github.com/vercel/turborepo/pull/11608
* docs: Running Root Tasks by @Netail in https://github.com/vercel/turborepo/pull/11630
* Update README.md title and remove features section by @anthonyshew in https://github.com/vercel/turborepo/pull/11651
* docs: Update using-environment-variables.mdx by @anthonyshew in https://github.com/vercel/turborepo/pull/11652
* fix: Upgrade js-yaml to address CVE-2025-64718 by @alexmkio in https://github.com/vercel/turborepo/pull/11650
* fix: Remove smooth scrolling from docs by @anthonyshew in https://github.com/vercel/turborepo/pull/11654
* fix: Add sitemap link to 404 page and fix TurborepoLogo gradient by @anthonyshew in https://github.com/vercel/turborepo/pull/11655
* fix: Upgrade capnp to 0.24 by @anthonyshew in https://github.com/vercel/turborepo/pull/11656
* fix: Upgrade h2 to fix CONTINUATION Flood by @anthonyshew in https://github.com/vercel/turborepo/pull/11658
* fix: Upgrade crossbeam-channel to 0.5.15 by @anthonyshew in https://github.com/vercel/turborepo/pull/11657
* chore: Remove abandoned turbo clone command by @anthonyshew in https://github.com/vercel/turborepo/pull/11673
* fix: Upgrade rustls and ring by @anthonyshew in https://github.com/vercel/turborepo/pull/11659
* fix: Upgrade openssl to 0.10.75 by @anthonyshew in https://github.com/vercel/turborepo/pull/11660
* fix: Replace unmaintained adler with adler2 by @anthonyshew in https://github.com/vercel/turborepo/pull/11661
* fix: Upgrade tar to 7.5.7 to address security vulnerabilities by @anthonyshew in https://github.com/vercel/turborepo/pull/11680
* fix: Upgrade ts-json-schema-generator to fix glob command injection vulnerability by @anthonyshew in https://github.com/vercel/turborepo/pull/11684
* fix: Upgrade fumadocs and shiki in docs to resolve mdast-util-to-hast vulnerability by @anthonyshew in https://github.com/vercel/turborepo/pull/11704
* fix: Replace ts-node with tsx to resolve diff DoS vulnerability by @anthonyshew in https://github.com/vercel/turborepo/pull/11708
* fix: Upgrade bytes to >=1.11.1 to fix RUSTSEC-2026-0007 by @anthonyshew in https://github.com/vercel/turborepo/pull/11715
* chore: Update ratatui dependencies (paste blocked upstream) by @anthonyshew in https://github.com/vercel/turborepo/pull/11717
* Revert "chore: Update ratatui dependencies (paste blocked upstream)" by @anthonyshew in https://github.com/vercel/turborepo/pull/11722
* fix: Upgrade ratatui to 0.30.0 to drop unmaintained paste crate by @anthonyshew in https://github.com/vercel/turborepo/pull/11723
* chore: Upgrade reqwest toward addressing RUSTSEC-2025-0134 by @anthonyshew in https://github.com/vercel/turborepo/pull/11718
* fix(docs): Fix code syntax highlighting by using correct Shiki CSS variable names by @anthonyshew in https://github.com/vercel/turborepo/pull/11726
* fix: Upgrade async-io to 2.x to drop unmaintained instant crate by @anthonyshew in https://github.com/vercel/turborepo/pull/11719
* fix: Migrate from unmaintained serde_yaml to serde_yml by @anthonyshew in https://github.com/vercel/turborepo/pull/11720
* fix: Upgrade test-case and merge to drop unmaintained proc-macro-error by @anthonyshew in https://github.com/vercel/turborepo/pull/11721
* fix: Upgrade indicatif to 0.18.3 to drop unmaintained number_prefix by @anthonyshew in https://github.com/vercel/turborepo/pull/11716
* refactor: Centralize configuration resolution funnel by @anthonyshew in https://github.com/vercel/turborepo/pull/11727
* fix: Upgrade rustls chain to resolve RUSTSEC-2025-0134 by @anthonyshew in https://github.com/vercel/turborepo/pull/11739
* fix: Upgrade test-case to resolve transitive proc-macro-error by @anthonyshew in https://github.com/vercel/turborepo/pull/11737
* fix: Upgrade pest/pest_derive to resolve yanked version by @anthonyshew in https://github.com/vercel/turborepo/pull/11734
* fix: Upgrade git2 to fix RUSTSEC-2026-0008 by @anthonyshew in https://github.com/vercel/turborepo/pull/11729
* fix: Upgrade pprof to fix RUSTSEC-2024-0408 by @anthonyshew in https://github.com/vercel/turborepo/pull/11730
* fix: Upgrade portable-pty to resolve RUSTSEC-2017-0008 by @anthonyshew in https://github.com/vercel/turborepo/pull/11732
* fix: Upgrade oxc_resolver to resolve yanked papaya dependency by @anthonyshew in https://github.com/vercel/turborepo/pull/11733
* fix: Upgrade futures/futures-util to resolve yanked futures-util 0.3.30 by @anthonyshew in https://github.com/vercel/turborepo/pull/11735
* fix: Replace unic-segment with unicode-segmentation in globwatch by @anthonyshew in https://github.com/vercel/turborepo/pull/11736
* fix: Replace `serde_yml` with `serde_yaml_ng` to fix RUSTSEC-2025-0067/0068 by @anthonyshew in https://github.com/vercel/turborepo/pull/11755
* fix: Replace `oxc_resolver` with `unrs_resolver` to fix yanked `papaya` dependency by @anthonyshew in https://github.com/vercel/turborepo/pull/11754
* fix: Upgrade node-plop to 0.32.3 by @anthonyshew in https://github.com/vercel/turborepo/pull/11756
* docs: Capitalizaiton in update github-actions.mdx by @anthonyshew in https://github.com/vercel/turborepo/pull/11762
* fix: Add Vary: Accept header to docs markdown endpoint by @molebox in https://github.com/vercel/turborepo/pull/11759
* chore: Agentic workflows app by @anthonyshew in https://github.com/vercel/turborepo/pull/11773
* chore: Add internal agents app for repo automation by @anthonyshew in https://github.com/vercel/turborepo/pull/11776
* chore: Update reproduction request message by @anthonyshew in https://github.com/vercel/turborepo/pull/11778
* Revert "fix: Upgrade node-plop to 0.32.3" by @anthonyshew in https://github.com/vercel/turborepo/pull/11780
* chore: Add internal agents app for repo automation by @anthonyshew in https://github.com/vercel/turborepo/pull/11781
* feat: Add internal agents app for repo automation by @anthonyshew in https://github.com/vercel/turborepo/pull/11783
* chore: Manual audits by @anthonyshew in https://github.com/vercel/turborepo/pull/11785
* chore: Fixing audit agent by @anthonyshew in https://github.com/vercel/turborepo/pull/11786
* chore: Still iterating on sec audit fixer by @anthonyshew in https://github.com/vercel/turborepo/pull/11787
* fix: Emit space for empty vt100 cells to fix TUI repaint on task switch by @anthonyshew in https://github.com/vercel/turborepo/pull/11789
* fix: Keep stdin alive for persistent tasks in stream mode by @anthonyshew in https://github.com/vercel/turborepo/pull/11793
* feat: Add internal agents app for repo automation by @anthonyshew in https://github.com/vercel/turborepo/pull/11799
* chore: Add env vars by @anthonyshew in https://github.com/vercel/turborepo/pull/11800
* fix: Handle subpath package imports in `turbo boundaries` by @anthonyshew in https://github.com/vercel/turborepo/pull/11798
* feat: Add dashboard with run tracking and live logs for agent sandboxes by @anthonyshew in https://github.com/vercel/turborepo/pull/11802
* fix: Normalize bare LF to CRLF in TUI output to prevent garbled logs by @anthonyshew in https://github.com/vercel/turborepo/pull/11804
* fix: Use private blob store access in agents app by @anthonyshew in https://github.com/vercel/turborepo/pull/11811
* fix: Pass non-empty body when initializing blob log files by @anthonyshew in https://github.com/vercel/turborepo/pull/11812
* docs: Geistdocs update by @haydenbleasel in https://github.com/vercel/turborepo/pull/11807
* fix: Allow overwriting existing blobs in run updates and log appends by @anthonyshew in https://github.com/vercel/turborepo/pull/11813
* docs: Geistdocs update 2 by @haydenbleasel in https://github.com/vercel/turborepo/pull/11814
* fix: Set 5-hour timeout on security audit sandbox by @anthonyshew in https://github.com/vercel/turborepo/pull/11815
* fix: Resolve Windows TUI hang caused by portable-pty 0.9.0 ConPTY changes by @anthonyshew in https://github.com/vercel/turborepo/pull/11816
* fix: Repair audit fixer log streaming and replace git push with patch upload by @anthonyshew in https://github.com/vercel/turborepo/pull/11818
* chore: Small stuff for agent fixer by @anthonyshew in https://github.com/vercel/turborepo/pull/11819
* chore: Bump tonic to 0.14 by @anthonyshew in https://github.com/vercel/turborepo/pull/11820
* fix: Pin @turbo/gen version to match the running turbo binary by @anthonyshew in https://github.com/vercel/turborepo/pull/11822
* fix: Use `secret_key_override` in tests to eliminate env var race condition by @anthonyshew in https://github.com/vercel/turborepo/pull/11824
* fix: Avoid panic in sandboxed environments by removing system-configuration dependency by @anthonyshew in https://github.com/vercel/turborepo/pull/11828
* fix: Harden token protection with `secrecy` crate and close exposure gaps by @anthonyshew in https://github.com/vercel/turborepo/pull/11831
* fix: Clean up orphaned Windows child processes on shutdown by @anthonyshew in https://github.com/vercel/turborepo/pull/11829
* chore: Update lockfile for release by @anthonyshew in https://github.com/vercel/turborepo/pull/11840
* fix: Sync lockfile with @turbo/gen optionalDependencies by @anthonyshew in https://github.com/vercel/turborepo/pull/11845
* docs: Update Vitest guide with projects configuration by @PeterPCW in https://github.com/vercel/turborepo/pull/11760
* fix: Prevent premature git tag push during release staging by @anthonyshew in https://github.com/vercel/turborepo/pull/11851
* fix: Replace unsafe `pre_exec`/`setsid` with `tokio process_group(0)` by @anthonyshew in https://github.com/vercel/turborepo/pull/11854
* fix: Resolve external npm packages in @turbo/gen compiled binary (#11855) by @anthonyshew in https://github.com/vercel/turborepo/pull/11856
* fix: Move `node-plop` to dependencies so `PlopTypes` resolves for consumers by @anthonyshew in https://github.com/vercel/turborepo/pull/11862
* chore: Use 2024 edition in more packages, do not ignore some clippy lโฆ by @ognevny in https://github.com/vercel/turborepo/pull/11860
* perf: Optimize hot-path hash computation by avoiding clones and using unstable sorts by @anthonyshew in https://github.com/vercel/turborepo/pull/11872
* perf: Replace twox-hash with xxhash-rust and optimize file hashing by @anthonyshew in https://github.com/vercel/turborepo/pull/11874
* fix: Restrict credential file permissions to owner-only by @anthonyshew in https://github.com/vercel/turborepo/pull/11870
* perf: Reduce allocations in globwalk by @anthonyshew in https://github.com/vercel/turborepo/pull/11528
* perf: Replace O(Vยณ) Floyd-Warshall with O(V+E) DFS in watch mode subgraph creation by @anthonyshew in https://github.com/vercel/turborepo/pull/11878
* feat: Generate LLM-friendly markdown alongside --profile trace output by @anthonyshew in https://github.com/vercel/turborepo/pull/11880
* feat: Make `--profile` and `--anon-profile` filename optional by @anthonyshew in https://github.com/vercel/turborepo/pull/11883
* perf: Batch per-package git subprocess calls into repo-wide index by @anthonyshew in https://github.com/vercel/turborepo/pull/11887
* perf: Parallelize and pre-build RepoGitIndex by @anthonyshew in https://github.com/vercel/turborepo/pull/11889
* perf: Pre-compile glob exclusion filter and cache path prefix in file hashing by @anthonyshew in https://github.com/vercel/turborepo/pull/11891
* 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
* chore: Reduce compile times by deduplicating thiserror and itertools by @anthonyshew in https://github.com/vercel/turborepo/pull/12000
* chore: Upgrade axum 0.7 to 0.8, deduplicate tower/tower-http by @anthonyshew in https://github.com/vercel/turborepo/pull/12003
* fix: Prevent peerDependencies from overwriting concrete dependency specifiers by @anthonyshew in https://github.com/vercel/turborepo/pull/12004
* fix: Resolve correct nested package version in bun lockfile pruning by @anthonyshew in https://github.com/vercel/turborepo/pull/12008
* fix: Resolve all lockfile pruning test failures by @anthonyshew in https://github.com/vercel/turborepo/pull/12009
* perf: Extract query module into turborepo-query crate by @anthonyshew in https://github.com/vercel/turborepo/pull/12007
* refactor: Migrate dry-json prysk tests to Rust + insta snapshots by @anthonyshew in https://github.com/vercel/turborepo/pull/12010
* perf: Deduplicate petgraph, fixedbitset, and dashmap by @anthonyshew in https://github.com/vercel/turborepo/pull/12011
* refactor: Migrate persistent-dependencies and task-dependencies to Rust + insta by @anthonyshew in https://github.com/vercel/turborepo/pull/12012
* test: Add lockfile-tests fixture for issue #12013 by @anthonyshew in https://github.com/vercel/turborepo/pull/12014
* perf: Remove libgit2/git2 dependency, replace with gix-object by @anthonyshew in https://github.com/vercel/turborepo/pull/12015
* refactor: Migrate daemon, jsonc, query, edit-turbo-json tests to Rust by @anthonyshew in https://github.com/vercel/turborepo/pull/12016
* perf: Remove async-graphql from turborepo-lib by @anthonyshew in https://github.com/vercel/turborepo/pull/12017
* refactor: Migrate inference and run-logging tests to Rust by @anthonyshew in https://github.com/vercel/turborepo/pull/12018
* refactor: Migrate run-caching and strict-env-vars tests to Rust by @anthonyshew in https://github.com/vercel/turborepo/pull/12020
* fix: Mark lockfile-aware-caching/bun prysk test as flaky by @anthonyshew in https://github.com/vercel/turborepo/pull/12021
* fix: Add nextest retries for flaky tests by @anthonyshew in https://github.com/vercel/turborepo/pull/12027
* refactor: Migrate prune and run-summary tests to Rust by @anthonyshew in https://github.com/vercel/turborepo/pull/12022
* fix: Add nextest retries for flaky prysk tests by @anthonyshew in https://github.com/vercel/turborepo/pull/12030
* fix: Add nextest retries for flaky prune_test::test_prune_composable_config by @anthonyshew in https://github.com/vercel/turborepo/pull/12032
* fix: Suppress npm upgrade notices in Rust integration tests by @anthonyshew in https://github.com/vercel/turborepo/pull/12033
* fix: Suppress npm upgrade notices in integration tests and consolidate test helpers by @anthonyshew in https://github.com/vercel/turborepo/pull/12036
* fix: Replace flaky pnpx symlink-dir with native NTFS junctions in find-turbo test by @anthonyshew in https://github.com/vercel/turborepo/pull/12039
* fix: Prevent corepack download prompt from hanging prysk tests on Windows by @anthonyshew in https://github.com/vercel/turborepo/pull/12041
* fix: Send OTEL metrics without requiring `--summarize` flag by @anthonyshew in https://github.com/vercel/turborepo/pull/12042
* docs: Fix incorrect otel future flag bypass claim by @anthonyshew in https://github.com/vercel/turborepo/pull/12047
* fix: Address root causes of 9 flaky tests and remove retry workarounds by @anthonyshew in https://github.com/vercel/turborepo/pull/12045
* test: Port 6 prysk CLI tests to pure Rust by @anthonyshew in https://github.com/vercel/turborepo/pull/12048
* docs: Fix experimentalObservability config reference by @bkonkle in https://github.com/vercel/turborepo/pull/12052
* test: Port 10 more prysk tests to pure Rust by @anthonyshew in https://github.com/vercel/turborepo/pull/12051
* test: Port 14 more prysk tests to Rust (single-package + commands) by @anthonyshew in https://github.com/vercel/turborepo/pull/12054
* test: Port 13 more prysk tests to Rust by @anthonyshew in https://github.com/vercel/turborepo/pull/12057
* fix: Exclude peer dependencies from workspace external dep resolution by @anthonyshew in https://github.com/vercel/turborepo/pull/12050
* test: Port all 15 workspace-configs prysk tests to Rust by @anthonyshew in https://github.com/vercel/turborepo/pull/12058
* perf: Stream file contents during hashing to lower memory usage by @anthonyshew in https://github.com/vercel/turborepo/pull/12059
* fix: Treat `npm: alias` dependencies as external, not workspace references by @anthonyshew in https://github.com/vercel/turborepo/pull/12061
* test: Port 18 more prysk tests to Rust (other/ + lockfile-aware-caching/) by @anthonyshew in https://github.com/vercel/turborepo/pull/12062
* fix: Preserve file: protocol entries in pruned yarn v1 lockfile by @anthonyshew in https://github.com/vercel/turborepo/pull/12064
* perf: Use stack-allocated OidHash in FileHashes and skip expanded hashes on normal runs by @anthonyshew in https://github.com/vercel/turborepo/pull/12065
* test: Port all 8 find-turbo prysk tests to Rust by @anthonyshew in https://github.com/vercel/turborepo/pull/12066
* fix: Support pnpm per-workspace lockfiles in turbo prune by @anthonyshew in https://github.com/vercel/turborepo/pull/12067
* test: Port final 2 prysk tests to Rust (100% complete) by @anthonyshew in https://github.com/vercel/turborepo/pull/12068
* fix: Resolve Berry prune failure when resolutions contain patch overrides by @anthonyshew in https://github.com/vercel/turborepo/pull/12069
* test: Add lockfile fixture for yarn berry resolution pruning (issue #2791) by @anthonyshew in https://github.com/vercel/turborepo/pull/12071
* refactor: Clean up test infrastructure and eliminate duplication by @anthonyshew in https://github.com/vercel/turborepo/pull/12072
* fix: Retain injected workspace package entries during pnpm lockfile pruning by @anthonyshew in https://github.com/vercel/turborepo/pull/12073
* refactor: Clean up test infrastructure + improve test quality by @anthonyshew in https://github.com/vercel/turborepo/pull/12074
* perf: Speed up lockfile test suite by @anthonyshew in https://github.com/vercel/turborepo/pull/12078
* fix: Preserve `file:` and `link:` protocol entries in pruned bun lockfile by @anthonyshew in https://github.com/vercel/turborepo/pull/12076
* fix: Stop running unnecessary npm install in engines tests by @anthonyshew in https://github.com/vercel/turborepo/pull/12081
* test: Add lockfile fixture for pnpm v9 injected workspace deps (issue #8243) by @anthonyshew in https://github.com/vercel/turborepo/pull/12082
* fix: Filter orphaned Yarn packageExtensions entries during lockfile pruning by @anthonyshew in https://github.com/vercel/turborepo/pull/12084
* fix: Align experimentalObservability on object maps rather than arrays by @bkonkle in https://github.com/vercel/turborepo/pull/12089
* fix: Prevent yarn integration tests from hanging on corepack prompts by @anthonyshew in https://github.com/vercel/turborepo/pull/12090
* fix: Prevent turbo dev from hanging when daemon file watching fails by @anthonyshew in https://github.com/vercel/turborepo/pull/12091
* perf: Optimize npm lockfile parser by @anthonyshew in https://github.com/vercel/turborepo/pull/12093
* chore: Trim unused dependency features for faster compilation by @anthonyshew in https://github.com/vercel/turborepo/pull/12094
* fix: Prevent lockfile-aware yarn test from hanging on corepack downloads by @anthonyshew in https://github.com/vercel/turborepo/pull/12095
* perf: Eliminate per-directory stat syscalls in untracked file detection by @anthonyshew in https://github.com/vercel/turborepo/pull/12096
* perf: Reduce allocations in file hash computation by @anthonyshew in https://github.com/vercel/turborepo/pull/12102
* perf: Replace SWC with oxc for JS/TS parsing by @anthonyshew in https://github.com/vercel/turborepo/pull/12098
* fix: Pre-warm corepack cache to prevent yarn/pnpm tests from hanging by @anthonyshew in https://github.com/vercel/turborepo/pull/12099
* perf: Disable unused zstd default features to reduce C compilation by @anthonyshew in https://github.com/vercel/turborepo/pull/12107
* perf: Replace `git` subprocess in worktree detection with Rust by @anthonyshew in https://github.com/vercel/turborepo/pull/12106
* test: Add turbo watch tests and refactor file change classification by @anthonyshew in https://github.com/vercel/turborepo/pull/12119
* fix(frameworks): Also check devDependencies when inferring framework in single-package mode by @sleitor in https://github.com/vercel/turborepo/pull/12056
* test: Add boundary tests for framework inference `devDependencies` support by @anthonyshew in https://github.com/vercel/turborepo/pull/12122
* fix: Stabilize flaky watch_file_change_reruns_affected_package test by @anthonyshew in https://github.com/vercel/turborepo/pull/12123
* fix: Microfrontends merges `with` into root config instead of replacing it by @anthonyshew in https://github.com/vercel/turborepo/pull/12125
* fix: Omit None otel fields during turbo prune serialization by @bkonkle in https://github.com/vercel/turborepo/pull/12126
* fix: Correct dependency iteration order so `dependencies` takes precedence over `devDependencies` by @anthonyshew in https://github.com/vercel/turborepo/pull/12129
* perf: Skip irrelevant packages when using package#task syntax by @anthonyshew in https://github.com/vercel/turborepo/pull/12135
* fix: Use delta temporality for OTel metrics export by @bkonkle in https://github.com/vercel/turborepo/pull/12136
* fix: Wait for dependsOn on first run of turbo watch by @MrNaif2018 in https://github.com/vercel/turborepo/pull/11953
* fix: Treat Bun runtime modules as builtins in Boundaries by @anthonyshew in https://github.com/vercel/turborepo/pull/12141
* feat: Add `futureFlags.longerSignatureKey` to enforce minimum HMAC key length by @anthonyshew in https://github.com/vercel/turborepo/pull/12142
* feat: Add `runAttributes` config to OTel metrics for cardinality control by @bkonkle in https://github.com/vercel/turborepo/pull/12144
* fix: Preserve deeply nested workspace deps during npm lockfile pruning by @anthonyshew in https://github.com/vercel/turborepo/pull/12146
* fix: Ensure noUpdateNotifier from turbo.json is respected by @sleitor in https://github.com/vercel/turborepo/pull/11925
* docs: Document Yarn v1 pass-through args workaround by @anthonyshew in https://github.com/vercel/turborepo/pull/12150
* fix: Add `FORCE_COLOR` and `NO_COLOR` to builtin passthrough env vars by @anthonyshew in https://github.com/vercel/turborepo/pull/12158
* test: Add integration test coverage for `--anon-profile` markdown generation by @anthonyshew in https://github.com/vercel/turborepo/pull/12157
* feat: Add AI coding agent detection telemetry by @anthonyshew in https://github.com/vercel/turborepo/pull/12159
* feat: Instrument post-hashing setup phase for trace visibility by @anthonyshew in https://github.com/vercel/turborepo/pull/12160
* perf: Fire-and-forget telemetry and analytics HTTP flushes on shutdown by @anthonyshew in https://github.com/vercel/turborepo/pull/12162
* perf: Defer lockfile await until after internal dependency resolution by @anthonyshew in https://github.com/vercel/turborepo/pull/12164
* refactor: Extract `turborepo-query-api` trait crate for compile-time decoupling by @anthonyshew in https://github.com/vercel/turborepo/pull/12165
* feat: Include version, platform, and CPU count in Chrome trace profiles by @anthonyshew in https://github.com/vercel/turborepo/pull/12166
* docs: Remove bespoke AI prompts from documentation pages by @anthonyshew in https://github.com/vercel/turborepo/pull/12167
* test: Add comprehensive path traversal tests for cache archive by @anthonyshew in https://github.com/vercel/turborepo/pull/12169
* test: Add regression tests and `OutputWatcher` trait to prepare for daemon removal from `turbo watch` by @anthonyshew in https://github.com/vercel/turborepo/pull/12171
* feat: Remove daemon from watch mode by @anthonyshew in https://github.com/vercel/turborepo/pull/12175
* perf: Defer SCM task await to overlap with setup work by @anthonyshew in https://github.com/vercel/turborepo/pull/12177
* perf: Defer cache save to after callback to unblock dependents sooner by @anthonyshew in https://github.com/vercel/turborepo/pull/12178
* chore: Add oxfmt check to pre-push hook by @anthonyshew in https://github.com/vercel/turborepo/pull/12187
* fix: Resolve pnpm catalog: specifiers to workspace dependencies in task graph by @anthonyshew in https://github.com/vercel/turborepo/pull/12185
* perf: Avoid Unconditional HTTP Client Warmup by @anthonyshew in https://github.com/vercel/turborepo/pull/12189
* perf: Scope Repo Index Untracked Discovery by @anthonyshew in https://github.com/vercel/turborepo/pull/12195
* perf: Reuse input hashes and trim pnpm lockfile allocations by @anthonyshew in https://github.com/vercel/turborepo/pull/12199
* docs: Improve Oxc tooling guide for type-aware linting and fix race conditions by @anthonyshew in https://github.com/vercel/turborepo/pull/12200
* perf: Overlap untracked file walk with builder setup by @anthonyshew in https://github.com/vercel/turborepo/pull/12201
* perf: Decouple filesystem walk from git index construction by @anthonyshew in https://github.com/vercel/turborepo/pull/12204
* perf: Race parallel git subprocesses against filesystem walk for optimal index construction by @anthonyshew in https://github.com/vercel/turborepo/pull/12206
* perf: Two-phase HTTP client init to avoid macOS Keychain blocking by @anthonyshew in https://github.com/vercel/turborepo/pull/12208
* perf: Skip redundant file writes during cache restore using manifests by @anthonyshew in https://github.com/vercel/turborepo/pull/12209
* perf: Generate cache restore manifest at save time to eliminate first-hit penalty by @anthonyshew in https://github.com/vercel/turborepo/pull/12213
* docs: Clarification in oxc guide by @anthonyshew in https://github.com/vercel/turborepo/pull/12207
* feat: Add `affectedTasks` query for task-level change detection by @anthonyshew in https://github.com/vercel/turborepo/pull/12215
* docs: Replace mermaid with reactflow-based diagram components by @anthonyshew in https://github.com/vercel/turborepo/pull/11770
* fix: Remove unnecessary dependency overrides and bump quinn-proto by @anthonyshew in https://github.com/vercel/turborepo/pull/12226
* fix: Remove all remaining pnpm dependency overrides by @anthonyshew in https://github.com/vercel/turborepo/pull/12227
* fix: Promote nested bun lockfile entries when hoisted version is pruned by @anthonyshew in https://github.com/vercel/turborepo/pull/12228
* fix: Honor --output-logs errors-only for non-cached tasks by @veeceey in https://github.com/vercel/turborepo/pull/11926
* docs: Remove CONSOLE DO NOT TRACK link by @anthonyshew in https://github.com/vercel/turborepo/pull/12232
* docs: missing `migrate` word by @anthonyshew in https://github.com/vercel/turborepo/pull/12234
* fix: Resolve root-level tasks not executing with //# CLI syntax by @anthonyshew in https://github.com/vercel/turborepo/pull/12242
* fix: Prevent run summary `SendError` panic on shutdown by @anthonyshew in https://github.com/vercel/turborepo/pull/12244
* fix: Deflake `watch_rapid_edits_produce_single_rebuild` test by @anthonyshew in https://github.com/vercel/turborepo/pull/12245
* fix: Use `FilterMode` enum for root task scoping with exclude-only filters by @Jaredw2289-svg in https://github.com/vercel/turborepo/pull/12212
* fix: Resolve package-name-shaped tsconfig path aliases by @sleitor in https://github.com/vercel/turborepo/pull/11998
* fix: Use BTreeMap for deterministic lockfile dependency ordering by @anthonyshew in https://github.com/vercel/turborepo/pull/12254
* fix: Cap rayon thread pool and `block_in_place` in tokio to prevent deadlock potential by @anthonyshew in https://github.com/vercel/turborepo/pull/12253
* feat: Add Node.js version to `turbo info` output by @anthonyshew in https://github.com/vercel/turborepo/pull/12260
* feat: Send `x-ai-agent` header on all Vercel API requests by @anthonyshew in https://github.com/vercel/turborepo/pull/12261
* fix: Deflake watch_edit_during_build_triggers_rebuild test by @anthonyshew in https://github.com/vercel/turborepo/pull/12263
* fix: Validate task names when `--affected` yields empty package scope by @anthonyshew in https://github.com/vercel/turborepo/pull/12268
* feat: Deprecate `--scope` flag for `turbo prune` by @anthonyshew in https://github.com/vercel/turborepo/pull/12269
* docs: Note that future flags affect global hash by @anthonyshew in https://github.com/vercel/turborepo/pull/12271
* fix: Align query affectedTasks with run `--affected` for `$TURBO_ROOT$` inputs by @anthonyshew in https://github.com/vercel/turborepo/pull/12270
* fix: Initialize TUI terminal in watch mode even when all tasks hit cache by @anthonyshew in https://github.com/vercel/turborepo/pull/12273
* feat: Use task graph for `watch` by @anthonyshew in https://github.com/vercel/turborepo/pull/12275
* fix: Use BTreeMap for bundled_deps in bun PackageIndex by @anthonyshew in https://github.com/vercel/turborepo/pull/12266
* fix: Fix non-deterministic hashOfExternalDependencies with Bun lockfiles by @anthonyshew in https://github.com/vercel/turborepo/pull/12279
* feat: Add `turbo query affected` CLI shorthand by @anthonyshew in https://github.com/vercel/turborepo/pull/12283
* chore: Add `turborepo-log` crate to improve our logging situation by @anthonyshew in https://github.com/vercel/turborepo/pull/12285
* fix: Ensure `pkg#task` CLI args are always included in filtered packages by @anthonyshew in https://github.com/vercel/turborepo/pull/12287
* feat: Wire up turborepo-log with TerminalSink and convert first warning by @anthonyshew in https://github.com/vercel/turborepo/pull/12289
* feat: Add git SHA and dirty hash to cache metadata by @mehulkar in https://github.com/vercel/turborepo/pull/12288
* feat: Surface cache SCM metadata in Run Summary by @mehulkar in https://github.com/vercel/turborepo/pull/12291
* fix: Inline PlopTypes in @turbo/gen to fix implicit any for consumers by @anthonyshew in https://github.com/vercel/turborepo/pull/12292
* chore: Disable update notifier for this repo by @anthonyshew in https://github.com/vercel/turborepo/pull/12293
* feat: Add TuiSink to route log events into the TUI by @anthonyshew in https://github.com/vercel/turborepo/pull/12294
* feat: Publish platform binaries under @turbo/ scoped packages by @anthonyshew in https://github.com/vercel/turborepo/pull/12296
* feat: Initialize `turborepo-log` in `turbo watch` by @anthonyshew in https://github.com/vercel/turborepo/pull/12298
* fix: Resolve git diff warning in fresh repos and make SCM state lazy by @anthonyshew in https://github.com/vercel/turborepo/pull/12300
* docs: Add VS Code Jest extension workaround to Jest guide by @anthonyshew in https://github.com/vercel/turborepo/pull/12303
* feat: Route user-facing warnings through turborepo-log and suppress tracing stderr in TUI mode by @anthonyshew in https://github.com/vercel/turborepo/pull/12299
* fix: Handle parent directory inputs in non-git repos by @anthonyshew in https://github.com/vercel/turborepo/pull/12304
* fix: Source cargo env in pre-push hook for Rust toolchain resolution by @anthonyshew in https://github.com/vercel/turborepo/pull/12306
* refactor: Convert task-access warnings to turborepo_log by @anthonyshew in https://github.com/vercel/turborepo/pull/12307
* chore: Remove internal .vscode directory by @anthonyshew in https://github.com/vercel/turborepo/pull/12309
* fix: Expand directory inputs to `dir/**` in manual SCM and git literal-path optimization by @anthonyshew in https://github.com/vercel/turborepo/pull/12305
* fix: Infer monorepo root in LSP instead of trusting editor `root_uri` by @anthonyshew in https://github.com/vercel/turborepo/pull/12308
* fix: Flush stale mouse tracking events from stdin during TUI cleanup by @anthonyshew in https://github.com/vercel/turborepo/pull/12311
* refactor: Route run prelude through turborepo_log, add StdoutSink by @anthonyshew in https://github.com/vercel/turborepo/pull/12310
* feat: Show richer remote cache status in run prelude by @anthonyshew in https://github.com/vercel/turborepo/pull/12314
* chore: Remove deprecated Spaces feature remnants by @anthonyshew in https://github.com/vercel/turborepo/pull/12316
* refactor: Route `run`/`watch` output through unified `TerminalSink` by @anthonyshew in https://github.com/vercel/turborepo/pull/12315
* refactor: Replace `tracing::log::` bridge imports with `tracing::` directly by @anthonyshew in https://github.com/vercel/turborepo/pull/12320
* refactor: Replace `Source::turbo` string literals with `Subsystem` enum by @anthonyshew in https://github.com/vercel/turborepo/pull/12321
* fix: Add check:toml to pre-push hook by @anthonyshew in https://github.com/vercel/turborepo/pull/12322
* fix: Filter phantom tasks from `affectedTasks` query results by @anthonyshew in https://github.com/vercel/turborepo/pull/12324
* refactor: Route 'no tasks executed' warning through `turborepo-log` and add task prefix to `TerminalSink` by @anthonyshew in https://github.com/vercel/turborepo/pull/12326
* feat: Allow cyclic package graphs, validate only at task graph level by @anthonyshew in https://github.com/vercel/turborepo/pull/12327
* fix: Detect affected tasks with `$TURBO_ROOT$` inputs when using `affectedUsingTaskInputs` by @anthonyshew in https://github.com/vercel/turborepo/pull/12331
* feat: Extend `LogSink` with task output and grouping support by @anthonyshew in https://github.com/vercel/turborepo/pull/12328
* fix: Support private GitHub repos in `turbo gen workspace --copy` by @anthonyshew in https://github.com/vercel/turborepo/pull/12333
* feat: Add `GroupingLayer` for per-task output buffering by @anthonyshew in https://github.com/vercel/turborepo/pull/12334
* fix: Hardening for supporting private GitHub repos in `turbo gen workspace --copy` by @anthonyshew in https://github.com/vercel/turborepo/pull/12336
* refactor: Wire `GroupingLayer` into `Visitor` and migrate task error/warn to `turborepo-log` by @anthonyshew in https://github.com/vercel/turborepo/pull/12337
* perf: Replace subprocess repo index with in-process `gix-index` by @anthonyshew in https://github.com/vercel/turborepo/pull/12339
* fix: Prevent `$TURBO_DEFAULT$` from matching unrelated root files in affected detection by @anthonyshew in https://github.com/vercel/turborepo/pull/12341
* feat: Route child process bytes through TaskHandle with sink-owned prefix rendering by @anthonyshew in https://github.com/vercel/turborepo/pull/12343
* feat: Deprecate graphviz-dependent -`-graph` formats, add native SVG rendering by @anthonyshew in https://github.com/vercel/turborepo/pull/12344
* refactor: Migrate cache replay and status messages to `TaskHandle`, remove `CacheOutput` trait by @anthonyshew in https://github.com/vercel/turborepo/pull/12345
* refactor: Remove old output pipeline and document logging architecture by @anthonyshew in https://github.com/vercel/turborepo/pull/12348
* chore: Move section in CONTRIBUTING.md by @anthonyshew in https://github.com/vercel/turborepo/pull/12350
* chore: Update undici dependency version to 6.24.0 by @hack-313-ip in https://github.com/vercel/turborepo/pull/12352
* docs: Clean up `futureFlags` description by @anthonyshew in https://github.com/vercel/turborepo/pull/12355
* feat: Deprecate `--parallel` flag by @anthonyshew in https://github.com/vercel/turborepo/pull/12357
* fix: Resolve $turbo-get-mfe-port by packageName when application key differs by @prudentbird in https://github.com/vercel/turborepo/pull/12149
* fix: Preserve all bun lockfile overrides during prune by @anthonyshew in https://github.com/vercel/turborepo/pull/12362
* feat: Include `globalDependencies` in prune behind Future Flag by @anthonyshew in https://github.com/vercel/turborepo/pull/12360
* feat: Add `filterUsingTasks` future flag for task-level `--filter` resolution by @anthonyshew in https://github.com/vercel/turborepo/pull/12363
* fix: Suppress noisy rustls TLS warning on stderr by @anthonyshew in https://github.com/vercel/turborepo/pull/12365
* docs: Fix typo in Turbo 2.7 blog post by @Rohan5commit in https://github.com/vercel/turborepo/pull/12367
* fix: Fall back to bundled certificates when system cert store is inaccessible by @anthonyshew in https://github.com/vercel/turborepo/pull/12371
* fix: Pass `TURBO_*` env vars through to child processes in Strict Mode by @anthonyshew in https://github.com/vercel/turborepo/pull/12372
* fix: Improve accessibility for docs by @anthonyshew in https://github.com/vercel/turborepo/pull/12375
* fix: Preserve package.json key order during `turbo prune` with pnpm patches by @anthonyshew in https://github.com/vercel/turborepo/pull/12376
* fix: Detect scoped `@turbo/{platform}` packages in local binary resolution by @EmojiPati in https://github.com/vercel/turborepo/pull/12386
* fix: Support legacy unscoped binary package names in Node.js shim by @anthonyshew in https://github.com/vercel/turborepo/pull/12391
* fix: Prevent `stdin` from being dropped for persistent tasks in stream mode by @anthonyshew in https://github.com/vercel/turborepo/pull/12394
* docs: Add link to Docker guide in prune --docker flag section by @styfle in https://github.com/vercel/turborepo/pull/12401
* feat: Add `global` configuration key behind `futureFlags.globalConfiguration` by @anthonyshew in https://github.com/vercel/turborepo/pull/12399
* chore: Update CODEOWNERS to remove /docs owner by @anthonyshew in https://github.com/vercel/turborepo/pull/12402
* fix: Move docs app icons into app/ directory by @anthonyshew in https://github.com/vercel/turborepo/pull/12403
* feat: Add experimental structured logging with `--json` and `--log-file` flags by @anthonyshew in https://github.com/vercel/turborepo/pull/12405
* docs: Downgrade Next.js by @anthonyshew in https://github.com/vercel/turborepo/pull/12408
* chore: Deprecate the `turbo scan` command by @anthonyshew in https://github.com/vercel/turborepo/pull/12406
* chore: Upgrade Next.js by @anthonyshew in https://github.com/vercel/turborepo/pull/12415
* Revert "fix: Flush stale mouse tracking events from stdin during TUI cleanup" by @anthonyshew in https://github.com/vercel/turborepo/pull/12416
* fix: Add NixOS environment variables to default passthroughs by @anthonyshew in https://github.com/vercel/turborepo/pull/12417
* fix: Resolve security vulnerabilities in `tar` and `rustls-webpki` by @anthonyshew in https://github.com/vercel/turborepo/pull/12418
* docs: Promote `turbo query` from experimental to stable by @anthonyshew in https://github.com/vercel/turborepo/pull/12421
* docs: Clarify `turbo-ignore`'s future by @anthonyshew in https://github.com/vercel/turborepo/pull/12422
* feat: Rework `turbo ls` to use `query` internals and add `turbo query ls` shorthand by @anthonyshew in https://github.com/vercel/turborepo/pull/12424
* docs: Clarify environment variables across packages dependency behavior by @ramanverse in https://github.com/vercel/turborepo/pull/12390
* docs: Expand subpath imports example by @lilianakatrina684-a11y in https://github.com/vercel/turborepo/pull/12412
* fix: Preserve source dependencies when adding workspace deps in `turbo-gen` by @sleitor in https://github.com/vercel/turborepo/pull/11935
* docs: Add Git history requirements to `turbo query affected` docs by @anthonyshew in https://github.com/vercel/turborepo/pull/12426
* fix: Prevent horizontal overflow from long inline code on narrow viewports by @anthonyshew in https://github.com/vercel/turborepo/pull/12428
* feat: Send git SHA and dirty hash to remote cache by @mehulkar in https://github.com/vercel/turborepo/pull/12427
* fix: Upgrade tokio to 1.47.1+ to fix pidfd_reaper panic by @anthonyshew in https://github.com/vercel/turborepo/pull/12431
* docs: Add AI guide to sidebar navigation by @anthonyshew in https://github.com/vercel/turborepo/pull/12438
* docs: Move `experimentalObservability` into `futureFlags` section by @anthonyshew in https://github.com/vercel/turborepo/pull/12439
* fix: Skip Unix domain sockets and other special files during file hashing by @anthonyshew in https://github.com/vercel/turborepo/pull/12445
* fix: Preserve dedupePeers and unknown pnpm lockfile settings by @attehuhtakangas in https://github.com/vercel/turborepo/pull/12443
* fix: Align dry run cache status with normal run by checking caching guards by @anthonyshew in https://github.com/vercel/turborepo/pull/12448
* fix: Resolve turbo watch hang with mixed interruptible persistent tasks by @anthonyshew in https://github.com/vercel/turborepo/pull/12449
* fix: Avoid `setsid()` in PTY spawn to prevent macOS Gatekeeper CPU spikes by @anthonyshew in https://github.com/vercel/turborepo/pull/12452
* refactor: Move cache hit SHA context to verbose logging by @mehulkar in https://github.com/vercel/turborepo/pull/12435
* docs: Add missing --force flag documentation by @Goldyvaiiii in https://github.com/vercel/turborepo/pull/12440
* fix: Prevent panic in `turbo watch` with persistent tasks by @anthonyshew in https://github.com/vercel/turborepo/pull/12459
* fix: Support `turbo watch` in single-package workspaces by @anthonyshew in https://github.com/vercel/turborepo/pull/12460
* fix: Missing deps after npm lockfile parsing by @anthonyshew in https://github.com/vercel/turborepo/pull/12464
* docs: Add AI agent detection and automatic markdown rewrites by @molebox in https://github.com/vercel/turborepo/pull/12462
* fix: Resolve generator name conflicts across workspaces by @anthonyshew in https://github.com/vercel/turborepo/pull/12467
* fix: Remove root package.json from `--affected` global triggers by @anthonyshew in https://github.com/vercel/turborepo/pull/12469
* fix: Show run summary after TUI exits by @anthonyshew in https://github.com/vercel/turborepo/pull/12471
* fix: Avoid panic for unanchorable/non-UTF8 git paths by @biru-codeastromer in https://github.com/vercel/turborepo/pull/11106
* feat: Accept `experimentalCI` key in turbo.json task config by @anthonyshew in https://github.com/vercel/turborepo/pull/12480
* fix: Prevent pnpm overrides from corrupting resolved peer-dep variants by @frankeld in https://github.com/vercel/turborepo/pull/12482
* fix: Skip writing unchanged files during slow-path cache restore by @anthonyshew in https://github.com/vercel/turborepo/pull/12484
* fix: Replace pre-existing symlinks with directories during cache restore by @anthonyshew in https://github.com/vercel/turborepo/pull/12488
* fix: Follow symlinks during workspace package discovery by @anthonyshew in https://github.com/vercel/turborepo/pull/12489
* fix: Reduce inotify watch count via gitignore-aware directory walking on Linux by @antoinelyset in https://github.com/vercel/turborepo/pull/12398
## New Contributors
* @bestickley made their first contribution in https://github.com/vercel/turborepo/pull/11571
* @marko-hologram made their first contribution in https://github.com/vercel/turborepo/pull/11580
* @ddmoney420 made their first contribution in https://github.com/vercel/turborepo/pull/11579
* @i5d6 made their first contribution in https://github.com/vercel/turborepo/pull/11591
* @Netail made their first contribution in https://github.com/vercel/turborepo/pull/11630
* @alexmkio made their first contribution in https://github.com/vercel/turborepo/pull/11650
* @haydenbleasel made their first contribution in https://github.com/vercel/turborepo/pull/11807
* @kyedavey made their first contribution in https://github.com/vercel/turborepo/pull/11827
* @PeterPCW made their first contribution in https://github.com/vercel/turborepo/pull/11760
* @bkonkle made their first contribution in https://github.com/vercel/turborepo/pull/11130
* @serjooo made their first contribution in https://github.com/vercel/turborepo/pull/12085
* @04cb made their first contribution in https://github.com/vercel/turborepo/pull/12088
* @sleitor made their first contribution in https://github.com/vercel/turborepo/pull/11946
* @MrNaif2018 made their first contribution in https://github.com/vercel/turborepo/pull/11953
* @veeceey made their first contribution in https://github.com/vercel/turborepo/pull/11926
* @GabrielBB made their first contribution in https://github.com/vercel/turborepo/pull/12193
* @Jaredw2289-svg made their first contribution in https://github.com/vercel/turborepo/pull/12212
* @hack-313-ip made their first contribution in https://github.com/vercel/turborepo/pull/12352
* @prudentbird made their first contribution in https://github.com/vercel/turborepo/pull/12149
* @Rohan5commit made their first contribution in https://github.com/vercel/turborepo/pull/12367
* @EmojiPati made their first contribution in https://github.com/vercel/turborepo/pull/12386
* @ramanverse made their first contribution in https://github.com/vercel/turborepo/pull/12390
* @lilianakatrina684-a11y made their first contribution in https://github.com/vercel/turborepo/pull/12412
* @floriansalihovic made their first contribution in https://github.com/vercel/turborepo/pull/11952
* @Goldyvaiiii made their first contribution in https://github.com/vercel/turborepo/pull/12436
* @attehuhtakangas made their first contribution in https://github.com/vercel/turborepo/pull/12443
* @frankeld made their first contribution in https://github.com/vercel/turborepo/pull/12482
* @antoinelyset made their first contribution in https://github.com/vercel/turborepo/pull/12398
**Full Changelog**: https://github.com/vercel/turborepo/compare/v2.8.0...v2.9.0