What's Changed
Changelog
- chore: Release Turborepo 2.10.12 by @github-actions[bot] in #13844
- fix: Remove unsupported remote cache environment variable by @anthonyshew in #13845
- fix: Copy TUI selections locally over SSH by @anthonyshew in #13847
- feat: Use uv workspace metadata by @anthonyshew in #13848
- feat: Support Python virtual environments by @anthonyshew in #13849
- fix: Scope uv lockfile affectedness by @anthonyshew in #13850
- test: Isolate uv prune configuration by @anthonyshew in #13851
- fix: Explain disabled uv task caching by @anthonyshew in #13852
- fix: Explain uv identity probe failures by @anthonyshew in #13853
- fix: Explain uncached Cargo library builds by @anthonyshew in #13855
- fix: Explain disabled Cargo task caching by @anthonyshew in #13854
- fix: Keep Cargo tasks runnable without compiler identity by @anthonyshew in #13857
- chore: Release Turborepo 2.10.13-canary.1 by @github-actions[bot] in #13858
- feat: Support Cargo root packages by @anthonyshew in #13856
- feat(repository): Expose flat lockfile package list for metrics by @anthonyshew in #13859
- chore: Release Turbo repository packages 0.0.1-canary.25 by @github-actions[bot] in #13860
- docs: Upgrade Geistdocs to 1.25.1 by @molebox in #13861
- feat: Expand repository lockfile package metadata by @anthonyshew in #13862
- chore: Release Turbo repository packages 0.0.1-canary.26 by @github-actions[bot] in #13863
- fix: Restrict Factory to review comments by @anthonyshew in #13864
- fix: Pluralize package count in run prelude by @vercel-gh-bot-3[bot] in #13865
- chore: Update with-vite example by @vercel-gh-bot-3[bot] in #13866
- chore: Add searchable workspace model picker by @vercel-gh-bot-4[bot] in #13870
- fix: Restore docs client navigation by @molebox in #13872
- chore: Improve Factory workspace statuses by @vercel-gh-bot-4[bot] in #13869
- chore: Clarify Factory pull request descriptions by @vercel-gh-bot-4[bot] in #13871
- fix: Refresh Factory workspaces from main by @vercel-gh-bot-3[bot] in #13873
- perf: Speed up plain package listings by @vercel-gh-bot-5[bot] in #13868
- fix: Detect package-level turbo.jsonc by @cuishuang in #13875
- fix: Format Slack pull request notifications by @vercel-gh-bot-4[bot] in #13877
- feat: Link workspaces to pull requests by @vercel-gh-bot-4[bot] in #13878
- chore: Upgrade repository to pnpm 12 by @vercel-gh-bot-5[bot] in #13879
- chore: Update with-vite-react example by @vercel-gh-bot-5[bot] in #13880
- chore: Improve Factory chat streaming by @vercel-gh-bot-5[bot] in #13881
- fix: Show workspace failure details by @vercel-gh-bot-4[bot] in #13884
- chore: Add selectable Factory coding harnesses by @vercel-gh-bot-4[bot] in #13887
- fix: Gracefully handle native lockfile failures by @vercel-gh-bot-5[bot] in #13886
- chore: Update merged PR Slack messages by @vercel-gh-bot-3[bot] in #13888
- fix: Show native tasks in task listings by @vercel-gh-bot-3[bot] in #13889
- docs: Clarify turbo ls stability in Agent Skill by @Divyansh151005 in #13892
- chore: Resume workspace chat on refocus by @vercel-gh-bot-2[bot] in #13894
- chore: Preserve HarnessAgent bridge assets by @vercel-gh-bot-5[bot] in #13896
- fix: Deduplicate multi-language watch hashes by @vercel-gh-bot-5[bot] in #13897
- fix: Normalize multi-language cache environment inputs by @vercel-gh-bot-4[bot] in #13898
- chore: Add workspace diff view by @vercel-gh-bot-5[bot] in #13900
- refactor: Migrate CLI parser to usage-rs by @anthonyshew in #13890
- fix: Update --filter help links to canonical docs URL by @Divyansh151005 in #13891
- chore: Update with-vue-nuxt example by @vercel-gh-bot-5[bot] in #13901
- docs: Document missing reference flags and fix query typo by @Divyansh151005 in #13902
- docs: Align CONTRIBUTING Node and pnpm versions by @Divyansh151005 in #13883
- perf: Skip Cargo resolution for workspace-only queries by @vercel-gh-bot-4[bot] in #13903
- fix: Bound memory usage for streamed task output by @anthonyshew in #13908
- fix: Clarify generator action reporting by @anthonyshew in #13910
- fix: Bump tar to 7.5.22 in @turbo/releaser (CVE-2026-73566) by @anthonyshew in #13911
- fix: Correct devtools --port default in CLI help by @Divyansh151005 in #13905
- fix: Resolve lint errors by @anthonyshew in #13912
- fix: Stabilize Rust builds on macOS by @anthonyshew in #13913
- docs: Clean up Rust docs by @anthonyshew in #13914
- fix: Preserve task metadata for command overrides by @anthonyshew in #13915
- perf: Resolve Git SCM state in one process by @vercel-gh-bot-2[bot] in #13882
- fix: Only treat files literally named .gitignore as ignore files in the untracked walk by @Nixxx19 in #13916
- fix: Pass merge_base and allow_unknown_objects in signature order for task-level filter ranges by @Nixxx19 in #13917
- fix: Hash deferred inputs after dependencies by @vercel-gh-bot-3[bot] in #13919
- test: Make Cargo hash fixtures hermetic by @anthonyshew in #13920
- fix: Allow release versioning with pending changes by @anthonyshew in #13921
- chore: Update to Rust 1.98.0 by @ognevny in #13821
- chore: Upgrade Factory to Fable 5.1 by @vercel-gh-bot-3[bot] in #13924
- docs: Align Python guide with Rust guide by @anthonyshew in #13927
- fix: Give the package changes watcher the future flags so root inputs reach the task filter by @Nixxx19 in #13926
- fix: Support pnpm 6 single-package lockfiles by @anthonyshew in #13928
- feat: Add skipPackageGraph option to @turbo/repository Workspace.find by @anthonyshew in #13929
- fix: Use pnpm 12 in library release containers by @anthonyshew in #13930
- fix: Upgrade repository N-API build tooling by @anthonyshew in #13931
- fix: Use Node 20 for musl library builds by @anthonyshew in #13933
- fix: Bootstrap musl builds with sh by @anthonyshew in #13934
- fix: Use static library bootstrap shell by @anthonyshew in #13935
- fix: Allow unclean tree in bump-version by @anthonyshew in #13936
- fix: Skip git commit in bump-version by @anthonyshew in #13937
- fix: Expect napi 3 artifact paths by @anthonyshew in #13938
- chore: Release Turbo repository packages 0.0.1-canary.27 by @github-actions[bot] in #13939
- perf: Batch package detail queries by @vercel-gh-bot-5[bot] in #13923
- docs: Touch-ups for Python and Rust docs by @anthonyshew in #13940
- chore: Update basic example by @vercel-gh-bot-3[bot] in #13922
- fix: Avoid oxlint false positive on Workspace.find options by @anthonyshew in #13941
- chore: Update kitchen-sink example by @vercel-gh-bot-3[bot] in #13945
- fix: Hash native workspace task inputs by @anthonyshew in #13947
- chore: Update with-angular example by @vercel-gh-bot-2[bot] in #13951
- fix: Recompute eager hashing flag after prepending global inputs by @Nixxx19 in #13949
- refactor: Generalize daemon repository discovery by @cuishuang in #13946
- feat: Make daemon discovery toolchain generic by @anthonyshew in #13952
- feat: Add experimental Go workspace graph foundation by @anthonyshew in #13953
- feat: Add native Go task tables by @anthonyshew in #13954
- feat: Add Go task input and output contracts by @anthonyshew in #13955
- test: Cover native Go execution end to end by @anthonyshew in #13956
- feat: Add Go external resolution fingerprints by @anthonyshew in #13957
- feat: Fingerprint Go toolchain environment by @anthonyshew in #13958
- feat: Add Go change observations by @anthonyshew in #13959
- test: Cover Go query and summary surfaces by @anthonyshew in #13960
- feat: Add Go-aware prune planning by @anthonyshew in #13961
- test: Add end-to-end Go prune and cache coverage by @anthonyshew in #13962
- docs: Document experimental native Go workspaces by @anthonyshew in #13963
- fix: Harden Go workspace diagnostics by @anthonyshew in #13964
- fix: Correct Go workspace resolution and task caching by @vercel-gh-bot-2[bot] in #13966
- chore: Add Factory thinking controls and message queue by @vercel-gh-bot-3[bot] in #13967
- chore: Remove ARCHITECTURE.md docs by @anthonyshew in #13969
- fix: Add slug to OPTIONS request by @y-lakhdar in #13943
- perf: Parse CLI exits before starting worker pools by @anthonyshew in #13971
- perf: Reuse compiled workspace matchers by @anthonyshew in #13970
- chore: Revert bundled startup optimizations by @anthonyshew in #13982
- perf: Fast-path numeric package manager versions by @anthonyshew in #13973
- perf: Stop inference after selecting a workspace root by @anthonyshew in #13980
- perf: Reuse compiled workspace matchers by @anthonyshew in #13984
- perf: Skip unnecessary glob normalization by @anthonyshew in #13979
- perf: Cache workspace configuration lookups by @anthonyshew in #13975
- perf: Avoid regexes for simple environment matching by @anthonyshew in #13974
- perf: Reuse canonical paths during repository discovery by @anthonyshew in #13976
- perf: Skip work for disabled telemetry by @anthonyshew in #13972
- perf: Defer filesystem checks for absent configs by @anthonyshew in #13977
- perf: Compile workspace glob combinators directly by @anthonyshew in #13978
- docs(skills): fix the dependencies-only filter caret position by @timsnadden in #13965
- chore: Update with-biome example by @vercel-gh-bot-4[bot] in #13983
- fix: Normalize bare directory outputs when filtering dependencyOutputs hashes by @Nixxx19 in #13932
- chore: Scope panic lint allows in hash crates to tests and generated code by @BABTUNA in #13810
- perf: Use binary search for resolution states by @anthonyshew in #13986
- perf: Use dense membership for task graph pruning by @anthonyshew in #13987
- perf: Throttle TUI tick cadence by @anthonyshew in #13988
- perf: Fast-path package-only filter selectors with --only by @anthonyshew in #13990
- perf: Avoid materializing npm's legacy dependency tree by @anthonyshew in #13993
- perf: Stream custom repository downloads to disk by @anthonyshew in #13994
- perf: Copy shared file dependencies once per destination during prune by @anthonyshew in #13995
- perf: Index npm workspace links during subgraph extraction by @anthonyshew in #13997
- perf: Cache Turbo config reads across ESLint rule invocations by @anthonyshew in #13998
- perf: Scope untracked-file discovery to filtered runs by @anthonyshew in #13991
- perf: Limit turbo.json preloading to required task scope by @anthonyshew in #13992
- ci: Restrict release signing to main by @anthonyshew in #13985
- perf: Coalesce glob-watcher invalidation snapshots by @anthonyshew in #13996
- perf: Reuse resolver inference during file tracing by @anthonyshew in #13999
- chore: Release Turborepo 2.10.13-canary.2 by @github-actions[bot] in #14000
- chore: Exclude turbo and @turbo/* from minimum release age by @anthonyshew in #14005
- perf: Binary search boundaries comments before each import by @anthonyshew in #14003
- perf: Fetch only npm dist tags in the binary version endpoint by @anthonyshew in #14007
- perf: Compute Devtools graph depths without rescanning every edge by @anthonyshew in #14001
- perf: Reuse package manager detection during create startup by @anthonyshew in #14006
- perf: Borrow workspace entries during dependency lookup by @anthonyshew in #14002
- perf: Cache LSP task index and dedupe identities in constant time by @anthonyshew in #14008
- perf: Deduplicate recursive glob prefixes before walking by @anthonyshew in #14004
- perf: Batch boundaries progress updates by @anthonyshew in #14009
- perf: Reuse archive anchor during cache creation by @anthonyshew in #14010
- perf: Bound remote-cache transfer memory instead of retaining whole artifacts by @anthonyshew in #14011
- perf: Build cache archives once for local and remote writes by @anthonyshew in #14012
- perf: Make VS Code binary discovery and LSP probes nonblocking by @anthonyshew in #14015
- perf: Avoid serializing ASTs for path-only file dependency queries by @anthonyshew in #14016
- perf: Share source text across boundaries diagnostics instead of copying it per error by @anthonyshew in #14014
- perf: Parse the lockfile once when opening a native Workspace with its graph by @anthonyshew in #14017
- docs: Document a focused Cargo build for CLI-only development by @anthonyshew in #14018
- perf: Run the docs MDX generator once per quality task graph by @anthonyshew in #14019
- perf: Keep package bundling inside a cacheable build boundary by @anthonyshew in #14020
- perf: Skip speculative content hashing for size-changed unnormalized tracked files by @anthonyshew in #14021
- perf: Move synchronous cache archiving off Tokio runtime workers by @anthonyshew in #14013
- perf: Index package directories for changed-file ownership lookups by @anthonyshew in #14022
- perf: Bound TUI raw-output retention independently of scrollback by @anthonyshew in #14024
- perf: Coalesce package rediscovery while a scan is already running by @anthonyshew in #14023
- perf: Replace repeated deferred-hash scans with dependency-driven readiness by @anthonyshew in #14025
- perf: Read child output in bounded chunks instead of per-line by @anthonyshew in #14026
- perf: Share one repo index across same-package spec rehashes in watch mode by @anthonyshew in #14027
- test: Deflake rediscovery_coalesces_during_in_flight_scan by @anthonyshew in #14029
- perf: Reuse the package graph across partial watch reruns by @anthonyshew in #14028
- test: Deflake Go watch CI by @anthonyshew in #14031
- chore: Release Turborepo 2.10.13-canary.3 by @github-actions[bot] in #14032
- docs: Group experimental languages and link the Go RFC by @anthonyshew in #14034
- chore: Update with-docker example by @vercel-gh-bot-2[bot] in #14035
- perf: Avoid cloning package list in turbo ls by @vercel-gh-bot-5[bot] in #14036
- fix: Restore leading flags for implicit run commands by @anthonyshew in #14037
- fix: Include experimentalCI in task hashes by @anthonyshew in #14038
- chore: Release Turborepo 2.10.13-canary.4 by @github-actions[bot] in #14039
- docs: Explain circular package dependencies in boundaries by @vercel-gh-bot-2[bot] in #14042
- docs: Document circular dependencies in boundaries by @vercel-gh-bot-2[bot] in #14041
- fix: Preserve Yarn resolution declaration order by @anthonyshew in #14045
- fix: Avoid duplicate interrupts during task shutdown by @anthonyshew in #14046
- fix: Preserve nested Bun package keys by @vercel-gh-bot-5[bot] in #14050
- chore: Update with-mcp-servers example by @vercel-gh-bot-2[bot] in #14049
- chore: Release Turborepo 2.10.13-canary.5 by @github-actions[bot] in #14051
- fix: Preserve native task dependencies across entrypoints by @anthonyshew in #14047
- fix: Pass through LOCALAPPDATA by default by @vercel-gh-bot-2[bot] in #14056
- chore: Release Turborepo 2.10.13-canary.6 by @github-actions[bot] in #14057
- docs: Fix some typos by @DominikRusso in #14058
- feat: Add Remix inference and
NUXT_ENV_*wildcard by @Pcmhacker-piro in #14060 - fix: Return resolved package names for aliases by @vercel-gh-bot-2[bot] in #14061
- chore: Release Turbo repository packages 0.0.1-canary.28 by @github-actions[bot] in #14062
- feat: Add NEXT_DEPLOYMENT_ID to Next.js framework inference by @anthonyshew in #14065
New Contributors
- @cuishuang made their first contribution in #13875
- @Divyansh151005 made their first contribution in #13892
- @Nixxx19 made their first contribution in #13916
- @y-lakhdar made their first contribution in #13943
- @timsnadden made their first contribution in #13965
- @BABTUNA made their first contribution in #13810
- @DominikRusso made their first contribution in #14058
- @Pcmhacker-piro made their first contribution in #14060
Full Changelog: v2.10.12...v2.10.13