ci(deps): update ci dependencies #272

Merged
renovate-bot merged 1 commit from renovate-ci into main 2026-09-23 09:55:03 +00:00
Member

This PR contains the following updates:

Package Change Age Confidence Type Update Pending
@types/node (source) 25.9.7 → 25.9.8 age confidence devDependencies patch
@types/node (source) 26.6.1 → 26.6.2 age confidence devDependencies patch
git.zarantonello.dev/infra/ci-pnpm (source) v1.1.8 → v1.1.9 age confidence final patch
git.zarantonello.dev/projects/events-cash-register-ci (source) v2026.09.19.1 → v2026.09.20.1 age confidence container patch
git.zarantonello.dev/projects/events-cash-register-ci (source) v2026.09.19.1 → v2026.09.20.1 age confidence patch
https://git.zarantonello.dev/projects/forgejo-agent v1.11.2 → v1.11.3 age confidence action patch
pnpm (source) 12.4.2 → 12.5.1 age confidence packageManager minor
prettier (source) 3.9.7 → 3.9.8 age confidence devDependencies patch 3.9.9
quay.io/containers/aio b89bca5 → c23be6f container digest
turbo (source) 2.10.13 → 2.11.2 age confidence minor 2.11.3
turbo (source) 2.10.13 → 2.11.2 age confidence devDependencies minor 2.11.3

Release Notes

projects/forgejo-agent (https://git.zarantonello.dev/projects/forgejo-agent)

v1.11.3

Compare Source

Bug Fixes
pnpm/pnpm (pnpm)

v12.5.1: pnpm 12.5.1

Compare Source

Patch Changes

  • pnpm now reports an unknown task setting in pnpm-workspace.yaml and carries on. It used to refuse to start, so a project could not use a task setting that only the pnpm version its packageManager pins reads. The setting is still an error when the running pnpm is that pinned version.

  • Python interpreter installation now retries historical release metadata requests. It caches the release list for up to 24 hours and refreshes it once after a lookup miss. When a release omits the current platform, the search samples at most eight other releases before reporting that the lookup is inconclusive.

  • Python registries entries now route packages by exact names or trailing-prefix patterns in packages. Registry declaration order no longer affects resolution. A matched package resolves exclusively from its assigned registry, including transitive and build dependencies. Use packages: ["*"] to declare the default index.

  • pnpm install no longer fails with "Too many levels of symbolic links" when a Cargo configuration file above the workspace is a symlink, such as a ~/.cargo/config.toml linked from a dotfiles repository.

  • pnpm install now returns "Already up to date" in a workspace where dedupeDirectDeps left a project without a node_modules directory of its own. Such a project forced a full install on every run.

  • pnpm install no longer refuses the repeat-install fast path just because a changed pnpm-lock.yaml is 16 MiB or larger. Such a lockfile forced a full install on the run after every change.

Platinum Sponsors

Bit OpenAI Notion
CodeRabbit

Gold Sponsors

Sanity Discord Vite
SerpApi Stackblitz Workleap
Nx Latitude

v12.5.0: pnpm 12.5

Compare Source

pnpm 12.5.0 makes Python a first-class ecosystem, accepts Package URLs in pnpm add, names whole platforms in supportedArchitectures, and gives tasks machine-wide concurrency limits. It also fixes an install that could reuse one package's downloaded tarball for another.

Minor Changes

Installing packages
  • pnpm add accepts a Package URL in place of a package name. pnpm add pkg:npm/[email protected] saves express to package.json. pnpm add pkg:cargo/[email protected] saves serde to Cargo.toml. pnpm add pkg:pypi/[email protected] saves requests to pyproject.toml. pkg is now a reserved specifier prefix, whatever case it is written in, so a named registry can no longer be called pkg.

  • A registries entry can now name the ecosystem it serves.

    registries:
      https://internal.example/simple/:
        ecosystem: pypi
      https://pypi.org/simple/:
        ecosystem: pypi
      https://index.crates.io/:
        ecosystem: cargo
    

    ecosystem accepts npm, cargo and pypi. An entry that does not name one serves npm, as every entry did before.

    An ecosystem with several indexes searches them in the order they are declared. The first index that has a package supplies it, so the one declared last answers what none before it had.

    A registries entry may not carry credentials. pnpm reads them from .npmrc, matched by origin, for a PyPI index as for every other package source.

Configuring pnpm
  • supportedArchitectures now accepts a list of platforms, in place of the os, cpu and libc axes.

    supportedArchitectures:
      - linux-x64
      - darwin-arm64
      - win32-x64
    

    An install prepares for the platforms the list names, and for those only. A platform reads as <os>-<cpu>, with a C library on Linux, as in linux-x64-musl or linux-x64-manylinux_2_28. The Rust target triple of the same machine is accepted too, so x86_64-unknown-linux-gnu names the platform linux-x64 names. A Linux platform that names no C library is the glibc platform. current is the platform the install runs on.

    The os, cpu and libc mapping keeps working and keeps its meaning.

  • Added concurrency groups for tasks. A task in pnpm-workspace.yaml can name a concurrencyGroup. The new concurrencyGroups setting gives each group a limit. At most that many tasks of the group run at once on the machine, counted across every pnpm process, pnpm pipeline included. A task past the limit waits for a running one to finish. A script that calls pnpm run for a task of the same group runs under the slot its parent holds.

    tasks:
      test:rust:
        concurrencyGroup: cargo
    concurrencyGroups:
      cargo: 2
    
  • tools names the programs pnpm downloads, and mirror says where each one comes from.

    tools:
      node:
        mirror: https://mirror.example.com/node/download
        channels:
          nightly: https://nightly.example.com/
      bun:
        mirror: https://mirror.example.com/bun
      python:
        mirror: https://mirror.example.com/python-build-standalone/releases
    

    node, bun and python can be named. Any other tool is refused.

    mirror is the base a tool's own layout hangs off.

    channels sends one release channel elsewhere. A channel neither it nor node-mirror:<channel> names is left to mirror. Only node publishes channels, so naming them for another tool is refused.

    Set it in the global config.yaml or in PNPM_CONFIG_TOOLS. A pnpm-workspace.yaml that names a tool mirror is ignored.

    pnpm pack-app downloads the Node.js it embeds through tools.node. node-mirror:<channel> keeps working and names the same thing as an entry under channels.

Python interpreters and environments
  • pnpm install now chooses a Python interpreter for each project instead of installing every project with one interpreter #​14945. A project is installed with the first interpreter on the machine that its requires-python accepts, so a workspace can hold projects that support different Python versions. pnpm reads .python-version too, and prefers the version it asks for. Set python.executable in pnpm-workspace.yaml to name one interpreter for every project.

  • pnpm install now installs a Python interpreter when no interpreter on the machine fits the project #​14945. The builds are python-build-standalone's, which uv and rye install too. One interpreter is shared by every project on the machine, and a later install uses it without downloading anything. runtimeOnFail decides what an install with no interpreter that fits does, the way it does for a Node.js runtime. error reports the project instead of installing one. warn and ignore install with an interpreter the machine has that the project's requires-python rejects. tools.python.mirror names a mirror.

  • Python environments now live in the store. Each project keeps only its .venv link, which points at the project's current environment generation under python-envs in the store. A repository with many Python projects no longer holds a .pnpm/python-envs directory in each of them. The next install relinks a .venv that an earlier release published. The old .pnpm/python-envs directory is left in place, since a running program may still use it, and can be deleted once none does. With frozenStore set, pnpm writes nothing to the store, so environments stay in the project's .pnpm/python-envs #​15014.

  • Python environments now use packageImportMethod to import wheel files from the store. Use clone-or-copy for copy-on-write clones with a copy fallback, or copy for independent files. Hardlinked files share writes with the store and other environments.

    Isolated Python build environments keep backend writes private with copy-on-write clones or copies.

Python projects and workspaces
  • pnpm install now installs a Python project's own package, so the project can be imported and the commands in [project.scripts] run right after an install #​14945. The installed package points at the source tree, so an edit to a module takes effect without another install. pnpm installs the package of a project that declares a [build-system]. tool.uv.package overrides that either way.

  • pnpm install now installs a Python project in the workspace from its own source. Declare it under [tool.uv.sources], as shared = { workspace = true } or shared = { path = "../shared", editable = true }. pnpm builds the project with the backend it declares. It installs the build editable, so an edit to the project takes effect without another install.

    Approve the build backend under allowBuilds in pnpm-workspace.yaml as a Package URL, as pkg:pypi/hatchling: true. An install that has not approved a backend does not build the projects that need it. The message names the key to add.

    pnpm install now refuses a requirement that names a project in the workspace when nothing declares where it comes from. It used to take that name from the index.

  • The members of a uv workspace can now share one Python environment. Set shared-environment = true under [tool.pnpm.python] in the pyproject.toml that declares [tool.uv.workspace]. pnpm install then resolves every member as one graph into one pylock.toml and one .venv at the workspace root. Two members that require versions of a distribution no release satisfies at once are refused with an error naming both. Each project still gets an environment of its own by default #​15015.

  • Python projects can now select extras and dependency groups through [tool.pnpm.python] in pyproject.toml #​14945. Workspace python.extras and python.groups defaults now skip names a project does not define.

  • pnpm install now reads dynamic Python project metadata from the build backend #​14945. Projects with only a requirements.txt file now get a Python environment and lockfile.

Python dependencies and lockfiles
  • pnpm can now resolve pylock.toml for several platforms and Python versions at once. supportedArchitectures names the platforms to lock for and python.versions the versions. Every platform is paired with every version. One committed lockfile then serves Linux CI and macOS or Windows contributors #​14945.

    supportedArchitectures:
      - linux-x64-manylinux_2_28
      - darwin-arm64
      - win32-x64
    python:
      enabled: true
      versions: ['3.12', '3.13']
    

    The lockfile pins the wheel each environment takes for a distribution. It marks a package only some environments install. pnpm install takes the packages and wheels of the environment its interpreter matches, and refuses an interpreter none of them stand for. pnpm resolves a project that declares environments itself, not through the server pnprServer names. Naming neither setting locks for the interpreter running the install.

  • python.overrides and python.constraints pin the versions a Python resolution may pick #​14945. pnpm reads uv's own overrides and constraints from pyproject.toml too.

  • pnpm install now supports Python dependencies from Git repositories #​14945. Direct wheel URLs are also supported. Sources can be declared in [tool.uv.sources]. Git dependencies require allowBuilds approval.

  • pnpm install can install a Python release that publishes no wheel this interpreter accepts, by building the source distribution the index serves beside it #​14945. The archive is pinned in pylock.toml by name and SHA-256. A later install replays it from the store, offline included. Building a source distribution runs the release's own build backend. Approve it with pkg:pypi/<distribution>: true under allowBuilds.

    A resolution that finds no version of a distribution now says why. It tells apart a distribution no index publishes, one whose releases publish nothing this interpreter can install, and one whose versions the project's requirements exclude.

Patch Changes

Installing packages
  • pnpm no longer reuses one package's downloaded tarball for another package whose resolution pins a different integrity hash to the same URL #​15021.

  • pnpm install and pnpm add now report an error when package.json, pnpm-lock.yaml, pyproject.toml or another file they snapshot before installing is a named pipe or a device. The command used to wait forever for something to write to it.

  • pnpm install --prod and pnpm install --dev now record every dependency group in pnpm-lock.yaml. node_modules still holds only the groups the filter selects. They used to write the filter into the lockfile, so a later pnpm install --frozen-lockfile rejected it. pnpm prune --prod, pnpm prune --dev, and pnpm prune --no-optional behave the same way #​14912.

  • POSIX bin shims now convert a Windows-form path such as C:\node_modules\.bin\tsc correctly. The shim mangled the backslashes in such a path and could not reach the package it runs. Installing again replaces the shims already in node_modules #​14867.

  • Two pnpm processes installing one workspace at the same time no longer fail on Windows with "Access is denied" while writing node_modules/.pnpm-workspace-state-v1.json. The write now retries the transient lock the other process holds, as pnpm's other file writes do.

  • pnpm now reads the manifest from the tarball when a pnpmfile resolvers hook returns a resolution without one. Such a package installed alone, with none of its own dependencies and no warning #​15000.

  • pnpm install now merges Git conflict markers in pnpm-lock.yaml. It parses both sides of the conflict and keeps the versions they locked. A conflict in the config dependencies recorded at the top of the lockfile is merged too #​14880.

Cargo projects
  • pnpm install can now generate Cargo.lock for workspaces with path or Git [patch] and [replace] overrides. Adding, removing, and updating crates also preserve these overrides #​14950.

    Cargo lockfile resolution blocks unsupported Git transport helpers declared by transitive dependencies.

  • pnpm install now vendors recursive Git submodules for Cargo dependencies at their pinned commits. Cargo builds can use these sources offline. Set Git's protocol.file.allow to always to fetch local file submodules. pnpm fetches cached Git crates again on the first online install #​14951.

  • pnpm install now generates Cargo.lock for workspaces with Git dependencies, including a dependency that omits a package version. It also downloads the Rust standard library's dependencies when Cargo configuration enables build-std #​14944.

  • pnpm install now handles weak Cargo features, written crate?/feature. Resolution failed when one dependency turned on an optional crate and another asked for a weak feature of it #​14960. The generated Cargo.lock now also includes the dependencies weak features reference, which Cargo rejected with --locked for crates such as uuid #​14978.

  • pnpm install now generates Cargo.lock when a crate version it considers depends on a release the registry carries only as yanked. pnpm rules that version out and resolves the rest of the graph. Resolution failed with an error such as no non-yanked version of napi-build satisfies ^3.0.0-beta #​14952.

  • pnpm install now falls back to an older semver-incompatible version of a crate when the newest one a dependency range allows cannot be resolved. Ranges such as >=1, <3 span several of them #​14962.

Python projects
  • pnpm install now honors uv workspace members when discovering Python projects. When no uv workspace declares a project, pnpm skips projects under conventional example, demo, documentation, template, test, tests, and test fixture directories #​15058.

  • pnpm install --filter <selector> now installs only the Python projects the selection asks for. A Python project that shares a directory with an npm workspace project is selected with that project. A Python project in a directory of its own is selected by the distribution it declares, by its path, or through the [tool.uv.sources] entries that reach it. Under --fail-if-no-match, a selector that names only a Python project is a match. pnpm add --filter <selector> pypi:<package> writes the requirement to every selected project #​14945.

  • pnpm install now installs wheels whose RECORD hashes disagree with their contents. The wheel archive's locked SHA-256 hash remains verified. pnpm writes correct hashes to the installed RECORD #​15061.

  • pnpm install now installs a Python wheel whose WHEEL file lists tags that differ from the ones in its filename. A wheel whose filename tags were changed after the build, such as mysql-connector-python, was rejected #​14945.

  • A Python release whose wheel metadata declares a requirement pnpm cannot read no longer fails the install. pnpm now resolves the project against the other releases of that package, and reports the unreadable requirement when none of them works.

  • pnpm install no longer fails when a Python index lists a file pnpm cannot use, such as a release with no SHA-256 digest or an unreadable wheel filename. That file is left out and the project resolves against the remaining releases.

  • pnpm add pypi:<package> in a directory that has no pyproject.toml now names the missing file and says where to run the command. It used to fail with a bare No such file or directory (os error 2) #​14945.

Performance
  • pnpm audit no longer hangs on dependency graphs with many shared dependencies #​15005.

  • Sped up pnpm install in Python workspaces with many projects. Projects now prepare concurrently. Projects with identical registry requirements also share fresh dependency resolutions #​14945.

  • Repeat installs through the Node-API bindings now return "Already up to date" when the project manifests still match pnpm-lock.yaml. Before, every such install reinstalled the whole tree. An install also no longer reinstalls when pnpm-lock.yaml differs from the installed dependencies only by packages no project depends on or by top-level keys pnpm does not define.

Other commands
  • pnpm deploy now links commands exposed by workspace dependencies into the deployed project's node_modules/.bin directory #​14899.

  • pnpm dlx and pnx now prompt to approve dependency build scripts in interactive terminals #​14943. Cached packages with pending builds also prompt for approval. Without an interactive terminal, use --allow-build to allow the required builds.

  • pnpm add -g and pnpm update -g now ignore incomplete unrelated global package groups when every command from the replaced group is retained. Operations that could remove a global command still require complete ownership information.

  • pnpm pack now writes tarball entries grouped by file extension and file name, the order npm uses. Packages that ship many same-named files, such as template collections, pack much smaller #​14766.

  • pnpm outdated --long fills the Details column with the package homepage again #​14886.

Platinum Sponsors

Bit OpenAI Notion
CodeRabbit

Gold Sponsors

Sanity Discord Vite
SerpApi Stackblitz Workleap
Nx Latitude
prettier/prettier (prettier)

v3.9.8

Compare Source

diff

Markdown: Don't let Liquid objects interrupt paragraphs (#​20087 by @​seiyab)
<!-- Input -->
If `module` is not a [`WebAssembly.Module`](/en-US/docs/WebAssembly/Reference/JavaScript_interface/Module) object instance, a
{{jsxref("TypeError")}} is thrown.

<!-- Prettier 3.9.7 -->
If `module` is not a [`WebAssembly.Module`](/en-US/docs/WebAssembly/Reference/JavaScript_interface/Module) object instance, a

{{jsxref("TypeError")}} is thrown.

<!-- Prettier 3.9.8 -->
If `module` is not a [`WebAssembly.Module`](/en-US/docs/WebAssembly/Reference/JavaScript_interface/Module) object instance, a
{{jsxref("TypeError")}} is thrown.
vercel/turborepo (turbo)

v2.11.2: Turborepo v2.11.2

Compare Source

What's Changed
Changelog

Full Changelog: https://github.com/vercel/turborepo/compare/v2.11.1...v2.11.2

v2.11.1: Turborepo v2.11.1

Compare Source

What's Changed
Changelog

Full Changelog: https://github.com/vercel/turborepo/compare/v2.11.0...v2.11.1

v2.11.0: Turborepo v2.11.0

Compare Source

What's Changed
Changelog
New Contributors

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


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Enabled.

♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate CLI.

This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | Type | Update | Pending | |---|---|---|---|---|---|---| | [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node) ([source](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)) | [`25.9.7` → `25.9.8`](https://renovatebot.com/diffs/npm/@types%2fnode/25.9.7/25.9.8) | ![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fnode/25.9.8?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fnode/25.9.7/25.9.8?slim=true) | devDependencies | patch | | | [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node) ([source](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)) | [`26.6.1` → `26.6.2`](https://renovatebot.com/diffs/npm/@types%2fnode/26.6.1/26.6.2) | ![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fnode/26.6.2?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fnode/26.6.1/26.6.2?slim=true) | devDependencies | patch | | | [git.zarantonello.dev/infra/ci-pnpm](https://hub.docker.com/_/node) ([source](https://github.com/nodejs/docker-node)) | `v1.1.8` → `v1.1.9` | ![age](https://developer.mend.io/api/mc/badges/age/docker/git.zarantonello.dev%2finfra%2fci-pnpm/v1.1.9?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/docker/git.zarantonello.dev%2finfra%2fci-pnpm/v1.1.8/v1.1.9?slim=true) | final | patch | | | [git.zarantonello.dev/projects/events-cash-register-ci](https://hub.docker.com/_/node) ([source](https://github.com/nodejs/docker-node)) | `v2026.09.19.1` → `v2026.09.20.1` | ![age](https://developer.mend.io/api/mc/badges/age/docker/git.zarantonello.dev%2fprojects%2fevents-cash-register-ci/v2026.09.20.1?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/docker/git.zarantonello.dev%2fprojects%2fevents-cash-register-ci/v2026.09.19.1/v2026.09.20.1?slim=true) | container | patch | | | [git.zarantonello.dev/projects/events-cash-register-ci](https://hub.docker.com/_/node) ([source](https://github.com/nodejs/docker-node)) | `v2026.09.19.1` → `v2026.09.20.1` | ![age](https://developer.mend.io/api/mc/badges/age/docker/git.zarantonello.dev%2fprojects%2fevents-cash-register-ci/v2026.09.20.1?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/docker/git.zarantonello.dev%2fprojects%2fevents-cash-register-ci/v2026.09.19.1/v2026.09.20.1?slim=true) | | patch | | | [https://git.zarantonello.dev/projects/forgejo-agent](https://git.zarantonello.dev/projects/forgejo-agent) | `v1.11.2` → `v1.11.3` | ![age](https://developer.mend.io/api/mc/badges/age/forgejo-tags/projects%2fforgejo-agent/v1.11.3?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/forgejo-tags/projects%2fforgejo-agent/v1.11.2/v1.11.3?slim=true) | action | patch | | | [pnpm](https://github.com/pnpm/pnpm/tree/main/pnpm) ([source](https://github.com/pnpm/pnpm/tree/HEAD/pnpm/npm/pnpm)) | [`12.4.2` → `12.5.1`](https://renovatebot.com/diffs/npm/pnpm/12.4.2/12.5.1) | ![age](https://developer.mend.io/api/mc/badges/age/npm/pnpm/12.5.1?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/pnpm/12.4.2/12.5.1?slim=true) | packageManager | minor | | | [prettier](https://prettier.io) ([source](https://github.com/prettier/prettier)) | [`3.9.7` → `3.9.8`](https://renovatebot.com/diffs/npm/prettier/3.9.7/3.9.8) | ![age](https://developer.mend.io/api/mc/badges/age/npm/prettier/3.9.8?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/prettier/3.9.7/3.9.8?slim=true) | devDependencies | patch | `3.9.9` | | quay.io/containers/aio | `b89bca5` → `c23be6f` | | | container | digest | | | [turbo](https://turborepo.dev) ([source](https://github.com/vercel/turborepo)) | `2.10.13` → `2.11.2` | ![age](https://developer.mend.io/api/mc/badges/age/npm/turbo/2.11.2?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/turbo/2.10.13/2.11.2?slim=true) | | minor | `2.11.3` | | [turbo](https://turborepo.dev) ([source](https://github.com/vercel/turborepo)) | [`2.10.13` → `2.11.2`](https://renovatebot.com/diffs/npm/turbo/2.10.13/2.11.2) | ![age](https://developer.mend.io/api/mc/badges/age/npm/turbo/2.11.2?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/turbo/2.10.13/2.11.2?slim=true) | devDependencies | minor | `2.11.3` | --- ### Release Notes <details> <summary>projects/forgejo-agent (https://git.zarantonello.dev/projects/forgejo-agent)</summary> ### [`v1.11.3`](https://git.zarantonello.dev/projects/forgejo-agent/releases/tag/v1.11.3) [Compare Source](https://git.zarantonello.dev/projects/forgejo-agent/compare/v1.11.2...v1.11.3) ##### Bug Fixes - **deps:** update dependency typebox to v1.3.33 ([#&#8203;298](https://git.zarantonello.dev/projects/forgejo-agent/issues/298)) ([62e1fd3](https://git.zarantonello.dev/projects/forgejo-agent/commit/62e1fd3f9000693adeab80b73af6fdc2d0f3ca36)) </details> <details> <summary>pnpm/pnpm (pnpm)</summary> ### [`v12.5.1`](https://github.com/pnpm/pnpm/releases/tag/v12.5.1): pnpm 12.5.1 [Compare Source](https://github.com/pnpm/pnpm/compare/[email protected]) #### Patch Changes - pnpm now reports an unknown task setting in `pnpm-workspace.yaml` and carries on. It used to refuse to start, so a project could not use a task setting that only the pnpm version its `packageManager` pins reads. The setting is still an error when the running pnpm is that pinned version. - Python interpreter installation now retries historical release metadata requests. It caches the release list for up to 24 hours and refreshes it once after a lookup miss. When a release omits the current platform, the search samples at most eight other releases before reporting that the lookup is inconclusive. - Python `registries` entries now route packages by exact names or trailing-prefix patterns in `packages`. Registry declaration order no longer affects resolution. A matched package resolves exclusively from its assigned registry, including transitive and build dependencies. Use `packages: ["*"]` to declare the default index. - `pnpm install` no longer fails with "Too many levels of symbolic links" when a Cargo configuration file above the workspace is a symlink, such as a `~/.cargo/config.toml` linked from a dotfiles repository. - `pnpm install` now returns "Already up to date" in a workspace where `dedupeDirectDeps` left a project without a `node_modules` directory of its own. Such a project forced a full install on every run. - `pnpm install` no longer refuses the repeat-install fast path just because a changed `pnpm-lock.yaml` is 16 MiB or larger. Such a lockfile forced a full install on the run after every change. <!-- sponsors --> #### Platinum Sponsors <table> <tbody> <tr> <td align="center" valign="middle"> <a href="https://bit.cloud/?utm_source=pnpm&utm_medium=release_notes" target="_blank" rel="noopener noreferrer"><img src="https://pnpm.io/img/users/bit.svg" width="80" alt="Bit"></a> </td> <td align="center" valign="middle"> <a href="https://openai.com/?utm_source=pnpm&utm_medium=release_notes" target="_blank" rel="noopener noreferrer"> <picture> <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/openai_dark.svg" /> <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/openai_light.svg" /> <img src="https://pnpm.io/img/users/openai_dark.svg" width="160" alt="OpenAI" /> </picture> </a> </td> <td align="center" valign="middle"> <a href="https://notion.com/?utm_source=pnpm&utm_medium=release_notes" target="_blank" rel="noopener noreferrer"><img src="https://pnpm.io/img/users/notion.svg" width="80" alt="Notion"></a> </td> </tr> <tr> <td align="center" valign="middle"> <a href="https://coderabbit.ai/?utm_source=pnpm&utm_medium=release_notes" target="_blank" rel="noopener noreferrer"> <picture> <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/coderabbit.svg" /> <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/coderabbit_light.svg" /> <img src="https://pnpm.io/img/users/coderabbit.svg" width="220" alt="CodeRabbit" /> </picture> </a> </td> </tr> </tbody> </table> #### Gold Sponsors <table> <tbody> <tr> <td align="center" valign="middle"> <a href="https://sanity.io/?utm_source=pnpm&utm_medium=release_notes" target="_blank" rel="noopener noreferrer"> <picture> <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/sanity.svg" /> <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/sanity_light.svg" /> <img src="https://pnpm.io/img/users/sanity.svg" width="120" alt="Sanity" /> </picture> </a> </td> <td align="center" valign="middle"> <a href="https://discord.com/?utm_source=pnpm&utm_medium=release_notes" target="_blank" rel="noopener noreferrer"> <picture> <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/discord.svg" /> <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/discord_light.svg" /> <img src="https://pnpm.io/img/users/discord.svg" width="220" alt="Discord" /> </picture> </a> </td> <td align="center" valign="middle"> <a href="https://vite.dev/?utm_source=pnpm&utm_medium=release_notes" target="_blank" rel="noopener noreferrer"><img src="https://pnpm.io/img/users/vitejs.svg" width="42" alt="Vite"></a> </td> </tr> <tr> <td align="center" valign="middle"> <a href="https://serpapi.com/?utm_source=pnpm&utm_medium=release_notes" target="_blank" rel="noopener noreferrer"> <picture> <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/serpapi_dark.svg" /> <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/serpapi_light.svg" /> <img src="https://pnpm.io/img/users/serpapi_dark.svg" width="160" alt="SerpApi" /> </picture> </a> </td> <td align="center" valign="middle"> <a href="https://stackblitz.com/?utm_source=pnpm&utm_medium=release_notes" target="_blank" rel="noopener noreferrer"> <picture> <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/stackblitz.svg" /> <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/stackblitz_light.svg" /> <img src="https://pnpm.io/img/users/stackblitz.svg" width="190" alt="Stackblitz" /> </picture> </a> </td> <td align="center" valign="middle"> <a href="https://workleap.com/?utm_source=pnpm&utm_medium=release_notes" target="_blank" rel="noopener noreferrer"> <picture> <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/workleap.svg" /> <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/workleap_light.svg" /> <img src="https://pnpm.io/img/users/workleap.svg" width="190" alt="Workleap" /> </picture> </a> </td> </tr> <tr> <td align="center" valign="middle"> <a href="https://nx.dev/?utm_source=pnpm&utm_medium=release_notes" target="_blank" rel="noopener noreferrer"> <picture> <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/nx.svg" /> <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/nx_light.svg" /> <img src="https://pnpm.io/img/users/nx.svg" width="50" alt="Nx" /> </picture> </a> </td> <td align="center" valign="middle"> <a href="https://latitude.so/?utm_source=pnpm&utm_medium=release_notes" target="_blank" rel="noopener noreferrer"><img src="https://pnpm.io/img/users/latitude.svg" width="160" alt="Latitude"></a> </td> </tr> </tbody> </table> <!-- sponsors end --> ### [`v12.5.0`](https://github.com/pnpm/pnpm/releases/tag/v12.5.0): pnpm 12.5 [Compare Source](https://github.com/pnpm/pnpm/compare/v12.4.2...v12.5.0) pnpm 12.5.0 makes Python a first-class ecosystem, accepts Package URLs in `pnpm add`, names whole platforms in `supportedArchitectures`, and gives tasks machine-wide concurrency limits. It also fixes an install that could reuse one package's downloaded tarball for another. #### Minor Changes ##### Installing packages - `pnpm add` accepts a [Package URL](https://github.com/package-url/purl-spec) in place of a package name. `pnpm add pkg:npm/[email protected]` saves `express` to `package.json`. `pnpm add pkg:cargo/[email protected]` saves `serde` to `Cargo.toml`. `pnpm add pkg:pypi/[email protected]` saves `requests` to `pyproject.toml`. `pkg` is now a reserved specifier prefix, whatever case it is written in, so a named registry can no longer be called `pkg`. - A `registries` entry can now name the ecosystem it serves. ```yaml registries: https://internal.example/simple/: ecosystem: pypi https://pypi.org/simple/: ecosystem: pypi https://index.crates.io/: ecosystem: cargo ``` `ecosystem` accepts `npm`, `cargo` and `pypi`. An entry that does not name one serves npm, as every entry did before. An ecosystem with several indexes searches them in the order they are declared. The first index that has a package supplies it, so the one declared last answers what none before it had. A `registries` entry may not carry credentials. pnpm reads them from `.npmrc`, matched by origin, for a PyPI index as for every other package source. ##### Configuring pnpm - `supportedArchitectures` now accepts a list of platforms, in place of the `os`, `cpu` and `libc` axes. ```yaml supportedArchitectures: - linux-x64 - darwin-arm64 - win32-x64 ``` An install prepares for the platforms the list names, and for those only. A platform reads as `<os>-<cpu>`, with a C library on Linux, as in `linux-x64-musl` or `linux-x64-manylinux_2_28`. The Rust target triple of the same machine is accepted too, so `x86_64-unknown-linux-gnu` names the platform `linux-x64` names. A Linux platform that names no C library is the glibc platform. `current` is the platform the install runs on. The `os`, `cpu` and `libc` mapping keeps working and keeps its meaning. - Added concurrency groups for tasks. A task in `pnpm-workspace.yaml` can name a `concurrencyGroup`. The new `concurrencyGroups` setting gives each group a limit. At most that many tasks of the group run at once on the machine, counted across every pnpm process, `pnpm pipeline` included. A task past the limit waits for a running one to finish. A script that calls `pnpm run` for a task of the same group runs under the slot its parent holds. ```yaml tasks: test:rust: concurrencyGroup: cargo concurrencyGroups: cargo: 2 ``` - `tools` names the programs pnpm downloads, and `mirror` says where each one comes from. ```yaml tools: node: mirror: https://mirror.example.com/node/download channels: nightly: https://nightly.example.com/ bun: mirror: https://mirror.example.com/bun python: mirror: https://mirror.example.com/python-build-standalone/releases ``` `node`, `bun` and `python` can be named. Any other tool is refused. `mirror` is the base a tool's own layout hangs off. `channels` sends one release channel elsewhere. A channel neither it nor `node-mirror:<channel>` names is left to `mirror`. Only `node` publishes channels, so naming them for another tool is refused. Set it in the global `config.yaml` or in `PNPM_CONFIG_TOOLS`. A `pnpm-workspace.yaml` that names a tool mirror is ignored. `pnpm pack-app` downloads the Node.js it embeds through `tools.node`. `node-mirror:<channel>` keeps working and names the same thing as an entry under `channels`. ##### Python interpreters and environments - `pnpm install` now chooses a Python interpreter for each project instead of installing every project with one interpreter [#&#8203;14945](https://github.com/pnpm/pnpm/issues/14945). A project is installed with the first interpreter on the machine that its `requires-python` accepts, so a workspace can hold projects that support different Python versions. pnpm reads `.python-version` too, and prefers the version it asks for. Set `python.executable` in `pnpm-workspace.yaml` to name one interpreter for every project. - `pnpm install` now installs a Python interpreter when no interpreter on the machine fits the project [#&#8203;14945](https://github.com/pnpm/pnpm/issues/14945). The builds are [python-build-standalone](https://github.com/astral-sh/python-build-standalone)'s, which uv and rye install too. One interpreter is shared by every project on the machine, and a later install uses it without downloading anything. `runtimeOnFail` decides what an install with no interpreter that fits does, the way it does for a Node.js runtime. `error` reports the project instead of installing one. `warn` and `ignore` install with an interpreter the machine has that the project's `requires-python` rejects. `tools.python.mirror` names a mirror. - Python environments now live in the store. Each project keeps only its `.venv` link, which points at the project's current environment generation under `python-envs` in the store. A repository with many Python projects no longer holds a `.pnpm/python-envs` directory in each of them. The next install relinks a `.venv` that an earlier release published. The old `.pnpm/python-envs` directory is left in place, since a running program may still use it, and can be deleted once none does. With `frozenStore` set, pnpm writes nothing to the store, so environments stay in the project's `.pnpm/python-envs` [#&#8203;15014](https://github.com/pnpm/pnpm/issues/15014). - Python environments now use `packageImportMethod` to import wheel files from the store. Use `clone-or-copy` for copy-on-write clones with a copy fallback, or `copy` for independent files. Hardlinked files share writes with the store and other environments. Isolated Python build environments keep backend writes private with copy-on-write clones or copies. ##### Python projects and workspaces - `pnpm install` now installs a Python project's own package, so the project can be imported and the commands in `[project.scripts]` run right after an install [#&#8203;14945](https://github.com/pnpm/pnpm/issues/14945). The installed package points at the source tree, so an edit to a module takes effect without another install. pnpm installs the package of a project that declares a `[build-system]`. `tool.uv.package` overrides that either way. - `pnpm install` now installs a Python project in the workspace from its own source. Declare it under `[tool.uv.sources]`, as `shared = { workspace = true }` or `shared = { path = "../shared", editable = true }`. pnpm builds the project with the backend it declares. It installs the build editable, so an edit to the project takes effect without another install. Approve the build backend under `allowBuilds` in `pnpm-workspace.yaml` as a Package URL, as `pkg:pypi/hatchling: true`. An install that has not approved a backend does not build the projects that need it. The message names the key to add. `pnpm install` now refuses a requirement that names a project in the workspace when nothing declares where it comes from. It used to take that name from the index. - The members of a uv workspace can now share one Python environment. Set `shared-environment = true` under `[tool.pnpm.python]` in the `pyproject.toml` that declares `[tool.uv.workspace]`. `pnpm install` then resolves every member as one graph into one `pylock.toml` and one `.venv` at the workspace root. Two members that require versions of a distribution no release satisfies at once are refused with an error naming both. Each project still gets an environment of its own by default [#&#8203;15015](https://github.com/pnpm/pnpm/issues/15015). - Python projects can now select extras and dependency groups through `[tool.pnpm.python]` in `pyproject.toml` [#&#8203;14945](https://github.com/pnpm/pnpm/issues/14945). Workspace `python.extras` and `python.groups` defaults now skip names a project does not define. - `pnpm install` now reads dynamic Python project metadata from the build backend [#&#8203;14945](https://github.com/pnpm/pnpm/issues/14945). Projects with only a `requirements.txt` file now get a Python environment and lockfile. ##### Python dependencies and lockfiles - pnpm can now resolve `pylock.toml` for several platforms and Python versions at once. `supportedArchitectures` names the platforms to lock for and `python.versions` the versions. Every platform is paired with every version. One committed lockfile then serves Linux CI and macOS or Windows contributors [#&#8203;14945](https://github.com/pnpm/pnpm/issues/14945). ```yaml supportedArchitectures: - linux-x64-manylinux_2_28 - darwin-arm64 - win32-x64 python: enabled: true versions: ['3.12', '3.13'] ``` The lockfile pins the wheel each environment takes for a distribution. It marks a package only some environments install. `pnpm install` takes the packages and wheels of the environment its interpreter matches, and refuses an interpreter none of them stand for. pnpm resolves a project that declares environments itself, not through the server `pnprServer` names. Naming neither setting locks for the interpreter running the install. - `python.overrides` and `python.constraints` pin the versions a Python resolution may pick [#&#8203;14945](https://github.com/pnpm/pnpm/issues/14945). pnpm reads uv's own overrides and constraints from `pyproject.toml` too. - `pnpm install` now supports Python dependencies from Git repositories [#&#8203;14945](https://github.com/pnpm/pnpm/issues/14945). Direct wheel URLs are also supported. Sources can be declared in `[tool.uv.sources]`. Git dependencies require `allowBuilds` approval. - `pnpm install` can install a Python release that publishes no wheel this interpreter accepts, by building the source distribution the index serves beside it [#&#8203;14945](https://github.com/pnpm/pnpm/issues/14945). The archive is pinned in `pylock.toml` by name and SHA-256. A later install replays it from the store, offline included. Building a source distribution runs the release's own build backend. Approve it with `pkg:pypi/<distribution>: true` under `allowBuilds`. A resolution that finds no version of a distribution now says why. It tells apart a distribution no index publishes, one whose releases publish nothing this interpreter can install, and one whose versions the project's requirements exclude. #### Patch Changes ##### Installing packages - pnpm no longer reuses one package's downloaded tarball for another package whose resolution pins a different integrity hash to the same URL [#&#8203;15021](https://github.com/pnpm/pnpm/issues/15021). - `pnpm install` and `pnpm add` now report an error when `package.json`, `pnpm-lock.yaml`, `pyproject.toml` or another file they snapshot before installing is a named pipe or a device. The command used to wait forever for something to write to it. - `pnpm install --prod` and `pnpm install --dev` now record every dependency group in `pnpm-lock.yaml`. `node_modules` still holds only the groups the filter selects. They used to write the filter into the lockfile, so a later `pnpm install --frozen-lockfile` rejected it. `pnpm prune --prod`, `pnpm prune --dev`, and `pnpm prune --no-optional` behave the same way [#&#8203;14912](https://github.com/pnpm/pnpm/issues/14912). - POSIX bin shims now convert a Windows-form path such as `C:\node_modules\.bin\tsc` correctly. The shim mangled the backslashes in such a path and could not reach the package it runs. Installing again replaces the shims already in `node_modules` [#&#8203;14867](https://github.com/pnpm/pnpm/issues/14867). - Two pnpm processes installing one workspace at the same time no longer fail on Windows with "Access is denied" while writing `node_modules/.pnpm-workspace-state-v1.json`. The write now retries the transient lock the other process holds, as pnpm's other file writes do. - pnpm now reads the manifest from the tarball when a pnpmfile `resolvers` hook returns a resolution without one. Such a package installed alone, with none of its own dependencies and no warning [#&#8203;15000](https://github.com/pnpm/pnpm/issues/15000). - `pnpm install` now merges Git conflict markers in `pnpm-lock.yaml`. It parses both sides of the conflict and keeps the versions they locked. A conflict in the config dependencies recorded at the top of the lockfile is merged too [#&#8203;14880](https://github.com/pnpm/pnpm/issues/14880). ##### Cargo projects - `pnpm install` can now generate `Cargo.lock` for workspaces with path or Git `[patch]` and `[replace]` overrides. Adding, removing, and updating crates also preserve these overrides [#&#8203;14950](https://github.com/pnpm/pnpm/issues/14950). Cargo lockfile resolution blocks unsupported Git transport helpers declared by transitive dependencies. - `pnpm install` now vendors recursive Git submodules for Cargo dependencies at their pinned commits. Cargo builds can use these sources offline. Set Git's `protocol.file.allow` to `always` to fetch local file submodules. pnpm fetches cached Git crates again on the first online install [#&#8203;14951](https://github.com/pnpm/pnpm/issues/14951). - `pnpm install` now generates `Cargo.lock` for workspaces with Git dependencies, including a dependency that omits a package version. It also downloads the Rust standard library's dependencies when Cargo configuration enables `build-std` [#&#8203;14944](https://github.com/pnpm/pnpm/issues/14944). - `pnpm install` now handles weak Cargo features, written `crate?/feature`. Resolution failed when one dependency turned on an optional crate and another asked for a weak feature of it [#&#8203;14960](https://github.com/pnpm/pnpm/issues/14960). The generated `Cargo.lock` now also includes the dependencies weak features reference, which Cargo rejected with `--locked` for crates such as `uuid` [#&#8203;14978](https://github.com/pnpm/pnpm/issues/14978). - `pnpm install` now generates `Cargo.lock` when a crate version it considers depends on a release the registry carries only as yanked. pnpm rules that version out and resolves the rest of the graph. Resolution failed with an error such as `no non-yanked version of napi-build satisfies ^3.0.0-beta` [#&#8203;14952](https://github.com/pnpm/pnpm/issues/14952). - `pnpm install` now falls back to an older semver-incompatible version of a crate when the newest one a dependency range allows cannot be resolved. Ranges such as `>=1, <3` span several of them [#&#8203;14962](https://github.com/pnpm/pnpm/issues/14962). ##### Python projects - `pnpm install` now honors uv workspace members when discovering Python projects. When no uv workspace declares a project, pnpm skips projects under conventional example, demo, documentation, template, `test`, `tests`, and test fixture directories [#&#8203;15058](https://github.com/pnpm/pnpm/issues/15058). - `pnpm install --filter <selector>` now installs only the Python projects the selection asks for. A Python project that shares a directory with an npm workspace project is selected with that project. A Python project in a directory of its own is selected by the distribution it declares, by its path, or through the `[tool.uv.sources]` entries that reach it. Under `--fail-if-no-match`, a selector that names only a Python project is a match. `pnpm add --filter <selector> pypi:<package>` writes the requirement to every selected project [#&#8203;14945](https://github.com/pnpm/pnpm/issues/14945). - `pnpm install` now installs wheels whose `RECORD` hashes disagree with their contents. The wheel archive's locked SHA-256 hash remains verified. pnpm writes correct hashes to the installed `RECORD` [#&#8203;15061](https://github.com/pnpm/pnpm/issues/15061). - `pnpm install` now installs a Python wheel whose `WHEEL` file lists tags that differ from the ones in its filename. A wheel whose filename tags were changed after the build, such as `mysql-connector-python`, was rejected [#&#8203;14945](https://github.com/pnpm/pnpm/issues/14945). - A Python release whose wheel metadata declares a requirement pnpm cannot read no longer fails the install. pnpm now resolves the project against the other releases of that package, and reports the unreadable requirement when none of them works. - `pnpm install` no longer fails when a Python index lists a file pnpm cannot use, such as a release with no SHA-256 digest or an unreadable wheel filename. That file is left out and the project resolves against the remaining releases. - `pnpm add pypi:<package>` in a directory that has no `pyproject.toml` now names the missing file and says where to run the command. It used to fail with a bare `No such file or directory (os error 2)` [#&#8203;14945](https://github.com/pnpm/pnpm/issues/14945). ##### Performance - `pnpm audit` no longer hangs on dependency graphs with many shared dependencies [#&#8203;15005](https://github.com/pnpm/pnpm/issues/15005). - Sped up `pnpm install` in Python workspaces with many projects. Projects now prepare concurrently. Projects with identical registry requirements also share fresh dependency resolutions [#&#8203;14945](https://github.com/pnpm/pnpm/issues/14945). - Repeat installs through the Node-API bindings now return "Already up to date" when the project manifests still match `pnpm-lock.yaml`. Before, every such install reinstalled the whole tree. An install also no longer reinstalls when `pnpm-lock.yaml` differs from the installed dependencies only by packages no project depends on or by top-level keys pnpm does not define. ##### Other commands - `pnpm deploy` now links commands exposed by workspace dependencies into the deployed project's `node_modules/.bin` directory [#&#8203;14899](https://github.com/pnpm/pnpm/issues/14899). - `pnpm dlx` and `pnx` now prompt to approve dependency build scripts in interactive terminals [#&#8203;14943](https://github.com/pnpm/pnpm/issues/14943). Cached packages with pending builds also prompt for approval. Without an interactive terminal, use `--allow-build` to allow the required builds. - `pnpm add -g` and `pnpm update -g` now ignore incomplete unrelated global package groups when every command from the replaced group is retained. Operations that could remove a global command still require complete ownership information. - `pnpm pack` now writes tarball entries grouped by file extension and file name, the order npm uses. Packages that ship many same-named files, such as template collections, pack much smaller [#&#8203;14766](https://github.com/pnpm/pnpm/issues/14766). - `pnpm outdated --long` fills the Details column with the package homepage again [#&#8203;14886](https://github.com/pnpm/pnpm/issues/14886). <!-- sponsors --> #### Platinum Sponsors <table> <tbody> <tr> <td align="center" valign="middle"> <a href="https://bit.cloud/?utm_source=pnpm&utm_medium=release_notes" target="_blank" rel="noopener noreferrer"><img src="https://pnpm.io/img/users/bit.svg" width="80" alt="Bit"></a> </td> <td align="center" valign="middle"> <a href="https://openai.com/?utm_source=pnpm&utm_medium=release_notes" target="_blank" rel="noopener noreferrer"> <picture> <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/openai_dark.svg" /> <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/openai_light.svg" /> <img src="https://pnpm.io/img/users/openai_dark.svg" width="160" alt="OpenAI" /> </picture> </a> </td> <td align="center" valign="middle"> <a href="https://notion.com/?utm_source=pnpm&utm_medium=release_notes" target="_blank" rel="noopener noreferrer"><img src="https://pnpm.io/img/users/notion.svg" width="80" alt="Notion"></a> </td> </tr> <tr> <td align="center" valign="middle"> <a href="https://coderabbit.ai/?utm_source=pnpm&utm_medium=release_notes" target="_blank" rel="noopener noreferrer"> <picture> <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/coderabbit.svg" /> <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/coderabbit_light.svg" /> <img src="https://pnpm.io/img/users/coderabbit.svg" width="220" alt="CodeRabbit" /> </picture> </a> </td> </tr> </tbody> </table> #### Gold Sponsors <table> <tbody> <tr> <td align="center" valign="middle"> <a href="https://sanity.io/?utm_source=pnpm&utm_medium=release_notes" target="_blank" rel="noopener noreferrer"> <picture> <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/sanity.svg" /> <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/sanity_light.svg" /> <img src="https://pnpm.io/img/users/sanity.svg" width="120" alt="Sanity" /> </picture> </a> </td> <td align="center" valign="middle"> <a href="https://discord.com/?utm_source=pnpm&utm_medium=release_notes" target="_blank" rel="noopener noreferrer"> <picture> <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/discord.svg" /> <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/discord_light.svg" /> <img src="https://pnpm.io/img/users/discord.svg" width="220" alt="Discord" /> </picture> </a> </td> <td align="center" valign="middle"> <a href="https://vite.dev/?utm_source=pnpm&utm_medium=release_notes" target="_blank" rel="noopener noreferrer"><img src="https://pnpm.io/img/users/vitejs.svg" width="42" alt="Vite"></a> </td> </tr> <tr> <td align="center" valign="middle"> <a href="https://serpapi.com/?utm_source=pnpm&utm_medium=release_notes" target="_blank" rel="noopener noreferrer"> <picture> <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/serpapi_dark.svg" /> <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/serpapi_light.svg" /> <img src="https://pnpm.io/img/users/serpapi_dark.svg" width="160" alt="SerpApi" /> </picture> </a> </td> <td align="center" valign="middle"> <a href="https://stackblitz.com/?utm_source=pnpm&utm_medium=release_notes" target="_blank" rel="noopener noreferrer"> <picture> <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/stackblitz.svg" /> <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/stackblitz_light.svg" /> <img src="https://pnpm.io/img/users/stackblitz.svg" width="190" alt="Stackblitz" /> </picture> </a> </td> <td align="center" valign="middle"> <a href="https://workleap.com/?utm_source=pnpm&utm_medium=release_notes" target="_blank" rel="noopener noreferrer"> <picture> <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/workleap.svg" /> <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/workleap_light.svg" /> <img src="https://pnpm.io/img/users/workleap.svg" width="190" alt="Workleap" /> </picture> </a> </td> </tr> <tr> <td align="center" valign="middle"> <a href="https://nx.dev/?utm_source=pnpm&utm_medium=release_notes" target="_blank" rel="noopener noreferrer"> <picture> <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/nx.svg" /> <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/nx_light.svg" /> <img src="https://pnpm.io/img/users/nx.svg" width="50" alt="Nx" /> </picture> </a> </td> <td align="center" valign="middle"> <a href="https://latitude.so/?utm_source=pnpm&utm_medium=release_notes" target="_blank" rel="noopener noreferrer"><img src="https://pnpm.io/img/users/latitude.svg" width="160" alt="Latitude"></a> </td> </tr> </tbody> </table> <!-- sponsors end --> </details> <details> <summary>prettier/prettier (prettier)</summary> ### [`v3.9.8`](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#398) [Compare Source](https://github.com/prettier/prettier/compare/3.9.7...3.9.8) [diff](https://github.com/prettier/prettier/compare/3.9.7...3.9.8) ##### Markdown: Don't let Liquid objects interrupt paragraphs ([#&#8203;20087](https://github.com/prettier/prettier/pull/20087) by [@&#8203;seiyab](https://github.com/seiyab)) <!-- prettier-ignore --> ```markdown <!-- Input --> If `module` is not a [`WebAssembly.Module`](/en-US/docs/WebAssembly/Reference/JavaScript_interface/Module) object instance, a {{jsxref("TypeError")}} is thrown. <!-- Prettier 3.9.7 --> If `module` is not a [`WebAssembly.Module`](/en-US/docs/WebAssembly/Reference/JavaScript_interface/Module) object instance, a {{jsxref("TypeError")}} is thrown. <!-- Prettier 3.9.8 --> If `module` is not a [`WebAssembly.Module`](/en-US/docs/WebAssembly/Reference/JavaScript_interface/Module) object instance, a {{jsxref("TypeError")}} is thrown. ``` </details> <details> <summary>vercel/turborepo (turbo)</summary> ### [`v2.11.2`](https://github.com/vercel/turborepo/releases/tag/v2.11.2): Turborepo v2.11.2 [Compare Source](https://github.com/vercel/turborepo/compare/v2.11.1...v2.11.2) <!-- Release notes generated using configuration in .github/release.yml at v2.11.2 --> ##### What's Changed ##### Changelog - chore: Release Turborepo 2.11.1 by [@&#8203;github-actions](https://github.com/github-actions)\[bot] in [#&#8203;14104](https://github.com/vercel/turborepo/pull/14104) - fix: Restore repeatable CLI flags by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14106](https://github.com/vercel/turborepo/pull/14106) **Full Changelog**: <https://github.com/vercel/turborepo/compare/v2.11.1...v2.11.2> ### [`v2.11.1`](https://github.com/vercel/turborepo/releases/tag/v2.11.1): Turborepo v2.11.1 [Compare Source](https://github.com/vercel/turborepo/compare/v2.11.0...v2.11.1) <!-- Release notes generated using configuration in .github/release.yml at v2.11.1 --> ##### What's Changed ##### Changelog - chore: Release Turborepo 2.11.0 by [@&#8203;github-actions](https://github.com/github-actions)\[bot] in [#&#8203;14102](https://github.com/vercel/turborepo/pull/14102) - docs: Add Turborepo 2.11 release post by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13652](https://github.com/vercel/turborepo/pull/13652) - fix: Allow esbuild builds for pnpm generators by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14103](https://github.com/vercel/turborepo/pull/14103) **Full Changelog**: <https://github.com/vercel/turborepo/compare/v2.11.0...v2.11.1> ### [`v2.11.0`](https://github.com/vercel/turborepo/releases/tag/v2.11.0): Turborepo v2.11.0 [Compare Source](https://github.com/vercel/turborepo/compare/v2.10.13...v2.11.0) <!-- Release notes generated using configuration in .github/release.yml at v2.11.0 --> ##### What's Changed ##### Changelog - release(turborepo): 2.10.0 by [@&#8203;github-actions](https://github.com/github-actions)\[bot] in [#&#8203;13131](https://github.com/vercel/turborepo/pull/13131) - docs: Add Turborepo 2.10 release post and update docs by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13096](https://github.com/vercel/turborepo/pull/13096) - perf: Avoid normalizing git index path joins by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;12944](https://github.com/vercel/turborepo/pull/12944) - chore: Remove tbx package by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13133](https://github.com/vercel/turborepo/pull/13133) - feat: Migrate TUI virtual terminals from vt100 to Ghostty by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13135](https://github.com/vercel/turborepo/pull/13135) - chore: Add examples maintenance agent by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13136](https://github.com/vercel/turborepo/pull/13136) - chore: Remove a few pre-push hooks by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13137](https://github.com/vercel/turborepo/pull/13137) - ci: Making sure Zig works in releases by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13138](https://github.com/vercel/turborepo/pull/13138) - release(turborepo): 2.10.1-canary.1 by [@&#8203;github-actions](https://github.com/github-actions)\[bot] in [#&#8203;13139](https://github.com/vercel/turborepo/pull/13139) - fix: Support Corepack packageManager integrity hashes by [@&#8203;gwagjiug](https://github.com/gwagjiug) in [#&#8203;13123](https://github.com/vercel/turborepo/pull/13123) - fix(env): Add XDG\_DATA\_\* to pass-through by [@&#8203;vercel](https://github.com/vercel)\[bot] in [#&#8203;13145](https://github.com/vercel/turborepo/pull/13145) - release(turborepo): 2.10.1-canary.2 by [@&#8203;github-actions](https://github.com/github-actions)\[bot] in [#&#8203;13147](https://github.com/vercel/turborepo/pull/13147) - feat: Support `devEngines.packageManager` by [@&#8203;lachieh](https://github.com/lachieh) in [#&#8203;12388](https://github.com/vercel/turborepo/pull/12388) - feat: Support devEngines packageManager in workspaces by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13150](https://github.com/vercel/turborepo/pull/13150) - release(turborepo): 2.10.1-canary.3 by [@&#8203;github-actions](https://github.com/github-actions)\[bot] in [#&#8203;13149](https://github.com/vercel/turborepo/pull/13149) - feat: Update add package manager codemod by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13151](https://github.com/vercel/turborepo/pull/13151) - feat: Update workspace package manager declarations by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13154](https://github.com/vercel/turborepo/pull/13154) - release(turborepo): 2.10.1 by [@&#8203;github-actions](https://github.com/github-actions)\[bot] in [#&#8203;13156](https://github.com/vercel/turborepo/pull/13156) - docs: Prefer devEngines packageManager by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13155](https://github.com/vercel/turborepo/pull/13155) - fix: Install Zig for LSP builds by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13158](https://github.com/vercel/turborepo/pull/13158) - ci: Pin macOS Rust builds to macOS 15 by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13167](https://github.com/vercel/turborepo/pull/13167) - feat: Recognize nub as a package manager by [@&#8203;colinhacks](https://github.com/colinhacks) in [#&#8203;13120](https://github.com/vercel/turborepo/pull/13120) - fix: Preserve 3-level nested Bun lockfile entries during prune by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13168](https://github.com/vercel/turborepo/pull/13168) - fix: Avoid following nested symlinked cache outputs by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13166](https://github.com/vercel/turborepo/pull/13166) - feat: Add nub package manager support to JavaScript packages by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13169](https://github.com/vercel/turborepo/pull/13169) - fix: Link ghostty-vt statically on Windows MSVC by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13171](https://github.com/vercel/turborepo/pull/13171) - release(turborepo): 2.10.2-canary.1 by [@&#8203;github-actions](https://github.com/github-actions)\[bot] in [#&#8203;13172](https://github.com/vercel/turborepo/pull/13172) - feat: Add nub to create-turbo options by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13173](https://github.com/vercel/turborepo/pull/13173) - release(turborepo): 2.10.2 by [@&#8203;github-actions](https://github.com/github-actions)\[bot] in [#&#8203;13174](https://github.com/vercel/turborepo/pull/13174) - release(turborepo): 2.10.3-canary.1 by [@&#8203;github-actions](https://github.com/github-actions)\[bot] in [#&#8203;13176](https://github.com/vercel/turborepo/pull/13176) - fix: Normalize package manager versions by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13177](https://github.com/vercel/turborepo/pull/13177) - fix: Use singular workspace in package resolution error by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13178](https://github.com/vercel/turborepo/pull/13178) - fix: Support nub native lockfiles by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13179](https://github.com/vercel/turborepo/pull/13179) - perf(build): Enable thin LTO + codegen-units=1 for release builds by [@&#8203;lukesandberg](https://github.com/lukesandberg) in [#&#8203;13160](https://github.com/vercel/turborepo/pull/13160) - release(turborepo): 2.10.3-canary.2 by [@&#8203;github-actions](https://github.com/github-actions)\[bot] in [#&#8203;13181](https://github.com/vercel/turborepo/pull/13181) - feat: Add aube package manager support by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13183](https://github.com/vercel/turborepo/pull/13183) - release(turborepo): 2.10.3-canary.3 by [@&#8203;github-actions](https://github.com/github-actions)\[bot] in [#&#8203;13184](https://github.com/vercel/turborepo/pull/13184) - fix: Normalize package manager version output by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13185](https://github.com/vercel/turborepo/pull/13185) - release(turborepo): 2.10.3-canary.4 by [@&#8203;github-actions](https://github.com/github-actions)\[bot] in [#&#8203;13186](https://github.com/vercel/turborepo/pull/13186) - refactor: Richer internal dependency data by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13188](https://github.com/vercel/turborepo/pull/13188) - fix(repository): honor semver ranges in devEngines.packageManager.version by [@&#8203;colinhacks](https://github.com/colinhacks) in [#&#8203;13189](https://github.com/vercel/turborepo/pull/13189) - fix: Skip node\_modules in boundaries checks by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13191](https://github.com/vercel/turborepo/pull/13191) - fix: Add token exchange recovery guidance by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13192](https://github.com/vercel/turborepo/pull/13192) - feat: Add --production flag to turbo prune by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13190](https://github.com/vercel/turborepo/pull/13190) - release(turborepo): 2.10.3-canary.5 by [@&#8203;github-actions](https://github.com/github-actions)\[bot] in [#&#8203;13193](https://github.com/vercel/turborepo/pull/13193) - feat: Accept Bun lockfile version 2 by [@&#8203;tsushanth](https://github.com/tsushanth) in [#&#8203;13119](https://github.com/vercel/turborepo/pull/13119) - fix: Handle task executor join errors as internal errors by [@&#8203;gwagjiug](https://github.com/gwagjiug) in [#&#8203;13148](https://github.com/vercel/turborepo/pull/13148) - fix: Tweaks for nub support by [@&#8203;colinhacks](https://github.com/colinhacks) in [#&#8203;13187](https://github.com/vercel/turborepo/pull/13187) - release(turborepo): 2.10.3-canary.6 by [@&#8203;github-actions](https://github.com/github-actions)\[bot] in [#&#8203;13194](https://github.com/vercel/turborepo/pull/13194) - release(turborepo): 2.10.3-canary.7 by [@&#8203;github-actions](https://github.com/github-actions)\[bot] in [#&#8203;13195](https://github.com/vercel/turborepo/pull/13195) - chore: Upgrade TypeScript to 7.0.1-rc by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13144](https://github.com/vercel/turborepo/pull/13144) - docs: Add filtered installs to Vercel guide by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13196](https://github.com/vercel/turborepo/pull/13196) - examples: add with-mcp-servers by [@&#8203;Nishant-Chaudhary5338](https://github.com/Nishant-Chaudhary5338) in [#&#8203;12997](https://github.com/vercel/turborepo/pull/12997) - fix: Report malformed JSON parse errors instead of panicking by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13198](https://github.com/vercel/turborepo/pull/13198) - fix: Improve error messaging when platform binary is missing by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13199](https://github.com/vercel/turborepo/pull/13199) - release(turborepo): 2.10.3-canary.8 by [@&#8203;github-actions](https://github.com/github-actions)\[bot] in [#&#8203;13200](https://github.com/vercel/turborepo/pull/13200) - fix(watch): Recover from slow initial hash instead of timing out by [@&#8203;lukesandberg](https://github.com/lukesandberg) in [#&#8203;13159](https://github.com/vercel/turborepo/pull/13159) - chore: Update vitest example to vitest 4 and use native test merging by [@&#8203;abhiaagarwal](https://github.com/abhiaagarwal) in [#&#8203;13202](https://github.com/vercel/turborepo/pull/13202) - feat: Toggle between the TUI and streamed logs by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13203](https://github.com/vercel/turborepo/pull/13203) - fix: Resolve Bun scoped package deps that share a name with a dependency by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13207](https://github.com/vercel/turborepo/pull/13207) - feat: Select tasks by clicking rows in the TUI task list by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13206](https://github.com/vercel/turborepo/pull/13206) - perf: Avoid deep-cloning dependency maps in lockfile closure cache by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13209](https://github.com/vercel/turborepo/pull/13209) - perf: Cache root internal dependencies in package graph by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13211](https://github.com/vercel/turborepo/pull/13211) - feat: Automatically copy TUI selection to clipboard on mouse release by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13208](https://github.com/vercel/turborepo/pull/13208) - perf: Cache env wildcard matches across tasks during hashing by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13210](https://github.com/vercel/turborepo/pull/13210) - perf: Replace per-package graph traversals in scope filtering by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13212](https://github.com/vercel/turborepo/pull/13212) - perf: Derive dirty hash from repo index by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13213](https://github.com/vercel/turborepo/pull/13213) - fix: Include untracked symlinks in repo-index dirty hash by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13218](https://github.com/vercel/turborepo/pull/13218) - refactor: Use upstream libghostty-vt crates instead of vendored bindings by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13205](https://github.com/vercel/turborepo/pull/13205) - fix: Remove devtools feature flag by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13219](https://github.com/vercel/turborepo/pull/13219) - fix: Harden TUI terminal restore during shutdown by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13220](https://github.com/vercel/turborepo/pull/13220) - fix: Correct gitignore precedence in untracked walk and memoize matcher chains by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13221](https://github.com/vercel/turborepo/pull/13221) - release(turborepo): 2.10.3 by [@&#8203;github-actions](https://github.com/github-actions)\[bot] in [#&#8203;13222](https://github.com/vercel/turborepo/pull/13222) - ci: Retry Windows nextest aborts from transient 0xc0000142 spawn failures by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13240](https://github.com/vercel/turborepo/pull/13240) - perf: Use mimalloc as the global allocator by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13237](https://github.com/vercel/turborepo/pull/13237) - perf: Parse yarn v1 lockfiles in a single pass by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13241](https://github.com/vercel/turborepo/pull/13241) - ci: Fix cache outputs for Eve app by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13243](https://github.com/vercel/turborepo/pull/13243) - perf: Stop materializing spans for the disabled daemon log layer by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13244](https://github.com/vercel/turborepo/pull/13244) - fix: Keep ancestor-scoped bun dependencies resolvable after prune renames by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13236](https://github.com/vercel/turborepo/pull/13236) - perf: Overlap external dependency hashing with package file hashing by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13234](https://github.com/vercel/turborepo/pull/13234) - perf: Build tracked repo index concurrently with package graph by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13232](https://github.com/vercel/turborepo/pull/13232) - perf: Release tokio runtime at exit so background DNS lookups never stall the user by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13231](https://github.com/vercel/turborepo/pull/13231) - perf: Overhaul pnpm lockfile parsing and dependency closure computation by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13228](https://github.com/vercel/turborepo/pull/13228) - feat: Add futureFlags.experimentalCargoWorkspaces flag (no-op) by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13227](https://github.com/vercel/turborepo/pull/13227) - feat: Introduce toolchain provider abstraction by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13235](https://github.com/vercel/turborepo/pull/13235) - perf: Parse Berry lockfiles in a single pass by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13242](https://github.com/vercel/turborepo/pull/13242) - fix: Apply input exclusion globs to the filesystem walk by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13224](https://github.com/vercel/turborepo/pull/13224) - fix: Stop root-directory packages from claiming every file in change mapping by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13225](https://github.com/vercel/turborepo/pull/13225) - chore: Rename turborepo-repository napi package to [@&#8203;turbo/repository](https://github.com/turbo/repository) by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13226](https://github.com/vercel/turborepo/pull/13226) - perf: Hash git blobs with hardware-accelerated SHA-1 by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13245](https://github.com/vercel/turborepo/pull/13245) - release(turborepo): 2.10.4-canary.1 by [@&#8203;github-actions](https://github.com/github-actions)\[bot] in [#&#8203;13247](https://github.com/vercel/turborepo/pull/13247) - feat: Discover Cargo crates as packages by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13248](https://github.com/vercel/turborepo/pull/13248) - perf: Reuse per-package external dependency hashes in run summaries by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13249](https://github.com/vercel/turborepo/pull/13249) - perf: Stat workspace turbo.json files concurrently during discovery by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13251](https://github.com/vercel/turborepo/pull/13251) - chore: Add tracing spans to workspace discovery and globwalk phases by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13252](https://github.com/vercel/turborepo/pull/13252) - fix: Avoid non-reentrant libc calls in concurrent shutdown process scans by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13256](https://github.com/vercel/turborepo/pull/13256) - perf: Memoize resolved task definitions during engine construction by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13257](https://github.com/vercel/turborepo/pull/13257) - perf: Compute transitive closures and external dependency hashes concurrently with run setup by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13250](https://github.com/vercel/turborepo/pull/13250) - perf: Probe microfrontends configs in parallel by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13262](https://github.com/vercel/turborepo/pull/13262) - feat: Execute Cargo crate tasks via cargo by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13261](https://github.com/vercel/turborepo/pull/13261) - perf: Pre-size engine task collections by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13265](https://github.com/vercel/turborepo/pull/13265) - feat: Expose resolved experimentalCI task configuration in `turbo query` by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13264](https://github.com/vercel/turborepo/pull/13264) - feat: Derive input and output globs for Cargo tasks by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13263](https://github.com/vercel/turborepo/pull/13263) - perf: Parse large pnpm lockfile sections in parallel by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13266](https://github.com/vercel/turborepo/pull/13266) - feat: Hash Cargo external dependencies per-crate by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13267](https://github.com/vercel/turborepo/pull/13267) - ci: Install pnpm 10 in musl containers for Library Release by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13269](https://github.com/vercel/turborepo/pull/13269) - ci: Force pnpm overwrite in Library Release musl containers by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13270](https://github.com/vercel/turborepo/pull/13270) - perf: Defer the untracked-scan barrier to first file-hash use by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13268](https://github.com/vercel/turborepo/pull/13268) - ci: Fetch API-created commit before updating local ref by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13271](https://github.com/vercel/turborepo/pull/13271) - release(library): 0.0.1-canary.22 by [@&#8203;github-actions](https://github.com/github-actions)\[bot] in [#&#8203;13272](https://github.com/vercel/turborepo/pull/13272) - perf: Remove lock and dispatch overhead from task hash precomputation by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13273](https://github.com/vercel/turborepo/pull/13273) - fix: Fall back to lockfile detection in [@&#8203;turbo/repository](https://github.com/turbo/repository) when package manager is undeclared by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13275](https://github.com/vercel/turborepo/pull/13275) - test: Add end-to-end coverage for Cargo workspaces by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13274](https://github.com/vercel/turborepo/pull/13274) - release(library): 0.0.1-canary.23 by [@&#8203;github-actions](https://github.com/github-actions)\[bot] in [#&#8203;13276](https://github.com/vercel/turborepo/pull/13276) - release(turborepo): 2.10.4-canary.2 by [@&#8203;github-actions](https://github.com/github-actions)\[bot] in [#&#8203;13278](https://github.com/vercel/turborepo/pull/13278) - fix: Collapse nested package-manager fallback conditional by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13279](https://github.com/vercel/turborepo/pull/13279) - feat: Make turbo watch Cargo-aware by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13280](https://github.com/vercel/turborepo/pull/13280) - perf: Skip dependency-closure assembly for toolchains that derive nothing by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13277](https://github.com/vercel/turborepo/pull/13277) - feat: Make turbo prune Cargo-aware by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13281](https://github.com/vercel/turborepo/pull/13281) - fix: Raise the open-file soft limit at startup by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13282](https://github.com/vercel/turborepo/pull/13282) - fix: Stop flagging relative imports that resolve into node\_modules in boundaries by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13284](https://github.com/vercel/turborepo/pull/13284) - perf: Evaluate simple include globs without wax compilation by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13285](https://github.com/vercel/turborepo/pull/13285) - chore: Dogfood native Cargo support in this repository by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13283](https://github.com/vercel/turborepo/pull/13283) - release(turborepo): 2.10.4 by [@&#8203;github-actions](https://github.com/github-actions)\[bot] in [#&#8203;13286](https://github.com/vercel/turborepo/pull/13286) - ci: Remove dead sccache configuration by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13289](https://github.com/vercel/turborepo/pull/13289) - feat: Serve the Remote Cache as an sccache backend for Cargo tasks by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13288](https://github.com/vercel/turborepo/pull/13288) - fix: Reject output path traversal by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13290](https://github.com/vercel/turborepo/pull/13290) - fix: Disable the sccache proxy when remote cache use is off by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13291](https://github.com/vercel/turborepo/pull/13291) - feat: Embed sccache so the Cargo compile cache needs no installation by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13293](https://github.com/vercel/turborepo/pull/13293) - release(turborepo): 2.10.5-canary.1 by [@&#8203;github-actions](https://github.com/github-actions)\[bot] in [#&#8203;13294](https://github.com/vercel/turborepo/pull/13294) - fix: Pin a flag-aware turbo canary for the eve-agent deployment by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13295](https://github.com/vercel/turborepo/pull/13295) - fix: Make the sccache compile cache actually cache by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13296](https://github.com/vercel/turborepo/pull/13296) - release(turborepo): 2.10.5-canary.2 by [@&#8203;github-actions](https://github.com/github-actions)\[bot] in [#&#8203;13297](https://github.com/vercel/turborepo/pull/13297) - fix: Stop ambient CARGO\_INCREMENTAL from suppressing compile cache injection by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13298](https://github.com/vercel/turborepo/pull/13298) - fix: Never let compile cache storage failures fail the build by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13299](https://github.com/vercel/turborepo/pull/13299) - test: Add outputs path-traversal negative-case regression tests by [@&#8203;dnukumamras](https://github.com/dnukumamras) in [#&#8203;13300](https://github.com/vercel/turborepo/pull/13300) - release(turborepo): 2.10.5-canary.3 by [@&#8203;github-actions](https://github.com/github-actions)\[bot] in [#&#8203;13302](https://github.com/vercel/turborepo/pull/13302) - ci: Authenticate to Remote Cache via OIDC token exchange by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13303](https://github.com/vercel/turborepo/pull/13303) - fix: Keep pnpm patches with version range keys during prune by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13307](https://github.com/vercel/turborepo/pull/13307) - test: Scrub ambient turbo configuration from integration test children by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13306](https://github.com/vercel/turborepo/pull/13306) - fix: Show toolchain tasks in the TUI and never run in silence by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13308](https://github.com/vercel/turborepo/pull/13308) - ci: Fix change detection on push events by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13304](https://github.com/vercel/turborepo/pull/13304) - refactor: Rename the Cargo toolchain id to rust by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13311](https://github.com/vercel/turborepo/pull/13311) - fix: Remove extraneous bun.lock entries during prune by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13317](https://github.com/vercel/turborepo/pull/13317) - feat: Require a user-declared name for the Cargo workspace package by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13312](https://github.com/vercel/turborepo/pull/13312) - feat: Parse and validate the task command field by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13313](https://github.com/vercel/turborepo/pull/13313) - chore: Harden turbo-vsc to invoke turbo without a shell by [@&#8203;dnukumamras](https://github.com/dnukumamras) in [#&#8203;13319](https://github.com/vercel/turborepo/pull/13319) - feat: Resolve and execute task command overrides by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13315](https://github.com/vercel/turborepo/pull/13315) - release(turborepo): 2.10.5-canary.4 by [@&#8203;github-actions](https://github.com/github-actions)\[bot] in [#&#8203;13325](https://github.com/vercel/turborepo/pull/13325) - feat: Run the Rust workspace tests through nextest via command override by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13316](https://github.com/vercel/turborepo/pull/13316) - feat: Engage the Remote Cache and sccache compile cache for Rust CI by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13292](https://github.com/vercel/turborepo/pull/13292) - ci: Pin GitHub Actions to full commit SHAs by [@&#8203;XananasX7](https://github.com/XananasX7) in [#&#8203;13143](https://github.com/vercel/turborepo/pull/13143) - fix: Make npm prune rehoisting deterministic and complete by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13323](https://github.com/vercel/turborepo/pull/13323) - feat: Report incremental cache reuse in the run summary by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13327](https://github.com/vercel/turborepo/pull/13327) - chore: Remove planning docs by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13329](https://github.com/vercel/turborepo/pull/13329) - docs: Migrate docs site to [@&#8203;vercel/geistdocs](https://github.com/vercel/geistdocs) package by [@&#8203;molebox](https://github.com/molebox) in [#&#8203;13320](https://github.com/vercel/turborepo/pull/13320) - ci: Update Remote Cache action by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13330](https://github.com/vercel/turborepo/pull/13330) - release(turborepo): 2.10.5-canary.5 by [@&#8203;github-actions](https://github.com/github-actions)\[bot] in [#&#8203;13331](https://github.com/vercel/turborepo/pull/13331) - ci: Remove path-based workflow scheduling by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13332](https://github.com/vercel/turborepo/pull/13332) - fix: Resolve EADDRINUSE in kitchen-sink api dev script by [@&#8203;ashusnapx](https://github.com/ashusnapx) in [#&#8203;13328](https://github.com/vercel/turborepo/pull/13328) - ci: Disable telemetry messages in workflows by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13334](https://github.com/vercel/turborepo/pull/13334) - fix: Prevent Cargo run tasks from being cached by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13335](https://github.com/vercel/turborepo/pull/13335) - fix: Isolate Cargo cache by host platform by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13337](https://github.com/vercel/turborepo/pull/13337) - fix: Continue TUI text selection beyond viewport by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13338](https://github.com/vercel/turborepo/pull/13338) - ci: Dogfood Cargo target restoration by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13336](https://github.com/vercel/turborepo/pull/13336) - fix: Require current Cargo lockfiles for caching by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13339](https://github.com/vercel/turborepo/pull/13339) - fix: Reject unsupported Cargo local packages by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13340](https://github.com/vercel/turborepo/pull/13340) - fix: Allow outputs outside package roots by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13342](https://github.com/vercel/turborepo/pull/13342) - fix: Resolve Cargo lock dependencies by source by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13343](https://github.com/vercel/turborepo/pull/13343) - docs: Update Cargo workspace support by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13349](https://github.com/vercel/turborepo/pull/13349) - fix: Build Ghostty for baseline CPUs by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13352](https://github.com/vercel/turborepo/pull/13352) - fix: Preserve watch rerun semantics for task inputs by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13351](https://github.com/vercel/turborepo/pull/13351) - fix: Isolate Command Overrides From Toolchain Cache I/O by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13354](https://github.com/vercel/turborepo/pull/13354) - release(turborepo): 2.10.5-canary.6 by [@&#8203;github-actions](https://github.com/github-actions)\[bot] in [#&#8203;13355](https://github.com/vercel/turborepo/pull/13355) - fix: Include patched Ghostty crate in Cargo workspace by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13357](https://github.com/vercel/turborepo/pull/13357) - ci: Shard Rust tests across runners by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13356](https://github.com/vercel/turborepo/pull/13356) - fix: Hash Cargo build environment inputs by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13348](https://github.com/vercel/turborepo/pull/13348) - fix: Synchronize Cargo prune Docker lockfile by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13350](https://github.com/vercel/turborepo/pull/13350) - chore: Update agents app Eve dependency by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13364](https://github.com/vercel/turborepo/pull/13364) - fix: Preserve Yarn package extension ranges when pruning by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13363](https://github.com/vercel/turborepo/pull/13363) - refactor: Add `Toolchain` output availability by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13360](https://github.com/vercel/turborepo/pull/13360) - release(turborepo): 2.10.5 by [@&#8203;github-actions](https://github.com/github-actions)\[bot] in [#&#8203;13368](https://github.com/vercel/turborepo/pull/13368) - fix: Disable unresolved Cargo artifact caching by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13362](https://github.com/vercel/turborepo/pull/13362) - fix: Surface create-turbo Git failures by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13371](https://github.com/vercel/turborepo/pull/13371) - fix: Resolve exact cargo profile outputs by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13366](https://github.com/vercel/turborepo/pull/13366) - fix: Prune Bun production workspace dev dependencies by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13369](https://github.com/vercel/turborepo/pull/13369) - fix: Resolve Cargo target output layouts by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13370](https://github.com/vercel/turborepo/pull/13370) - release(turborepo): 2.10.6-canary.1 by [@&#8203;github-actions](https://github.com/github-actions)\[bot] in [#&#8203;13374](https://github.com/vercel/turborepo/pull/13374) - fix: Preserve Yarn Babel extension during pruning by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13373](https://github.com/vercel/turborepo/pull/13373) - feat: Support Cargo-only repos by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13378](https://github.com/vercel/turborepo/pull/13378) - fix: Preserve colors in TUI output by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13381](https://github.com/vercel/turborepo/pull/13381) - feat: Infer Cargo workspace tasks by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13380](https://github.com/vercel/turborepo/pull/13380) - fix: Retain shutdown signals for force exit by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13382](https://github.com/vercel/turborepo/pull/13382) - release(turborepo): 2.10.6-canary.2 by [@&#8203;github-actions](https://github.com/github-actions)\[bot] in [#&#8203;13383](https://github.com/vercel/turborepo/pull/13383) - fix: Resolve weekly security audit vulnerabilities by [@&#8203;cursor](https://github.com/cursor)\[bot] in [#&#8203;13358](https://github.com/vercel/turborepo/pull/13358) - chore: Update to Rust 1.97.0 by [@&#8203;ognevny](https://github.com/ognevny) in [#&#8203;13322](https://github.com/vercel/turborepo/pull/13322) - fix: Pin VS Code extension macOS runners by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13391](https://github.com/vercel/turborepo/pull/13391) - release(turborepo): 2.10.6-canary.3 by [@&#8203;github-actions](https://github.com/github-actions)\[bot] in [#&#8203;13392](https://github.com/vercel/turborepo/pull/13392) - docs: Add Experimental Rust Guide by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13375](https://github.com/vercel/turborepo/pull/13375) - ci: Use affected filtering for JS tests by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13386](https://github.com/vercel/turborepo/pull/13386) - ci: Fold docs checks into quality by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13385](https://github.com/vercel/turborepo/pull/13385) - ci: Verify schemas through Turborepo by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13387](https://github.com/vercel/turborepo/pull/13387) - chore: Avoid duplicate N-API Cargo build by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13388](https://github.com/vercel/turborepo/pull/13388) - chore: Hash embedded frameworks data in Rust builds by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13389](https://github.com/vercel/turborepo/pull/13389) - ci: Include VS Code extension type checks by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13390](https://github.com/vercel/turborepo/pull/13390) - refactor: Run releaser bundle directly by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13393](https://github.com/vercel/turborepo/pull/13393) - refactor: Move release publishing into releaser by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13394](https://github.com/vercel/turborepo/pull/13394) - refactor: Consolidate release orchestration by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13395](https://github.com/vercel/turborepo/pull/13395) - feat: Add crate-scoped Cargo verification tasks by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13398](https://github.com/vercel/turborepo/pull/13398) - ci: Fetch release commit parent by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13400](https://github.com/vercel/turborepo/pull/13400) - docs: Update Geistdocs to 1.13.0 by [@&#8203;molebox](https://github.com/molebox) in [#&#8203;13412](https://github.com/vercel/turborepo/pull/13412) - release(turborepo): 2.10.6-canary.4 by [@&#8203;github-actions](https://github.com/github-actions)\[bot] in [#&#8203;13401](https://github.com/vercel/turborepo/pull/13401) - fix: Preserve pnpm `node@runtime:` lockfile entries by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13408](https://github.com/vercel/turborepo/pull/13408) - chore: Fix typos in with-solid example and globwatch comment by [@&#8203;tajo](https://github.com/tajo) in [#&#8203;13416](https://github.com/vercel/turborepo/pull/13416) - refactor: Remove unused public APIs found by Hawk by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13420](https://github.com/vercel/turborepo/pull/13420) - fix: Check dynamic imports in boundaries by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13418](https://github.com/vercel/turborepo/pull/13418) - refactor: Use regex! for static pattern compilation by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13419](https://github.com/vercel/turborepo/pull/13419) - fix: Refactor `turbo watch` by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13423](https://github.com/vercel/turborepo/pull/13423) - release(turborepo): 2.10.6-canary.5 by [@&#8203;github-actions](https://github.com/github-actions)\[bot] in [#&#8203;13424](https://github.com/vercel/turborepo/pull/13424) - chore: Upgrade brace-expansion by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13429](https://github.com/vercel/turborepo/pull/13429) - chore: Update tar to 7.5.18 by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13428](https://github.com/vercel/turborepo/pull/13428) - chore: Upgrade js-yaml by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13427](https://github.com/vercel/turborepo/pull/13427) - fix: Match JIT inputs for affected tasks by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13426](https://github.com/vercel/turborepo/pull/13426) - fix: Preserve project Yarn package extensions by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13425](https://github.com/vercel/turborepo/pull/13425) - release(turborepo): 2.10.6 by [@&#8203;github-actions](https://github.com/github-actions)\[bot] in [#&#8203;13431](https://github.com/vercel/turborepo/pull/13431) - chore: Refine bug report template help section by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13433](https://github.com/vercel/turborepo/pull/13433) - fix: Verify version after attempting codemod upgrade by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13446](https://github.com/vercel/turborepo/pull/13446) - test: Characterize JavaScript package discovery by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13440](https://github.com/vercel/turborepo/pull/13440) - refactor: Separate package graph node assembly by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13441](https://github.com/vercel/turborepo/pull/13441) - fix: Upgrade [@&#8203;vercel/connect](https://github.com/vercel/connect) by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13450](https://github.com/vercel/turborepo/pull/13450) - refactor: Add authoritative package knowledge by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13442](https://github.com/vercel/turborepo/pull/13442) - feat: Select runnable task entrypoints by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13452](https://github.com/vercel/turborepo/pull/13452) - refactor: Add workspace root contribution contract by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13447](https://github.com/vercel/turborepo/pull/13447) - refactor: Use package knowledge for scope selection by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13443](https://github.com/vercel/turborepo/pull/13443) - fix: Prevent mobile homepage overflow by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13453](https://github.com/vercel/turborepo/pull/13453) - docs: Document service readiness probes by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13472](https://github.com/vercel/turborepo/pull/13472) - fix: Preserve pnpm root dependencies during prune by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13476](https://github.com/vercel/turborepo/pull/13476) - fix: Preserve pnpm aliased dependencies during prune by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13477](https://github.com/vercel/turborepo/pull/13477) - release(turborepo): 2.10.7-canary.1 by [@&#8203;github-actions](https://github.com/github-actions)\[bot] in [#&#8203;13478](https://github.com/vercel/turborepo/pull/13478) - test: Add Terminal UI sanity tests by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13475](https://github.com/vercel/turborepo/pull/13475) - chore: Upgrade Next.js by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13482](https://github.com/vercel/turborepo/pull/13482) - chore: Upgrade brace-expansion by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13483](https://github.com/vercel/turborepo/pull/13483) - fix: Support multiple macOS file watch roots by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13484](https://github.com/vercel/turborepo/pull/13484) - fix: Scroll TUI task list with mouse wheel by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13479](https://github.com/vercel/turborepo/pull/13479) - fix: Make releases resumable by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13486](https://github.com/vercel/turborepo/pull/13486) - refactor: Expose knowledge-backed package scope views by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13456](https://github.com/vercel/turborepo/pull/13456) - chore: Release Turborepo 2.10.7 by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13489](https://github.com/vercel/turborepo/pull/13489) - refactor: Use package knowledge for configuration scopes by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13457](https://github.com/vercel/turborepo/pull/13457) - refactor: Use package knowledge for run scope enumeration by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13458](https://github.com/vercel/turborepo/pull/13458) - release(turborepo): 2.10.8-canary.1 by [@&#8203;github-actions](https://github.com/github-actions)\[bot] in [#&#8203;13490](https://github.com/vercel/turborepo/pull/13490) - refactor: Use package knowledge in repository views by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13459](https://github.com/vercel/turborepo/pull/13459) - refactor: Use package knowledge in package integrations by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13460](https://github.com/vercel/turborepo/pull/13460) - ci: Parallelize environment setup steps by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13491](https://github.com/vercel/turborepo/pull/13491) - release(turborepo): 2.10.8-canary.2 by [@&#8203;github-actions](https://github.com/github-actions)\[bot] in [#&#8203;13492](https://github.com/vercel/turborepo/pull/13492) - refactor: Use package knowledge for task hashing paths by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13461](https://github.com/vercel/turborepo/pull/13461) - refactor: Use package knowledge for run-cache paths by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13462](https://github.com/vercel/turborepo/pull/13462) - refactor: Bind toolchain callbacks to package knowledge by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13463](https://github.com/vercel/turborepo/pull/13463) - refactor: Use package knowledge for microfrontend commands by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13464](https://github.com/vercel/turborepo/pull/13464) - refactor: Use package knowledge for run summaries by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13465](https://github.com/vercel/turborepo/pull/13465) - refactor: Use package knowledge for watcher paths by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13466](https://github.com/vercel/turborepo/pull/13466) - ci: Enable remote cache for types codegen by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13495](https://github.com/vercel/turborepo/pull/13495) - docs: Fix llms.txt links to page markdown routes by [@&#8203;molebox](https://github.com/molebox) in [#&#8203;13497](https://github.com/vercel/turborepo/pull/13497) - refactor: Use package knowledge for prune paths by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13467](https://github.com/vercel/turborepo/pull/13467) - refactor: Use package knowledge in the LSP by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13468](https://github.com/vercel/turborepo/pull/13468) - refactor: Use consistent repository construction by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13469](https://github.com/vercel/turborepo/pull/13469) - refactor: Delete legacy package and scope authority by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13470](https://github.com/vercel/turborepo/pull/13470) - perf: Cache telemetry salt instead of re-reading config on every hash by [@&#8203;charpeni](https://github.com/charpeni) in [#&#8203;13498](https://github.com/vercel/turborepo/pull/13498) - feat: Support Android (Termux) by [@&#8203;gtbuchanan](https://github.com/gtbuchanan) in [#&#8203;12735](https://github.com/vercel/turborepo/pull/12735) - ci: Restore Cargo targets on all test platforms by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13505](https://github.com/vercel/turborepo/pull/13505) - fix: Resolve gitdir for linked worktrees in repo index by [@&#8203;charpeni](https://github.com/charpeni) in [#&#8203;13503](https://github.com/vercel/turborepo/pull/13503) - test: Characterize relationship projections by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13499](https://github.com/vercel/turborepo/pull/13499) - refactor: Produce native relationship observations by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13500](https://github.com/vercel/turborepo/pull/13500) - feat: Resolve GitHub Actions remote base refs behind future flag by [@&#8203;louis-bompart](https://github.com/louis-bompart) in [#&#8203;10732](https://github.com/vercel/turborepo/pull/10732) - refactor: Add core relationship projections by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13502](https://github.com/vercel/turborepo/pull/13502) - refactor: Define external resolution contracts by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13507](https://github.com/vercel/turborepo/pull/13507) - refactor: Move repository tasks into Turbo configuration by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13504](https://github.com/vercel/turborepo/pull/13504) - refactor: Build JavaScript external resolution generations by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13508](https://github.com/vercel/turborepo/pull/13508) - refactor: Contribute Cargo external resolutions by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13509](https://github.com/vercel/turborepo/pull/13509) - refactor: Migrate external declaration consumers by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13511](https://github.com/vercel/turborepo/pull/13511) - ci: Auto-merge release PRs by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13510](https://github.com/vercel/turborepo/pull/13510) - chore: Release Turborepo 2.10.8-canary.3 by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13512](https://github.com/vercel/turborepo/pull/13512) - fix: Use tokenless release review gate by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13513](https://github.com/vercel/turborepo/pull/13513) - refactor: Use resolution fingerprints for task hashes by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13514](https://github.com/vercel/turborepo/pull/13514) - fix: Support fork PRs in review gate by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13516](https://github.com/vercel/turborepo/pull/13516) - refactor: Migrate lockfile affectedness by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13519](https://github.com/vercel/turborepo/pull/13519) - refactor: Migrate external resolution summaries by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13520](https://github.com/vercel/turborepo/pull/13520) - refactor: Migrate external package queries to resolution knowledge by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13523](https://github.com/vercel/turborepo/pull/13523) - fix: Serialize macOS Homebrew setup by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13549](https://github.com/vercel/turborepo/pull/13549) - refactor: Migrate prune lockfile keys to resolution identities by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13524](https://github.com/vercel/turborepo/pull/13524) - refactor: Migrate global hash inputs to resolution knowledge by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13525](https://github.com/vercel/turborepo/pull/13525) - refactor: Delete legacy external-resolution PackageInfo state by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13526](https://github.com/vercel/turborepo/pull/13526) - chore: Release Turborepo 2.10.8-canary.4 by [@&#8203;github-actions](https://github.com/github-actions)\[bot] in [#&#8203;13557](https://github.com/vercel/turborepo/pull/13557) - refactor: Remove external declaration compatibility paths by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13527](https://github.com/vercel/turborepo/pull/13527) - refactor: Produce immutable native task and command knowledge by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13528](https://github.com/vercel/turborepo/pull/13528) - refactor: Migrate native task registration and suggestions by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13529](https://github.com/vercel/turborepo/pull/13529) - refactor: Migrate turbo-json native task synthesis by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13530](https://github.com/vercel/turborepo/pull/13530) - refactor: Migrate persistent and recursive task validation by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13531](https://github.com/vercel/turborepo/pull/13531) - refactor: Migrate native task definition precedence by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13532](https://github.com/vercel/turborepo/pull/13532) - refactor: Migrate engine native command planning by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13533](https://github.com/vercel/turborepo/pull/13533) - refactor: Migrate executor native command resolution by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13534](https://github.com/vercel/turborepo/pull/13534) - refactor: Migrate native task query, devtools, and LSP views by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13535](https://github.com/vercel/turborepo/pull/13535) - refactor: Migrate command summaries and delete legacy task paths by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13536](https://github.com/vercel/turborepo/pull/13536) - refactor: Produce immutable task-contract knowledge by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13537](https://github.com/vercel/turborepo/pull/13537) - refactor: Migrate engine task-contract composition by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13538](https://github.com/vercel/turborepo/pull/13538) - refactor: Migrate hashing engines to task contracts by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13539](https://github.com/vercel/turborepo/pull/13539) - refactor: Exclude JavaScript from toolchain task-I/O dispatch by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13540](https://github.com/vercel/turborepo/pull/13540) - refactor: Migrate change classification to immutable knowledge by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13543](https://github.com/vercel/turborepo/pull/13543) - refactor: Separate prune rendering with golden coverage by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13546](https://github.com/vercel/turborepo/pull/13546) - refactor: Delete JS format interpretation from prune orchestration by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13554](https://github.com/vercel/turborepo/pull/13554) - refactor: Audit remaining JS knowledge consumer reads by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13556](https://github.com/vercel/turborepo/pull/13556) - refactor: Migrate MFE dependency detection off PackageInfo by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13558](https://github.com/vercel/turborepo/pull/13558) - refactor: Remove prune PackageInfo dependencies by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13562](https://github.com/vercel/turborepo/pull/13562) - refactor: Remove residual runtime PackageInfo gates by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13564](https://github.com/vercel/turborepo/pull/13564) - refactor: Migrate boundary diagnostics off PackageInfo by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13571](https://github.com/vercel/turborepo/pull/13571) - docs: Audit Cargo package knowledge by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13572](https://github.com/vercel/turborepo/pull/13572) - refactor: Complete Cargo relationship and resolution knowledge by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13576](https://github.com/vercel/turborepo/pull/13576) - refactor: Port Cargo task and contract knowledge by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13581](https://github.com/vercel/turborepo/pull/13581) - refactor: Port Cargo watch and prune knowledge by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13582](https://github.com/vercel/turborepo/pull/13582) - refactor: Remove runtime toolchain dispatch by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13584](https://github.com/vercel/turborepo/pull/13584) - ci: Restore Cargo target for lockfile tests by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13588](https://github.com/vercel/turborepo/pull/13588) - refactor: Replace toolchains with repository contributors by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13585](https://github.com/vercel/turborepo/pull/13585) - refactor: Remove Cargo contributor plumbing by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13586](https://github.com/vercel/turborepo/pull/13586) - refactor: Remove ToolchainId runtime dispatch by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13587](https://github.com/vercel/turborepo/pull/13587) - refactor: Route task behavior through contract domains by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13589](https://github.com/vercel/turborepo/pull/13589) - refactor: Route package consumers by manifest by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13591](https://github.com/vercel/turborepo/pull/13591) - refactor: Route MFE eligibility by manifest by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13592](https://github.com/vercel/turborepo/pull/13592) - refactor: Project manifest-derived repository facts by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13593](https://github.com/vercel/turborepo/pull/13593) - refactor: Route residual task behavior by capability by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13595](https://github.com/vercel/turborepo/pull/13595) - refactor: Route resolution through explicit domains by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13596](https://github.com/vercel/turborepo/pull/13596) - refactor: Route N-API package listing by manifest by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13597](https://github.com/vercel/turborepo/pull/13597) - docs: Vercel Remote Cache authentication with OIDC policies by [@&#8203;markandrus](https://github.com/markandrus) in [#&#8203;13140](https://github.com/vercel/turborepo/pull/13140) - refactor: Own resolution fingerprints in repository by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13598](https://github.com/vercel/turborepo/pull/13598) - refactor: Fail closed on invalid relationships by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13599](https://github.com/vercel/turborepo/pull/13599) - perf: Reuse Cargo metadata discovery snapshot by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13600](https://github.com/vercel/turborepo/pull/13600) - refactor: Resolve MFE package ownership from graph by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13601](https://github.com/vercel/turborepo/pull/13601) - refactor: Remove retained package payloads by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13603](https://github.com/vercel/turborepo/pull/13603) - feat: Add native Cargo format task by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13606](https://github.com/vercel/turborepo/pull/13606) - refactor: Compose repository graphs for optional toolchains by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13608](https://github.com/vercel/turborepo/pull/13608) - ci: Invalidate Cap'n Proto caches by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13616](https://github.com/vercel/turborepo/pull/13616) - feat: Discover uv workspaces by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13609](https://github.com/vercel/turborepo/pull/13609) - feat: Run native uv tasks by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13610](https://github.com/vercel/turborepo/pull/13610) - feat: Hash uv lockfile closures by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13611](https://github.com/vercel/turborepo/pull/13611) - fix: Make Windows Cap'n Proto cache relocatable by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13621](https://github.com/vercel/turborepo/pull/13621) - feat: Watch uv workspace changes by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13612](https://github.com/vercel/turborepo/pull/13612) - feat: Prune uv workspaces by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13613](https://github.com/vercel/turborepo/pull/13613) - fix: Fall back to polling on macOS by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13622](https://github.com/vercel/turborepo/pull/13622) - test: Add uv workspace integration coverage by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13602](https://github.com/vercel/turborepo/pull/13602) - chore: Release Turborepo 2.10.8 by [@&#8203;github-actions](https://github.com/github-actions)\[bot] in [#&#8203;13626](https://github.com/vercel/turborepo/pull/13626) - perf: Walk literal-prefix tree globs without wax compilation by [@&#8203;charpeni](https://github.com/charpeni) in [#&#8203;13522](https://github.com/vercel/turborepo/pull/13522) - fix: Accept semver ranges in devEngines.packageManager.version by [@&#8203;bangseongbeom](https://github.com/bangseongbeom) in [#&#8203;13623](https://github.com/vercel/turborepo/pull/13623) - docs: Explain affected package invalidation reasons by [@&#8203;ghoullier](https://github.com/ghoullier) in [#&#8203;13594](https://github.com/vercel/turborepo/pull/13594) - perf(lockfiles): Borrow field-name scalars in the pnpm fast parser by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13648](https://github.com/vercel/turborepo/pull/13648) - perf(repository): Avoid discarded alias allocation in Relationship by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13650](https://github.com/vercel/turborepo/pull/13650) - perf(lockfiles): Drop redundant human\_name clone for pnpm v7/v9 by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13649](https://github.com/vercel/turborepo/pull/13649) - perf: Index workspace nodes by name in project\_relationships by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13647](https://github.com/vercel/turborepo/pull/13647) - perf: Share resolution identity lists across identical workspace closures by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13641](https://github.com/vercel/turborepo/pull/13641) - docs: Fix duplicated word in runtime dependencies guide summary by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13630](https://github.com/vercel/turborepo/pull/13630) - refactor: Remove turborepo-lsp dependency on turborepo-lib by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13631](https://github.com/vercel/turborepo/pull/13631) - perf: Index Bun nested lockfile entries by name for fallback resolution by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13633](https://github.com/vercel/turborepo/pull/13633) - perf: Memoize framework inference per package during task hashing by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13634](https://github.com/vercel/turborepo/pull/13634) - perf: Avoid materializing transient declarations in external\_dependencies by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13646](https://github.com/vercel/turborepo/pull/13646) - perf: Enable shared closure DP for npm and yarn1 lockfiles by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13635](https://github.com/vercel/turborepo/pull/13635) - perf: Parse pnpm explicit-key entries in the lockfile fast path by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13640](https://github.com/vercel/turborepo/pull/13640) - perf: Parallelize resolution fingerprint hashing by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13642](https://github.com/vercel/turborepo/pull/13642) - perf: Build resolution identity lists in parallel by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13643](https://github.com/vercel/turborepo/pull/13643) - perf: Intern resolution identities as Arc\<str> across closures by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13645](https://github.com/vercel/turborepo/pull/13645) - fix: Compose affected tasks with package filters by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13656](https://github.com/vercel/turborepo/pull/13656) - docs: Explain worktree cache path isolation by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13657](https://github.com/vercel/turborepo/pull/13657) - fix: Upgrade brace-expansion to 5.0.9 by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13658](https://github.com/vercel/turborepo/pull/13658) - docs: Correct verified inaccuracies in the Turborepo Agent Skill by [@&#8203;charpeni](https://github.com/charpeni) in [#&#8203;13644](https://github.com/vercel/turborepo/pull/13644) - chore: Update Next.js to 16.3.0 by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13659](https://github.com/vercel/turborepo/pull/13659) - fix: Don't use `eprintln!` in the panic hook by [@&#8203;molofsky](https://github.com/molofsky) in [#&#8203;13637](https://github.com/vercel/turborepo/pull/13637) - fix: Invalidate only when Git ignore sources change by [@&#8203;smasato](https://github.com/smasato) in [#&#8203;13632](https://github.com/vercel/turborepo/pull/13632) - docs: Update Geistdocs to 1.19.4 by [@&#8203;christopherkindl](https://github.com/christopherkindl) in [#&#8203;13680](https://github.com/vercel/turborepo/pull/13680) - docs: Exclude Turborepo from its own OSS products menu by [@&#8203;christopherkindl](https://github.com/christopherkindl) in [#&#8203;13681](https://github.com/vercel/turborepo/pull/13681) - docs: Use the geistdocs Turborepo logo in the navbar by [@&#8203;christopherkindl](https://github.com/christopherkindl) in [#&#8203;13682](https://github.com/vercel/turborepo/pull/13682) - docs: Update redirected vercel.com/nextjs.org links to current targets by [@&#8203;molebox](https://github.com/molebox) in [#&#8203;13685](https://github.com/vercel/turborepo/pull/13685) - refactor: Generalize native command arguments by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13664](https://github.com/vercel/turborepo/pull/13664) - refactor: Move native contracts to tasks by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13665](https://github.com/vercel/turborepo/pull/13665) - docs: Fix loadTransformers reference in turbo-codemod README by [@&#8203;latent-9](https://github.com/latent-9) in [#&#8203;13683](https://github.com/vercel/turborepo/pull/13683) - refactor: Model native task execution explicitly by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13666](https://github.com/vercel/turborepo/pull/13666) - feat: Compose aggregate native task dependencies by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13667](https://github.com/vercel/turborepo/pull/13667) - fix: Respect aggregate task overrides by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13668](https://github.com/vercel/turborepo/pull/13668) - test: Stabilize watch task inputs regression test by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13686](https://github.com/vercel/turborepo/pull/13686) - feat: Parse Python quality tool declarations by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13669](https://github.com/vercel/turborepo/pull/13669) - feat: Resolve Python quality plans by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13670](https://github.com/vercel/turborepo/pull/13670) - refactor: Extract uv native task specs by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13671](https://github.com/vercel/turborepo/pull/13671) - feat: Synthesize Python quality tasks by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13672](https://github.com/vercel/turborepo/pull/13672) - test: Cover Python quality task commands by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13673](https://github.com/vercel/turborepo/pull/13673) - feat: Hash Python quality task inputs by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13674](https://github.com/vercel/turborepo/pull/13674) - test: Cover Python quality task graph by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13675](https://github.com/vercel/turborepo/pull/13675) - chore: Release Turborepo 2.10.9-canary.1 by [@&#8203;github-actions](https://github.com/github-actions)\[bot] in [#&#8203;13687](https://github.com/vercel/turborepo/pull/13687) - docs: Document dependency-driven Python tasks by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13676](https://github.com/vercel/turborepo/pull/13676) - fix: Prune Bun wildcard workspace dev dependencies by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13694](https://github.com/vercel/turborepo/pull/13694) - fix: Prevent Windows process cleanup PID reuse by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13695](https://github.com/vercel/turborepo/pull/13695) - chore: Release Turborepo 2.10.9 by [@&#8203;github-actions](https://github.com/github-actions)\[bot] in [#&#8203;13696](https://github.com/vercel/turborepo/pull/13696) - docs: Update Geistdocs to 1.19.6 by [@&#8203;molebox](https://github.com/molebox) in [#&#8203;13701](https://github.com/vercel/turborepo/pull/13701) - feat: Support nub.lock files by [@&#8203;akshat-OwO](https://github.com/akshat-OwO) in [#&#8203;13699](https://github.com/vercel/turborepo/pull/13699) - chore: Release Turborepo 2.10.10-canary.1 by [@&#8203;github-actions](https://github.com/github-actions)\[bot] in [#&#8203;13703](https://github.com/vercel/turborepo/pull/13703) - perf: Walk the repository once when pruning by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13705](https://github.com/vercel/turborepo/pull/13705) - fix(deps): Upgrade js-yaml to 4.3.1 (GHSA-5p4m-2wfm-xmqj) by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13704](https://github.com/vercel/turborepo/pull/13704) - chore: Move pnpm overrides to pnpm-workspace.yaml by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13706](https://github.com/vercel/turborepo/pull/13706) - chore: Release Turborepo 2.10.10-canary.2 by [@&#8203;github-actions](https://github.com/github-actions)\[bot] in [#&#8203;13707](https://github.com/vercel/turborepo/pull/13707) - fix: Enable Eve examples pull requests by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13708](https://github.com/vercel/turborepo/pull/13708) - feat: Add Eve operator dashboard by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13710](https://github.com/vercel/turborepo/pull/13710) - fix: Remove unsupported sandbox network policy by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13712](https://github.com/vercel/turborepo/pull/13712) - feat: Rotate Eve example maintenance daily by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13715](https://github.com/vercel/turborepo/pull/13715) - fix: Resolve agent lint errors by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13716](https://github.com/vercel/turborepo/pull/13716) - chore: Upgrade TypeScript to 7.0.2 by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13713](https://github.com/vercel/turborepo/pull/13713) - fix(cli): Move EXPERIMENTAL label from ls command to --output flag by [@&#8203;okxint](https://github.com/okxint) in [#&#8203;13709](https://github.com/vercel/turborepo/pull/13709) - fix: Apply nested parent gitignore patterns in manual hashing by [@&#8203;alexey-yunoshev-1](https://github.com/alexey-yunoshev-1) in [#&#8203;13690](https://github.com/vercel/turborepo/pull/13690) - feat: Add pytest task discovery by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13720](https://github.com/vercel/turborepo/pull/13720) - chore: Release Turborepo 2.10.10-canary.3 by [@&#8203;github-actions](https://github.com/github-actions)\[bot] in [#&#8203;13721](https://github.com/vercel/turborepo/pull/13721) - chore: Validate updated examples with turbo by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13723](https://github.com/vercel/turborepo/pull/13723) - chore: Update with-rollup example by [@&#8203;vercel-gh-bot-3](https://github.com/vercel-gh-bot-3)\[bot] in [#&#8203;13718](https://github.com/vercel/turborepo/pull/13718) - feat: Notify Slack when agents open PRs by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13722](https://github.com/vercel/turborepo/pull/13722) - chore: Enforce draft pull requests by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13726](https://github.com/vercel/turborepo/pull/13726) - fix: Expose Slack delivery diagnostics by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13733](https://github.com/vercel/turborepo/pull/13733) - chore: Update non-monorepo example by [@&#8203;vercel-gh-bot-2](https://github.com/vercel-gh-bot-2)\[bot] in [#&#8203;13727](https://github.com/vercel/turborepo/pull/13727) - chore: Update with-rsbuild example by [@&#8203;vercel-gh-bot-3](https://github.com/vercel-gh-bot-3)\[bot] in [#&#8203;13730](https://github.com/vercel/turborepo/pull/13730) - feat: Add daily performance agent by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13729](https://github.com/vercel/turborepo/pull/13729) - feat: Support cross-toolchain repository affectedness by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13737](https://github.com/vercel/turborepo/pull/13737) - fix: Scope musl library dependency installation by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13738](https://github.com/vercel/turborepo/pull/13738) - chore: Release Turbo repository packages 0.0.1-canary.24 by [@&#8203;github-actions](https://github.com/github-actions)\[bot] in [#&#8203;13739](https://github.com/vercel/turborepo/pull/13739) - fix(bun): Preserve overrides objects, trustedDependencies, workspace bins and git integrity through prune; accept lockfileVersion 3 by [@&#8203;Jarred-Sumner](https://github.com/Jarred-Sumner) in [#&#8203;13740](https://github.com/vercel/turborepo/pull/13740) - chore: Release Turborepo 2.10.10 by [@&#8203;github-actions](https://github.com/github-actions)\[bot] in [#&#8203;13741](https://github.com/vercel/turborepo/pull/13741) - fix: Automatically approve release workflows by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13743](https://github.com/vercel/turborepo/pull/13743) - chore: Release Turborepo 2.10.11-canary.1 by [@&#8203;github-actions](https://github.com/github-actions)\[bot] in [#&#8203;13744](https://github.com/vercel/turborepo/pull/13744) - fix: Avoid repeated strict entrypoint traversal by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13745](https://github.com/vercel/turborepo/pull/13745) - chore: Release Turborepo 2.10.11-canary.2 by [@&#8203;github-actions](https://github.com/github-actions)\[bot] in [#&#8203;13747](https://github.com/vercel/turborepo/pull/13747) - feat: Cache native uv tool tasks by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13748](https://github.com/vercel/turborepo/pull/13748) - chore: Release Turborepo 2.10.11-canary.3 by [@&#8203;github-actions](https://github.com/github-actions)\[bot] in [#&#8203;13749](https://github.com/vercel/turborepo/pull/13749) - fix: Isolate concurrent generator config bundles by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13750](https://github.com/vercel/turborepo/pull/13750) - chore: Forbid release-age exclusions in examples maintenance by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13751](https://github.com/vercel/turborepo/pull/13751) - fix: Respect gitignore without git metadata by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13756](https://github.com/vercel/turborepo/pull/13756) - chore: Release Turborepo 2.10.11-canary.4 by [@&#8203;github-actions](https://github.com/github-actions)\[bot] in [#&#8203;13759](https://github.com/vercel/turborepo/pull/13759) - feat: Expand performance agent toolbox by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13761](https://github.com/vercel/turborepo/pull/13761) - docs: Redesign Turborepo homepage by [@&#8203;christopherkindl](https://github.com/christopherkindl) in [#&#8203;13702](https://github.com/vercel/turborepo/pull/13702) - fix: Tolerate transient input files by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13734](https://github.com/vercel/turborepo/pull/13734) - chore: Release Turborepo 2.10.11 by [@&#8203;github-actions](https://github.com/github-actions)\[bot] in [#&#8203;13765](https://github.com/vercel/turborepo/pull/13765) - feat: Refresh documentation social cards by [@&#8203;christopherkindl](https://github.com/christopherkindl) in [#&#8203;13764](https://github.com/vercel/turborepo/pull/13764) - fix: Preserve showcase logo sizes by [@&#8203;christopherkindl](https://github.com/christopherkindl) in [#&#8203;13766](https://github.com/vercel/turborepo/pull/13766) - fix: Refine mobile homepage interactions by [@&#8203;christopherkindl](https://github.com/christopherkindl) in [#&#8203;13767](https://github.com/vercel/turborepo/pull/13767) - fix: Align homepage KPIs to the right by [@&#8203;christopherkindl](https://github.com/christopherkindl) in [#&#8203;13769](https://github.com/vercel/turborepo/pull/13769) - fix: Prevent homepage KPI overflow by [@&#8203;christopherkindl](https://github.com/christopherkindl) in [#&#8203;13770](https://github.com/vercel/turborepo/pull/13770) - chore: Update Geistdocs to 1.20.4 by [@&#8203;molebox](https://github.com/molebox) in [#&#8203;13771](https://github.com/vercel/turborepo/pull/13771) - perf: Skip unused Package Configuration `stat`s by [@&#8203;vercel-gh-bot-4](https://github.com/vercel-gh-bot-4)\[bot] in [#&#8203;13746](https://github.com/vercel/turborepo/pull/13746) - chore: Update with-solid example by [@&#8203;vercel-gh-bot-5](https://github.com/vercel-gh-bot-5)\[bot] in [#&#8203;13752](https://github.com/vercel/turborepo/pull/13752) - chore: Update with-tailwind example by [@&#8203;vercel-gh-bot-5](https://github.com/vercel-gh-bot-5)\[bot] in [#&#8203;13762](https://github.com/vercel/turborepo/pull/13762) - perf: Stream dry-run JSON output by [@&#8203;vercel-gh-bot-4](https://github.com/vercel-gh-bot-4)\[bot] in [#&#8203;13760](https://github.com/vercel/turborepo/pull/13760) - chore: Update with-ultracite example by [@&#8203;vercel-gh-bot-5](https://github.com/vercel-gh-bot-5)\[bot] in [#&#8203;13772](https://github.com/vercel/turborepo/pull/13772) - perf: Merge same-prefix tree-wildcard globs into one directory walk by [@&#8203;vercel-gh-bot-5](https://github.com/vercel-gh-bot-5)\[bot] in [#&#8203;13763](https://github.com/vercel/turborepo/pull/13763) - chore: Update with-svelte example by [@&#8203;floriansalihovic](https://github.com/floriansalihovic) in [#&#8203;13118](https://github.com/vercel/turborepo/pull/13118) - chore: Add unified agent control plane by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13757](https://github.com/vercel/turborepo/pull/13757) - fix: Remove incremental task caching by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13773](https://github.com/vercel/turborepo/pull/13773) - chore: Rename agents app to factory by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13774](https://github.com/vercel/turborepo/pull/13774) - chore: Update oxlint and oxfmt by [@&#8203;charpeni](https://github.com/charpeni) in [#&#8203;13777](https://github.com/vercel/turborepo/pull/13777) - feat: Add security.txt endpoint by [@&#8203;charpeni](https://github.com/charpeni) in [#&#8203;13778](https://github.com/vercel/turborepo/pull/13778) - feat: Redesign factory control plane by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13775](https://github.com/vercel/turborepo/pull/13775) - perf: Replace regex captures with hand-written parsers in berry lockfile identifiers by [@&#8203;vercel-gh-bot-2](https://github.com/vercel-gh-bot-2)\[bot] in [#&#8203;13776](https://github.com/vercel/turborepo/pull/13776) - chore: Upgrade the factory eve agent to 0.39.3 by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13783](https://github.com/vercel/turborepo/pull/13783) - chore: Update with-rsbuild-module-federation example by [@&#8203;vercel-gh-bot-4](https://github.com/vercel-gh-bot-4)\[bot] in [#&#8203;13786](https://github.com/vercel/turborepo/pull/13786) - perf: Index Berry lockfile resolution overrides by dependency name by [@&#8203;vercel-gh-bot-5](https://github.com/vercel-gh-bot-5)\[bot] in [#&#8203;13787](https://github.com/vercel/turborepo/pull/13787) - chore: Update remote cache action to v1.1.0 by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13789](https://github.com/vercel/turborepo/pull/13789) - docs: Fix reference links and validation by [@&#8203;charpeni](https://github.com/charpeni) in [#&#8203;13784](https://github.com/vercel/turborepo/pull/13784) - feat: Add SSH command affordance for factory sandboxes by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13779](https://github.com/vercel/turborepo/pull/13779) - fix: Show invalid affected task glob by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13793](https://github.com/vercel/turborepo/pull/13793) - perf: Skip unused repository indexing for package listings by [@&#8203;vercel-gh-bot-4](https://github.com/vercel-gh-bot-4)\[bot] in [#&#8203;13792](https://github.com/vercel/turborepo/pull/13792) - feat: Rebuild the factory image on every merge to main by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13781](https://github.com/vercel/turborepo/pull/13781) - chore: Add full-page terminal SSH sessions to Factory sandbox inventory by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13780](https://github.com/vercel/turborepo/pull/13780) - chore: Update with-shell-commands example by [@&#8203;vercel-gh-bot-4](https://github.com/vercel-gh-bot-4)\[bot] in [#&#8203;13791](https://github.com/vercel/turborepo/pull/13791) - chore: Allow SSH terminal for completed-run sandboxes in Factory by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13782](https://github.com/vercel/turborepo/pull/13782) - fix: Decouple graceful shutdown tests from the shell commands example by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13799](https://github.com/vercel/turborepo/pull/13799) - feat: Start ad-hoc factory work from the operator page by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13798](https://github.com/vercel/turborepo/pull/13798) - chore: Update with-solid example by [@&#8203;vercel-gh-bot-4](https://github.com/vercel-gh-bot-4)\[bot] in [#&#8203;13797](https://github.com/vercel/turborepo/pull/13797) - fix: Rebuild factory images without custom workflows by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13801](https://github.com/vercel/turborepo/pull/13801) - feat: Add factory navigation by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13802](https://github.com/vercel/turborepo/pull/13802) - refactor: Migrate Factory styles to Tailwind by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13803](https://github.com/vercel/turborepo/pull/13803) - feat: Add durable Factory workspaces by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13804](https://github.com/vercel/turborepo/pull/13804) - feat: Stream Factory sandbox as terminal by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13807](https://github.com/vercel/turborepo/pull/13807) - fix: Restore Factory workspace creation by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13812](https://github.com/vercel/turborepo/pull/13812) - fix: Update Factory session network policy by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13814](https://github.com/vercel/turborepo/pull/13814) - fix: Improve Factory terminal line spacing by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13815](https://github.com/vercel/turborepo/pull/13815) - fix: Install Factory publishing skill by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13817](https://github.com/vercel/turborepo/pull/13817) - chore: Route Factory publishing through Eve by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13816](https://github.com/vercel/turborepo/pull/13816) - feat: Standardize Factory meta titles to Turborepo suffix by [@&#8203;vercel-gh-bot-3](https://github.com/vercel-gh-bot-3)\[bot] in [#&#8203;13819](https://github.com/vercel/turborepo/pull/13819) - perf: Skip Factory chat verification by [@&#8203;vercel-gh-bot-2](https://github.com/vercel-gh-bot-2)\[bot] in [#&#8203;13820](https://github.com/vercel/turborepo/pull/13820) - fix: Restore Factory workspaces by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13823](https://github.com/vercel/turborepo/pull/13823) - docs: Fix inconsistent Yarn command in basic example by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13825](https://github.com/vercel/turborepo/pull/13825) - chore: Update non-monorepo example by [@&#8203;vercel-gh-bot-3](https://github.com/vercel-gh-bot-3)\[bot] in [#&#8203;13808](https://github.com/vercel/turborepo/pull/13808) - perf: Batch package detail queries by [@&#8203;vercel-gh-bot-2](https://github.com/vercel-gh-bot-2)\[bot] in [#&#8203;13809](https://github.com/vercel/turborepo/pull/13809) - chore: Update basic example by [@&#8203;vercel-gh-bot-3](https://github.com/vercel-gh-bot-3)\[bot] in [#&#8203;13824](https://github.com/vercel/turborepo/pull/13824) - fix: Include virtual tasks in affected query by [@&#8203;Sakshamm-Goyal](https://github.com/Sakshamm-Goyal) in [#&#8203;13805](https://github.com/vercel/turborepo/pull/13805) - fix: Add workspace approval controls by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13827](https://github.com/vercel/turborepo/pull/13827) - fix: Prevent chat SSH command overflow by [@&#8203;vercel-gh-bot-5](https://github.com/vercel-gh-bot-5)\[bot] in [#&#8203;13828](https://github.com/vercel/turborepo/pull/13828) - fix: Update Factory pull request branches by [@&#8203;vercel-gh-bot-5](https://github.com/vercel-gh-bot-5)\[bot] in [#&#8203;13831](https://github.com/vercel/turborepo/pull/13831) - chore: Add operator chat model selector by [@&#8203;vercel-gh-bot-2](https://github.com/vercel-gh-bot-2)\[bot] in [#&#8203;13833](https://github.com/vercel/turborepo/pull/13833) - fix: Move model selector to workspace creation by [@&#8203;vercel-gh-bot-5](https://github.com/vercel-gh-bot-5)\[bot] in [#&#8203;13835](https://github.com/vercel/turborepo/pull/13835) - chore: Skip redundant Factory PR approval by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13837](https://github.com/vercel/turborepo/pull/13837) - chore: Use geistdocs 1.23.1 by [@&#8203;christopherkindl](https://github.com/christopherkindl) in [#&#8203;13834](https://github.com/vercel/turborepo/pull/13834) - chore: Handle feedback on Factory pull requests by [@&#8203;vercel-gh-bot-3](https://github.com/vercel-gh-bot-3)\[bot] in [#&#8203;13836](https://github.com/vercel/turborepo/pull/13836) - fix: Escape ampersands in RSS feed enclosure URLs by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13839](https://github.com/vercel/turborepo/pull/13839) - chore: Add automatic issue handling by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13840](https://github.com/vercel/turborepo/pull/13840) - chore: Alert Slack for low-confidence issues by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13841](https://github.com/vercel/turborepo/pull/13841) - feat: Require high confidence for issue fixes by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13842](https://github.com/vercel/turborepo/pull/13842) - fix: Run pnpm directly on Windows by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13843](https://github.com/vercel/turborepo/pull/13843) - chore: Release Turborepo 2.10.12 by [@&#8203;github-actions](https://github.com/github-actions)\[bot] in [#&#8203;13844](https://github.com/vercel/turborepo/pull/13844) - fix: Remove unsupported remote cache environment variable by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13845](https://github.com/vercel/turborepo/pull/13845) - fix: Copy TUI selections locally over SSH by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13847](https://github.com/vercel/turborepo/pull/13847) - feat: Use uv workspace metadata by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13848](https://github.com/vercel/turborepo/pull/13848) - feat: Support Python virtual environments by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13849](https://github.com/vercel/turborepo/pull/13849) - fix: Scope uv lockfile affectedness by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13850](https://github.com/vercel/turborepo/pull/13850) - test: Isolate uv prune configuration by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13851](https://github.com/vercel/turborepo/pull/13851) - fix: Explain disabled uv task caching by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13852](https://github.com/vercel/turborepo/pull/13852) - fix: Explain uv identity probe failures by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13853](https://github.com/vercel/turborepo/pull/13853) - fix: Explain uncached Cargo library builds by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13855](https://github.com/vercel/turborepo/pull/13855) - fix: Explain disabled Cargo task caching by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13854](https://github.com/vercel/turborepo/pull/13854) - fix: Keep Cargo tasks runnable without compiler identity by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13857](https://github.com/vercel/turborepo/pull/13857) - chore: Release Turborepo 2.10.13-canary.1 by [@&#8203;github-actions](https://github.com/github-actions)\[bot] in [#&#8203;13858](https://github.com/vercel/turborepo/pull/13858) - feat: Support Cargo root packages by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13856](https://github.com/vercel/turborepo/pull/13856) - feat(repository): Expose flat lockfile package list for metrics by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13859](https://github.com/vercel/turborepo/pull/13859) - chore: Release Turbo repository packages 0.0.1-canary.25 by [@&#8203;github-actions](https://github.com/github-actions)\[bot] in [#&#8203;13860](https://github.com/vercel/turborepo/pull/13860) - docs: Upgrade Geistdocs to 1.25.1 by [@&#8203;molebox](https://github.com/molebox) in [#&#8203;13861](https://github.com/vercel/turborepo/pull/13861) - feat: Expand repository lockfile package metadata by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13862](https://github.com/vercel/turborepo/pull/13862) - chore: Release Turbo repository packages 0.0.1-canary.26 by [@&#8203;github-actions](https://github.com/github-actions)\[bot] in [#&#8203;13863](https://github.com/vercel/turborepo/pull/13863) - fix: Restrict Factory to review comments by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13864](https://github.com/vercel/turborepo/pull/13864) - fix: Pluralize package count in run prelude by [@&#8203;vercel-gh-bot-3](https://github.com/vercel-gh-bot-3)\[bot] in [#&#8203;13865](https://github.com/vercel/turborepo/pull/13865) - chore: Update with-vite example by [@&#8203;vercel-gh-bot-3](https://github.com/vercel-gh-bot-3)\[bot] in [#&#8203;13866](https://github.com/vercel/turborepo/pull/13866) - chore: Add searchable workspace model picker by [@&#8203;vercel-gh-bot-4](https://github.com/vercel-gh-bot-4)\[bot] in [#&#8203;13870](https://github.com/vercel/turborepo/pull/13870) - fix: Restore docs client navigation by [@&#8203;molebox](https://github.com/molebox) in [#&#8203;13872](https://github.com/vercel/turborepo/pull/13872) - chore: Improve Factory workspace statuses by [@&#8203;vercel-gh-bot-4](https://github.com/vercel-gh-bot-4)\[bot] in [#&#8203;13869](https://github.com/vercel/turborepo/pull/13869) - chore: Clarify Factory pull request descriptions by [@&#8203;vercel-gh-bot-4](https://github.com/vercel-gh-bot-4)\[bot] in [#&#8203;13871](https://github.com/vercel/turborepo/pull/13871) - fix: Refresh Factory workspaces from main by [@&#8203;vercel-gh-bot-3](https://github.com/vercel-gh-bot-3)\[bot] in [#&#8203;13873](https://github.com/vercel/turborepo/pull/13873) - perf: Speed up plain package listings by [@&#8203;vercel-gh-bot-5](https://github.com/vercel-gh-bot-5)\[bot] in [#&#8203;13868](https://github.com/vercel/turborepo/pull/13868) - fix: Detect package-level turbo.jsonc by [@&#8203;cuishuang](https://github.com/cuishuang) in [#&#8203;13875](https://github.com/vercel/turborepo/pull/13875) - fix: Format Slack pull request notifications by [@&#8203;vercel-gh-bot-4](https://github.com/vercel-gh-bot-4)\[bot] in [#&#8203;13877](https://github.com/vercel/turborepo/pull/13877) - feat: Link workspaces to pull requests by [@&#8203;vercel-gh-bot-4](https://github.com/vercel-gh-bot-4)\[bot] in [#&#8203;13878](https://github.com/vercel/turborepo/pull/13878) - chore: Upgrade repository to pnpm 12 by [@&#8203;vercel-gh-bot-5](https://github.com/vercel-gh-bot-5)\[bot] in [#&#8203;13879](https://github.com/vercel/turborepo/pull/13879) - chore: Update with-vite-react example by [@&#8203;vercel-gh-bot-5](https://github.com/vercel-gh-bot-5)\[bot] in [#&#8203;13880](https://github.com/vercel/turborepo/pull/13880) - chore: Improve Factory chat streaming by [@&#8203;vercel-gh-bot-5](https://github.com/vercel-gh-bot-5)\[bot] in [#&#8203;13881](https://github.com/vercel/turborepo/pull/13881) - fix: Show workspace failure details by [@&#8203;vercel-gh-bot-4](https://github.com/vercel-gh-bot-4)\[bot] in [#&#8203;13884](https://github.com/vercel/turborepo/pull/13884) - chore: Add selectable Factory coding harnesses by [@&#8203;vercel-gh-bot-4](https://github.com/vercel-gh-bot-4)\[bot] in [#&#8203;13887](https://github.com/vercel/turborepo/pull/13887) - fix: Gracefully handle native lockfile failures by [@&#8203;vercel-gh-bot-5](https://github.com/vercel-gh-bot-5)\[bot] in [#&#8203;13886](https://github.com/vercel/turborepo/pull/13886) - chore: Update merged PR Slack messages by [@&#8203;vercel-gh-bot-3](https://github.com/vercel-gh-bot-3)\[bot] in [#&#8203;13888](https://github.com/vercel/turborepo/pull/13888) - fix: Show native tasks in task listings by [@&#8203;vercel-gh-bot-3](https://github.com/vercel-gh-bot-3)\[bot] in [#&#8203;13889](https://github.com/vercel/turborepo/pull/13889) - docs: Clarify turbo ls stability in Agent Skill by [@&#8203;Divyansh151005](https://github.com/Divyansh151005) in [#&#8203;13892](https://github.com/vercel/turborepo/pull/13892) - chore: Resume workspace chat on refocus by [@&#8203;vercel-gh-bot-2](https://github.com/vercel-gh-bot-2)\[bot] in [#&#8203;13894](https://github.com/vercel/turborepo/pull/13894) - chore: Preserve HarnessAgent bridge assets by [@&#8203;vercel-gh-bot-5](https://github.com/vercel-gh-bot-5)\[bot] in [#&#8203;13896](https://github.com/vercel/turborepo/pull/13896) - fix: Deduplicate multi-language watch hashes by [@&#8203;vercel-gh-bot-5](https://github.com/vercel-gh-bot-5)\[bot] in [#&#8203;13897](https://github.com/vercel/turborepo/pull/13897) - fix: Normalize multi-language cache environment inputs by [@&#8203;vercel-gh-bot-4](https://github.com/vercel-gh-bot-4)\[bot] in [#&#8203;13898](https://github.com/vercel/turborepo/pull/13898) - chore: Add workspace diff view by [@&#8203;vercel-gh-bot-5](https://github.com/vercel-gh-bot-5)\[bot] in [#&#8203;13900](https://github.com/vercel/turborepo/pull/13900) - refactor: Migrate CLI parser to usage-rs by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13890](https://github.com/vercel/turborepo/pull/13890) - fix: Update --filter help links to canonical docs URL by [@&#8203;Divyansh151005](https://github.com/Divyansh151005) in [#&#8203;13891](https://github.com/vercel/turborepo/pull/13891) - chore: Update with-vue-nuxt example by [@&#8203;vercel-gh-bot-5](https://github.com/vercel-gh-bot-5)\[bot] in [#&#8203;13901](https://github.com/vercel/turborepo/pull/13901) - docs: Document missing reference flags and fix query typo by [@&#8203;Divyansh151005](https://github.com/Divyansh151005) in [#&#8203;13902](https://github.com/vercel/turborepo/pull/13902) - docs: Align CONTRIBUTING Node and pnpm versions by [@&#8203;Divyansh151005](https://github.com/Divyansh151005) in [#&#8203;13883](https://github.com/vercel/turborepo/pull/13883) - perf: Skip Cargo resolution for workspace-only queries by [@&#8203;vercel-gh-bot-4](https://github.com/vercel-gh-bot-4)\[bot] in [#&#8203;13903](https://github.com/vercel/turborepo/pull/13903) - fix: Bound memory usage for streamed task output by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13908](https://github.com/vercel/turborepo/pull/13908) - fix: Clarify generator action reporting by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13910](https://github.com/vercel/turborepo/pull/13910) - fix: Bump tar to 7.5.22 in [@&#8203;turbo/releaser](https://github.com/turbo/releaser) (CVE-2026-73566) by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13911](https://github.com/vercel/turborepo/pull/13911) - fix: Correct devtools --port default in CLI help by [@&#8203;Divyansh151005](https://github.com/Divyansh151005) in [#&#8203;13905](https://github.com/vercel/turborepo/pull/13905) - fix: Resolve lint errors by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13912](https://github.com/vercel/turborepo/pull/13912) - fix: Stabilize Rust builds on macOS by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13913](https://github.com/vercel/turborepo/pull/13913) - docs: Clean up Rust docs by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13914](https://github.com/vercel/turborepo/pull/13914) - fix: Preserve task metadata for command overrides by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13915](https://github.com/vercel/turborepo/pull/13915) - perf: Resolve Git SCM state in one process by [@&#8203;vercel-gh-bot-2](https://github.com/vercel-gh-bot-2)\[bot] in [#&#8203;13882](https://github.com/vercel/turborepo/pull/13882) - fix: Only treat files literally named .gitignore as ignore files in the untracked walk by [@&#8203;Nixxx19](https://github.com/Nixxx19) in [#&#8203;13916](https://github.com/vercel/turborepo/pull/13916) - fix: Pass merge\_base and allow\_unknown\_objects in signature order for task-level filter ranges by [@&#8203;Nixxx19](https://github.com/Nixxx19) in [#&#8203;13917](https://github.com/vercel/turborepo/pull/13917) - fix: Hash deferred inputs after dependencies by [@&#8203;vercel-gh-bot-3](https://github.com/vercel-gh-bot-3)\[bot] in [#&#8203;13919](https://github.com/vercel/turborepo/pull/13919) - test: Make Cargo hash fixtures hermetic by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13920](https://github.com/vercel/turborepo/pull/13920) - fix: Allow release versioning with pending changes by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13921](https://github.com/vercel/turborepo/pull/13921) - chore: Update to Rust 1.98.0 by [@&#8203;ognevny](https://github.com/ognevny) in [#&#8203;13821](https://github.com/vercel/turborepo/pull/13821) - chore: Upgrade Factory to Fable 5.1 by [@&#8203;vercel-gh-bot-3](https://github.com/vercel-gh-bot-3)\[bot] in [#&#8203;13924](https://github.com/vercel/turborepo/pull/13924) - docs: Align Python guide with Rust guide by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13927](https://github.com/vercel/turborepo/pull/13927) - fix: Give the package changes watcher the future flags so root inputs reach the task filter by [@&#8203;Nixxx19](https://github.com/Nixxx19) in [#&#8203;13926](https://github.com/vercel/turborepo/pull/13926) - fix: Support pnpm 6 single-package lockfiles by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13928](https://github.com/vercel/turborepo/pull/13928) - feat: Add skipPackageGraph option to [@&#8203;turbo/repository](https://github.com/turbo/repository) Workspace.find by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13929](https://github.com/vercel/turborepo/pull/13929) - fix: Use pnpm 12 in library release containers by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13930](https://github.com/vercel/turborepo/pull/13930) - fix: Upgrade repository N-API build tooling by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13931](https://github.com/vercel/turborepo/pull/13931) - fix: Use Node 20 for musl library builds by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13933](https://github.com/vercel/turborepo/pull/13933) - fix: Bootstrap musl builds with sh by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13934](https://github.com/vercel/turborepo/pull/13934) - fix: Use static library bootstrap shell by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13935](https://github.com/vercel/turborepo/pull/13935) - fix: Allow unclean tree in bump-version by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13936](https://github.com/vercel/turborepo/pull/13936) - fix: Skip git commit in bump-version by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13937](https://github.com/vercel/turborepo/pull/13937) - fix: Expect napi 3 artifact paths by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13938](https://github.com/vercel/turborepo/pull/13938) - chore: Release Turbo repository packages 0.0.1-canary.27 by [@&#8203;github-actions](https://github.com/github-actions)\[bot] in [#&#8203;13939](https://github.com/vercel/turborepo/pull/13939) - perf: Batch package detail queries by [@&#8203;vercel-gh-bot-5](https://github.com/vercel-gh-bot-5)\[bot] in [#&#8203;13923](https://github.com/vercel/turborepo/pull/13923) - docs: Touch-ups for Python and Rust docs by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13940](https://github.com/vercel/turborepo/pull/13940) - chore: Update basic example by [@&#8203;vercel-gh-bot-3](https://github.com/vercel-gh-bot-3)\[bot] in [#&#8203;13922](https://github.com/vercel/turborepo/pull/13922) - fix: Avoid oxlint false positive on Workspace.find options by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13941](https://github.com/vercel/turborepo/pull/13941) - chore: Update kitchen-sink example by [@&#8203;vercel-gh-bot-3](https://github.com/vercel-gh-bot-3)\[bot] in [#&#8203;13945](https://github.com/vercel/turborepo/pull/13945) - fix: Hash native workspace task inputs by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13947](https://github.com/vercel/turborepo/pull/13947) - chore: Update with-angular example by [@&#8203;vercel-gh-bot-2](https://github.com/vercel-gh-bot-2)\[bot] in [#&#8203;13951](https://github.com/vercel/turborepo/pull/13951) - fix: Recompute eager hashing flag after prepending global inputs by [@&#8203;Nixxx19](https://github.com/Nixxx19) in [#&#8203;13949](https://github.com/vercel/turborepo/pull/13949) - refactor: Generalize daemon repository discovery by [@&#8203;cuishuang](https://github.com/cuishuang) in [#&#8203;13946](https://github.com/vercel/turborepo/pull/13946) - feat: Make daemon discovery toolchain generic by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13952](https://github.com/vercel/turborepo/pull/13952) - feat: Add experimental Go workspace graph foundation by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13953](https://github.com/vercel/turborepo/pull/13953) - feat: Add native Go task tables by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13954](https://github.com/vercel/turborepo/pull/13954) - feat: Add Go task input and output contracts by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13955](https://github.com/vercel/turborepo/pull/13955) - test: Cover native Go execution end to end by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13956](https://github.com/vercel/turborepo/pull/13956) - feat: Add Go external resolution fingerprints by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13957](https://github.com/vercel/turborepo/pull/13957) - feat: Fingerprint Go toolchain environment by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13958](https://github.com/vercel/turborepo/pull/13958) - feat: Add Go change observations by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13959](https://github.com/vercel/turborepo/pull/13959) - test: Cover Go query and summary surfaces by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13960](https://github.com/vercel/turborepo/pull/13960) - feat: Add Go-aware prune planning by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13961](https://github.com/vercel/turborepo/pull/13961) - test: Add end-to-end Go prune and cache coverage by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13962](https://github.com/vercel/turborepo/pull/13962) - docs: Document experimental native Go workspaces by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13963](https://github.com/vercel/turborepo/pull/13963) - fix: Harden Go workspace diagnostics by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13964](https://github.com/vercel/turborepo/pull/13964) - fix: Correct Go workspace resolution and task caching by [@&#8203;vercel-gh-bot-2](https://github.com/vercel-gh-bot-2)\[bot] in [#&#8203;13966](https://github.com/vercel/turborepo/pull/13966) - chore: Add Factory thinking controls and message queue by [@&#8203;vercel-gh-bot-3](https://github.com/vercel-gh-bot-3)\[bot] in [#&#8203;13967](https://github.com/vercel/turborepo/pull/13967) - chore: Remove ARCHITECTURE.md docs by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13969](https://github.com/vercel/turborepo/pull/13969) - fix: Add slug to OPTIONS request by [@&#8203;y-lakhdar](https://github.com/y-lakhdar) in [#&#8203;13943](https://github.com/vercel/turborepo/pull/13943) - perf: Parse CLI exits before starting worker pools by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13971](https://github.com/vercel/turborepo/pull/13971) - perf: Reuse compiled workspace matchers by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13970](https://github.com/vercel/turborepo/pull/13970) - chore: Revert bundled startup optimizations by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13982](https://github.com/vercel/turborepo/pull/13982) - perf: Fast-path numeric package manager versions by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13973](https://github.com/vercel/turborepo/pull/13973) - perf: Stop inference after selecting a workspace root by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13980](https://github.com/vercel/turborepo/pull/13980) - perf: Reuse compiled workspace matchers by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13984](https://github.com/vercel/turborepo/pull/13984) - perf: Skip unnecessary glob normalization by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13979](https://github.com/vercel/turborepo/pull/13979) - perf: Cache workspace configuration lookups by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13975](https://github.com/vercel/turborepo/pull/13975) - perf: Avoid regexes for simple environment matching by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13974](https://github.com/vercel/turborepo/pull/13974) - perf: Reuse canonical paths during repository discovery by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13976](https://github.com/vercel/turborepo/pull/13976) - perf: Skip work for disabled telemetry by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13972](https://github.com/vercel/turborepo/pull/13972) - perf: Defer filesystem checks for absent configs by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13977](https://github.com/vercel/turborepo/pull/13977) - perf: Compile workspace glob combinators directly by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13978](https://github.com/vercel/turborepo/pull/13978) - docs(skills): fix the dependencies-only filter caret position by [@&#8203;timsnadden](https://github.com/timsnadden) in [#&#8203;13965](https://github.com/vercel/turborepo/pull/13965) - chore: Update with-biome example by [@&#8203;vercel-gh-bot-4](https://github.com/vercel-gh-bot-4)\[bot] in [#&#8203;13983](https://github.com/vercel/turborepo/pull/13983) - fix: Normalize bare directory outputs when filtering dependencyOutputs hashes by [@&#8203;Nixxx19](https://github.com/Nixxx19) in [#&#8203;13932](https://github.com/vercel/turborepo/pull/13932) - chore: Scope panic lint allows in hash crates to tests and generated code by [@&#8203;BABTUNA](https://github.com/BABTUNA) in [#&#8203;13810](https://github.com/vercel/turborepo/pull/13810) - perf: Use binary search for resolution states by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13986](https://github.com/vercel/turborepo/pull/13986) - perf: Use dense membership for task graph pruning by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13987](https://github.com/vercel/turborepo/pull/13987) - perf: Throttle TUI tick cadence by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13988](https://github.com/vercel/turborepo/pull/13988) - perf: Fast-path package-only filter selectors with --only by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13990](https://github.com/vercel/turborepo/pull/13990) - perf: Avoid materializing npm's legacy dependency tree by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13993](https://github.com/vercel/turborepo/pull/13993) - perf: Stream custom repository downloads to disk by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13994](https://github.com/vercel/turborepo/pull/13994) - perf: Copy shared file dependencies once per destination during prune by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13995](https://github.com/vercel/turborepo/pull/13995) - perf: Index npm workspace links during subgraph extraction by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13997](https://github.com/vercel/turborepo/pull/13997) - perf: Cache Turbo config reads across ESLint rule invocations by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13998](https://github.com/vercel/turborepo/pull/13998) - perf: Scope untracked-file discovery to filtered runs by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13991](https://github.com/vercel/turborepo/pull/13991) - perf: Limit turbo.json preloading to required task scope by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13992](https://github.com/vercel/turborepo/pull/13992) - ci: Restrict release signing to main by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13985](https://github.com/vercel/turborepo/pull/13985) - perf: Coalesce glob-watcher invalidation snapshots by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13996](https://github.com/vercel/turborepo/pull/13996) - perf: Reuse resolver inference during file tracing by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;13999](https://github.com/vercel/turborepo/pull/13999) - chore: Release Turborepo 2.10.13-canary.2 by [@&#8203;github-actions](https://github.com/github-actions)\[bot] in [#&#8203;14000](https://github.com/vercel/turborepo/pull/14000) - chore: Exclude turbo and @&#8203;turbo/\* from minimum release age by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14005](https://github.com/vercel/turborepo/pull/14005) - perf: Binary search boundaries comments before each import by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14003](https://github.com/vercel/turborepo/pull/14003) - perf: Fetch only npm dist tags in the binary version endpoint by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14007](https://github.com/vercel/turborepo/pull/14007) - perf: Compute Devtools graph depths without rescanning every edge by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14001](https://github.com/vercel/turborepo/pull/14001) - perf: Reuse package manager detection during create startup by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14006](https://github.com/vercel/turborepo/pull/14006) - perf: Borrow workspace entries during dependency lookup by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14002](https://github.com/vercel/turborepo/pull/14002) - perf: Cache LSP task index and dedupe identities in constant time by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14008](https://github.com/vercel/turborepo/pull/14008) - perf: Deduplicate recursive glob prefixes before walking by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14004](https://github.com/vercel/turborepo/pull/14004) - perf: Batch boundaries progress updates by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14009](https://github.com/vercel/turborepo/pull/14009) - perf: Reuse archive anchor during cache creation by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14010](https://github.com/vercel/turborepo/pull/14010) - perf: Bound remote-cache transfer memory instead of retaining whole artifacts by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14011](https://github.com/vercel/turborepo/pull/14011) - perf: Build cache archives once for local and remote writes by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14012](https://github.com/vercel/turborepo/pull/14012) - perf: Make VS Code binary discovery and LSP probes nonblocking by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14015](https://github.com/vercel/turborepo/pull/14015) - perf: Avoid serializing ASTs for path-only file dependency queries by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14016](https://github.com/vercel/turborepo/pull/14016) - perf: Share source text across boundaries diagnostics instead of copying it per error by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14014](https://github.com/vercel/turborepo/pull/14014) - perf: Parse the lockfile once when opening a native Workspace with its graph by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14017](https://github.com/vercel/turborepo/pull/14017) - docs: Document a focused Cargo build for CLI-only development by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14018](https://github.com/vercel/turborepo/pull/14018) - perf: Run the docs MDX generator once per quality task graph by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14019](https://github.com/vercel/turborepo/pull/14019) - perf: Keep package bundling inside a cacheable build boundary by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14020](https://github.com/vercel/turborepo/pull/14020) - perf: Skip speculative content hashing for size-changed unnormalized tracked files by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14021](https://github.com/vercel/turborepo/pull/14021) - perf: Move synchronous cache archiving off Tokio runtime workers by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14013](https://github.com/vercel/turborepo/pull/14013) - perf: Index package directories for changed-file ownership lookups by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14022](https://github.com/vercel/turborepo/pull/14022) - perf: Bound TUI raw-output retention independently of scrollback by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14024](https://github.com/vercel/turborepo/pull/14024) - perf: Coalesce package rediscovery while a scan is already running by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14023](https://github.com/vercel/turborepo/pull/14023) - perf: Replace repeated deferred-hash scans with dependency-driven readiness by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14025](https://github.com/vercel/turborepo/pull/14025) - perf: Read child output in bounded chunks instead of per-line by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14026](https://github.com/vercel/turborepo/pull/14026) - perf: Share one repo index across same-package spec rehashes in watch mode by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14027](https://github.com/vercel/turborepo/pull/14027) - test: Deflake rediscovery\_coalesces\_during\_in\_flight\_scan by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14029](https://github.com/vercel/turborepo/pull/14029) - perf: Reuse the package graph across partial watch reruns by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14028](https://github.com/vercel/turborepo/pull/14028) - test: Deflake Go watch CI by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14031](https://github.com/vercel/turborepo/pull/14031) - chore: Release Turborepo 2.10.13-canary.3 by [@&#8203;github-actions](https://github.com/github-actions)\[bot] in [#&#8203;14032](https://github.com/vercel/turborepo/pull/14032) - docs: Group experimental languages and link the Go RFC by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14034](https://github.com/vercel/turborepo/pull/14034) - chore: Update with-docker example by [@&#8203;vercel-gh-bot-2](https://github.com/vercel-gh-bot-2)\[bot] in [#&#8203;14035](https://github.com/vercel/turborepo/pull/14035) - perf: Avoid cloning package list in turbo ls by [@&#8203;vercel-gh-bot-5](https://github.com/vercel-gh-bot-5)\[bot] in [#&#8203;14036](https://github.com/vercel/turborepo/pull/14036) - fix: Restore leading flags for implicit run commands by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14037](https://github.com/vercel/turborepo/pull/14037) - fix: Include experimentalCI in task hashes by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14038](https://github.com/vercel/turborepo/pull/14038) - chore: Release Turborepo 2.10.13-canary.4 by [@&#8203;github-actions](https://github.com/github-actions)\[bot] in [#&#8203;14039](https://github.com/vercel/turborepo/pull/14039) - docs: Explain circular package dependencies in boundaries by [@&#8203;vercel-gh-bot-2](https://github.com/vercel-gh-bot-2)\[bot] in [#&#8203;14042](https://github.com/vercel/turborepo/pull/14042) - docs: Document circular dependencies in boundaries by [@&#8203;vercel-gh-bot-2](https://github.com/vercel-gh-bot-2)\[bot] in [#&#8203;14041](https://github.com/vercel/turborepo/pull/14041) - fix: Preserve Yarn resolution declaration order by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14045](https://github.com/vercel/turborepo/pull/14045) - fix: Avoid duplicate interrupts during task shutdown by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14046](https://github.com/vercel/turborepo/pull/14046) - fix: Preserve nested Bun package keys by [@&#8203;vercel-gh-bot-5](https://github.com/vercel-gh-bot-5)\[bot] in [#&#8203;14050](https://github.com/vercel/turborepo/pull/14050) - chore: Update with-mcp-servers example by [@&#8203;vercel-gh-bot-2](https://github.com/vercel-gh-bot-2)\[bot] in [#&#8203;14049](https://github.com/vercel/turborepo/pull/14049) - chore: Release Turborepo 2.10.13-canary.5 by [@&#8203;github-actions](https://github.com/github-actions)\[bot] in [#&#8203;14051](https://github.com/vercel/turborepo/pull/14051) - fix: Preserve native task dependencies across entrypoints by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14047](https://github.com/vercel/turborepo/pull/14047) - fix: Pass through LOCALAPPDATA by default by [@&#8203;vercel-gh-bot-2](https://github.com/vercel-gh-bot-2)\[bot] in [#&#8203;14056](https://github.com/vercel/turborepo/pull/14056) - chore: Release Turborepo 2.10.13-canary.6 by [@&#8203;github-actions](https://github.com/github-actions)\[bot] in [#&#8203;14057](https://github.com/vercel/turborepo/pull/14057) - docs: Fix some typos by [@&#8203;DominikRusso](https://github.com/DominikRusso) in [#&#8203;14058](https://github.com/vercel/turborepo/pull/14058) - feat: Add Remix inference and `NUXT_ENV_*` wildcard by [@&#8203;Pcmhacker-piro](https://github.com/Pcmhacker-piro) in [#&#8203;14060](https://github.com/vercel/turborepo/pull/14060) - fix: Return resolved package names for aliases by [@&#8203;vercel-gh-bot-2](https://github.com/vercel-gh-bot-2)\[bot] in [#&#8203;14061](https://github.com/vercel/turborepo/pull/14061) - chore: Release Turbo repository packages 0.0.1-canary.28 by [@&#8203;github-actions](https://github.com/github-actions)\[bot] in [#&#8203;14062](https://github.com/vercel/turborepo/pull/14062) - feat: Add NEXT\_DEPLOYMENT\_ID to Next.js framework inference by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14065](https://github.com/vercel/turborepo/pull/14065) - chore: Release Turborepo 2.10.13 by [@&#8203;github-actions](https://github.com/github-actions)\[bot] in [#&#8203;14066](https://github.com/vercel/turborepo/pull/14066) - fix: Fall back to the published tag when the dogfooded turbo version is unpublished by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14067](https://github.com/vercel/turborepo/pull/14067) - feat: Expose compact task planning through turbo query by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14068](https://github.com/vercel/turborepo/pull/14068) - chore: Release Turborepo 2.10.14-canary.1 by [@&#8203;github-actions](https://github.com/github-actions)\[bot] in [#&#8203;14069](https://github.com/vercel/turborepo/pull/14069) - fix: Discover native workspace metadata lazily by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14053](https://github.com/vercel/turborepo/pull/14053) - fix: Run Go workspace formatting per module by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14070](https://github.com/vercel/turborepo/pull/14070) - fix: Run Go verification per module by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14072](https://github.com/vercel/turborepo/pull/14072) - fix: Use pnpm for non-monorepo deployments by [@&#8203;vercel-gh-bot-2](https://github.com/vercel-gh-bot-2)\[bot] in [#&#8203;14071](https://github.com/vercel/turborepo/pull/14071) - chore: Update with-nestjs example by [@&#8203;vercel-gh-bot-4](https://github.com/vercel-gh-bot-4)\[bot] in [#&#8203;14064](https://github.com/vercel/turborepo/pull/14064) - docs: Document per-toolchain task commands by [@&#8203;vercel-gh-bot-3](https://github.com/vercel-gh-bot-3)\[bot] in [#&#8203;14073](https://github.com/vercel/turborepo/pull/14073) - fix: Infer all co-located packages from cwd by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14074](https://github.com/vercel/turborepo/pull/14074) - fix: Preserve all co-located package change owners by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14075](https://github.com/vercel/turborepo/pull/14075) - fix: Isolate task logs for co-located packages by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14077](https://github.com/vercel/turborepo/pull/14077) - chore: Make filesystem watch cleanup idempotent by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14078](https://github.com/vercel/turborepo/pull/14078) - fix: Follow Go default binary output paths by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14079](https://github.com/vercel/turborepo/pull/14079) - chore: Release Turborepo 2.10.14-canary.2 by [@&#8203;github-actions](https://github.com/github-actions)\[bot] in [#&#8203;14080](https://github.com/vercel/turborepo/pull/14080) - feat: Make package queries and pruning task-aware by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14081](https://github.com/vercel/turborepo/pull/14081) - chore: Release Turborepo 2.10.14-canary.3 by [@&#8203;github-actions](https://github.com/github-actions)\[bot] in [#&#8203;14082](https://github.com/vercel/turborepo/pull/14082) - chore: Update with-npm example by [@&#8203;vercel-gh-bot-5](https://github.com/vercel-gh-bot-5)\[bot] in [#&#8203;14083](https://github.com/vercel/turborepo/pull/14083) - feat: Expose static repository discovery and safe affected candidates by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14085](https://github.com/vercel/turborepo/pull/14085) - fix: Preserve task env mode when pruning by [@&#8203;vercel-gh-bot-5](https://github.com/vercel-gh-bot-5)\[bot] in [#&#8203;14087](https://github.com/vercel/turborepo/pull/14087) - feat: Derive short names for Go workspace packages by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14086](https://github.com/vercel/turborepo/pull/14086) - chore: Release Turbo repository packages 0.0.1-canary.29 by [@&#8203;github-actions](https://github.com/github-actions)\[bot] in [#&#8203;14088](https://github.com/vercel/turborepo/pull/14088) - chore: Release Turborepo 2.10.14-canary.4 by [@&#8203;github-actions](https://github.com/github-actions)\[bot] in [#&#8203;14089](https://github.com/vercel/turborepo/pull/14089) - feat: Infer Cargo and uv affectedness from static package inputs by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14090](https://github.com/vercel/turborepo/pull/14090) - chore: Release Turbo repository packages 0.0.1-canary.30 by [@&#8203;github-actions](https://github.com/github-actions)\[bot] in [#&#8203;14091](https://github.com/vercel/turborepo/pull/14091) - perf: Cache Windows archive anchor by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14093](https://github.com/vercel/turborepo/pull/14093) - fix: Harden cache archive restoration by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14095](https://github.com/vercel/turborepo/pull/14095) - fix: Defer dependency output validation for lazy scopes by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14097](https://github.com/vercel/turborepo/pull/14097) - chore: Release Turborepo 2.10.14-canary.5 by [@&#8203;github-actions](https://github.com/github-actions)\[bot] in [#&#8203;14098](https://github.com/vercel/turborepo/pull/14098) - test: Fix Windows cache restore test by [@&#8203;anthonyshew](https://github.com/anthonyshew) in [#&#8203;14099](https://github.com/vercel/turborepo/pull/14099) - chore: Update with-prisma example by [@&#8203;vercel-gh-bot-4](https://github.com/vercel-gh-bot-4)\[bot] in [#&#8203;14101](https://github.com/vercel/turborepo/pull/14101) ##### New Contributors - [@&#8203;lachieh](https://github.com/lachieh) made their first contribution in [#&#8203;12388](https://github.com/vercel/turborepo/pull/12388) - [@&#8203;colinhacks](https://github.com/colinhacks) made their first contribution in [#&#8203;13120](https://github.com/vercel/turborepo/pull/13120) - [@&#8203;lukesandberg](https://github.com/lukesandberg) made their first contribution in [#&#8203;13160](https://github.com/vercel/turborepo/pull/13160) - [@&#8203;tsushanth](https://github.com/tsushanth) made their first contribution in [#&#8203;13119](https://github.com/vercel/turborepo/pull/13119) - [@&#8203;Nishant-Chaudhary5338](https://github.com/Nishant-Chaudhary5338) made their first contribution in [#&#8203;12997](https://github.com/vercel/turborepo/pull/12997) - [@&#8203;abhiaagarwal](https://github.com/abhiaagarwal) made their first contribution in [#&#8203;13202](https://github.com/vercel/turborepo/pull/13202) - [@&#8203;dnukumamras](https://github.com/dnukumamras) made their first contribution in [#&#8203;13300](https://github.com/vercel/turborepo/pull/13300) - [@&#8203;XananasX7](https://github.com/XananasX7) made their first contribution in [#&#8203;13143](https://github.com/vercel/turborepo/pull/13143) - [@&#8203;ashusnapx](https://github.com/ashusnapx) made their first contribution in [#&#8203;13328](https://github.com/vercel/turborepo/pull/13328) - [@&#8203;tajo](https://github.com/tajo) made their first contribution in [#&#8203;13416](https://github.com/vercel/turborepo/pull/13416) - [@&#8203;gtbuchanan](https://github.com/gtbuchanan) made their first contribution in [#&#8203;12735](https://github.com/vercel/turborepo/pull/12735) - [@&#8203;bangseongbeom](https://github.com/bangseongbeom) made their first contribution in [#&#8203;13623](https://github.com/vercel/turborepo/pull/13623) - [@&#8203;ghoullier](https://github.com/ghoullier) made their first contribution in [#&#8203;13594](https://github.com/vercel/turborepo/pull/13594) - [@&#8203;molofsky](https://github.com/molofsky) made their first contribution in [#&#8203;13637](https://github.com/vercel/turborepo/pull/13637) - [@&#8203;smasato](https://github.com/smasato) made their first contribution in [#&#8203;13632](https://github.com/vercel/turborepo/pull/13632) - [@&#8203;latent-9](https://github.com/latent-9) made their first contribution in [#&#8203;13683](https://github.com/vercel/turborepo/pull/13683) - [@&#8203;akshat-OwO](https://github.com/akshat-OwO) made their first contribution in [#&#8203;13699](https://github.com/vercel/turborepo/pull/13699) - [@&#8203;okxint](https://github.com/okxint) made their first contribution in [#&#8203;13709](https://github.com/vercel/turborepo/pull/13709) - [@&#8203;alexey-yunoshev-1](https://github.com/alexey-yunoshev-1) made their first contribution in [#&#8203;13690](https://github.com/vercel/turborepo/pull/13690) - [@&#8203;vercel-gh-bot-3](https://github.com/vercel-gh-bot-3)\[bot] made their first contribution in [#&#8203;13718](https://github.com/vercel/turborepo/pull/13718) - [@&#8203;vercel-gh-bot-2](https://github.com/vercel-gh-bot-2)\[bot] made their first contribution in [#&#8203;13727](https://github.com/vercel/turborepo/pull/13727) - [@&#8203;Jarred-Sumner](https://github.com/Jarred-Sumner) made their first contribution in [#&#8203;13740](https://github.com/vercel/turborepo/pull/13740) - [@&#8203;vercel-gh-bot-4](https://github.com/vercel-gh-bot-4)\[bot] made their first contribution in [#&#8203;13746](https://github.com/vercel/turborepo/pull/13746) - [@&#8203;vercel-gh-bot-5](https://github.com/vercel-gh-bot-5)\[bot] made their first contribution in [#&#8203;13752](https://github.com/vercel/turborepo/pull/13752) - [@&#8203;Sakshamm-Goyal](https://github.com/Sakshamm-Goyal) made their first contribution in [#&#8203;13805](https://github.com/vercel/turborepo/pull/13805) - [@&#8203;cuishuang](https://github.com/cuishuang) made their first contribution in [#&#8203;13875](https://github.com/vercel/turborepo/pull/13875) - [@&#8203;Divyansh151005](https://github.com/Divyansh151005) made their first contribution in [#&#8203;13892](https://github.com/vercel/turborepo/pull/13892) - [@&#8203;Nixxx19](https://github.com/Nixxx19) made their first contribution in [#&#8203;13916](https://github.com/vercel/turborepo/pull/13916) - [@&#8203;y-lakhdar](https://github.com/y-lakhdar) made their first contribution in [#&#8203;13943](https://github.com/vercel/turborepo/pull/13943) - [@&#8203;timsnadden](https://github.com/timsnadden) made their first contribution in [#&#8203;13965](https://github.com/vercel/turborepo/pull/13965) - [@&#8203;BABTUNA](https://github.com/BABTUNA) made their first contribution in [#&#8203;13810](https://github.com/vercel/turborepo/pull/13810) - [@&#8203;DominikRusso](https://github.com/DominikRusso) made their first contribution in [#&#8203;14058](https://github.com/vercel/turborepo/pull/14058) - [@&#8203;Pcmhacker-piro](https://github.com/Pcmhacker-piro) made their first contribution in [#&#8203;14060](https://github.com/vercel/turborepo/pull/14060) **Full Changelog**: <https://github.com/vercel/turborepo/compare/v2.10.0...v2.11.0> </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate CLI](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xMDMuNiIsInVwZGF0ZWRJblZlciI6IjQ0LjEwNC4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
chore(deps): update ci dependencies
Some checks failed
renovate/stability-days Updates have met minimum release age requirement
check-commitizen.yaml / Check the PR title (pull_request) Failing after 10s
check-linter.yaml / Checks with linters (pull_request) Failing after 10s
check-syntax.yaml / Checks with static tools (pull_request) Failing after 10s
check-yamllint.yaml / Lint yaml files (pull_request) Failing after 10s
forgejo-agent / LLM Bot response generation (pull_request) Failing after 10s
check-formatter.yaml / Checks with formatters (pull_request) Successful in 36s
0a6d87b1fa
renovate-bot scheduled this pull request to auto merge when all checks succeed 2026-09-21 03:02:23 +00:00
renovate-bot force-pushed renovate-ci from 0a6d87b1fa
Some checks failed
renovate/stability-days Updates have met minimum release age requirement
check-commitizen.yaml / Check the PR title (pull_request) Failing after 10s
check-linter.yaml / Checks with linters (pull_request) Failing after 10s
check-syntax.yaml / Checks with static tools (pull_request) Failing after 10s
check-yamllint.yaml / Lint yaml files (pull_request) Failing after 10s
forgejo-agent / LLM Bot response generation (pull_request) Failing after 10s
check-formatter.yaml / Checks with formatters (pull_request) Successful in 36s
to dedad2d71c
Some checks failed
check-formatter.yaml / Checks with formatters (pull_request) Failing after 45s
check-linter.yaml / Checks with linters (pull_request) Failing after 7s
check-syntax.yaml / Checks with static tools (pull_request) Failing after 7s
check-yamllint.yaml / Lint yaml files (pull_request) Successful in 3s
renovate/stability-days Updates have met minimum release age requirement
renovate/artifacts Artifact file update failure
check-commitizen.yaml / Check the PR title (pull_request) Successful in 2s
2026-09-22 04:40:47 +00:00
Compare
renovate-bot changed title from chore(deps): update ci dependencies to ci(deps): update ci dependencies 2026-09-22 04:45:48 +00:00
renovate-bot force-pushed renovate-ci from dedad2d71c
Some checks failed
check-formatter.yaml / Checks with formatters (pull_request) Failing after 45s
check-linter.yaml / Checks with linters (pull_request) Failing after 7s
check-syntax.yaml / Checks with static tools (pull_request) Failing after 7s
check-yamllint.yaml / Lint yaml files (pull_request) Successful in 3s
renovate/stability-days Updates have met minimum release age requirement
renovate/artifacts Artifact file update failure
check-commitizen.yaml / Check the PR title (pull_request) Successful in 2s
to fcc874c2b2
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
check-formatter.yaml / Checks with formatters (pull_request) Successful in 16s
check-linter.yaml / Checks with linters (pull_request) Successful in 31s
check-syntax.yaml / Checks with static tools (pull_request) Successful in 1m30s
check-yamllint.yaml / Lint yaml files (pull_request) Successful in 3s
check-commitizen.yaml / Check the PR title (pull_request) Successful in 2s
2026-09-23 09:50:42 +00:00
Compare
renovate-bot deleted branch renovate-ci 2026-09-23 09:55:03 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
projects/events-cash-register!272
No description provided.