---
name: Turborepo
slug: turborepo
type: github
source_url: https://github.com/vercel/turborepo
organization: Vercel
organization_slug: vercel
total_releases: 238
latest_version: v2.9.7-canary.13
latest_date: 2026-04-16
last_updated: 2026-04-19
tracking_since: 2026-02-05
canonical: https://releases.sh/vercel/turborepo
organization_url: https://releases.sh/vercel
---

<Summary type="rolling" window-days="90" release-count="237">
Turborepo continues hardening both performance and reliability. A spike of work landed on graceful shutdown semantics for persistent tasks—preserving exit codes and PTY state across interrupt scenarios—alongside moves to modernize authentication toward standard OAuth flows and compatibility fixes for emerging package manager versions like pnpm v11's multi-document lockfiles. In parallel, the team shipped incremental task caching, circular dependency detection in boundaries checking, and parallelize that work with Rayon, while pushing remote cache uploads from 8KB to 256KB chunks for better throughput. The 2.9 release bumped the major version; 2.8 saw sustained refinement on lockfile pruning across npm, pnpm, and Bun, moving pieces into native Rust to shed subprocess overhead.
</Summary>

<Summary type="monthly" period="March 2026" release-count="129">
Turborepo shipped a burst of activity in March centered on two major themes: stabilizing task-level execution and rearchitecting the logging pipeline.

The team landed `affectedTasks` query support and future flags like `affectedUsingTaskInputs` and `filterUsingTasks` to move change detection from package-level to task-level granularity, alongside new cache eviction controls via `cacheMaxAge` and `cacheMaxSize`. In parallel, they introduced `turborepo-log` as a unified logging crate, rerouted run output through `TerminalSink` and `TuiSink` for structured control, and deprecated `turbo-ignore` in favor of `turbo query affected`. The month also included a sustained performance push—replacing SWC with oxc for parsing, eliminating per-directory stat syscalls, streaming file contents during hashing, and racing parallel git operations against filesystem walks. Platform binaries shipped under `@turbo/` scoped packages, and `turbo ls` gained a `turbo query ls` shorthand. Minor fixes throughout targeted lockfile handling across npm/pnpm/bun, watch mode hangs with persistent tasks, and symlink behavior during cache restore.
</Summary>

<Summary type="monthly" period="February 2026" release-count="77">
February focused on performance across the runtime, with aggressive hotpath optimization and memory efficiency gains. Startup was faster thanks to eliminating git subprocesses in favor of `libgit2` and parallelizing workspace discovery with lockfile parsing, while `turbo run` saw CPU and allocation reductions through hash computation optimizations, deduplication, and parallelized task hashing across waves. OpenTelemetry observability landed as an experimental feature without requiring the `--summarize` flag, and the daemon was removed from `turbo run` with its flags deprecated. Test infrastructure shifted further toward Rust with prysk tests ported from Python, and dependency cleanup reduced compile times by deduplicating thiserror and itertools.
</Summary>

<Release version="v2.9.7-canary.13" date="April 16, 2026" published="2026-04-16T16:41:11.000Z" url="https://github.com/vercel/turborepo/releases/tag/v2.9.7-canary.13">
## Turborepo v2.9.7-canary.13

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

## What's Changed
### Changelog
* fix: Recover Vercel auth tokens across login flows by @anthonyshew in https://github.com/vercel/turborepo/pull/12631


**Full Changelog**: https://github.com/vercel/turborepo/compare/v2.9.7-canary.12...v2.9.7-canary.13
</Release>

<Release version="v2.9.7-canary.12" date="April 16, 2026" published="2026-04-16T13:14:47.000Z" url="https://github.com/vercel/turborepo/releases/tag/v2.9.7-canary.12">
## Turborepo v2.9.7-canary.12

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

## What's Changed
### Examples
* examples: Add Ultracite example by @haydenbleasel in https://github.com/vercel/turborepo/pull/12615
### Changelog
* fix: Preserve legacy Vercel auth compatibility by @anthonyshew in https://github.com/vercel/turborepo/pull/12629


**Full Changelog**: https://github.com/vercel/turborepo/compare/v2.9.7-canary.11...v2.9.7-canary.12
</Release>

<Release version="v2.9.7-canary.11" date="April 15, 2026" published="2026-04-15T20:35:11.000Z" url="https://github.com/vercel/turborepo/releases/tag/v2.9.7-canary.11">
## Turborepo v2.9.7-canary.11

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

## What's Changed
### Changelog
* feat: Move Vercel auth to standard OAuth/device flows by @markandrus in https://github.com/vercel/turborepo/pull/12526

## New Contributors
* @markandrus made their first contribution in https://github.com/vercel/turborepo/pull/12526

**Full Changelog**: https://github.com/vercel/turborepo/compare/v2.9.7-canary.10...v2.9.7-canary.11
</Release>

<Release version="v2.9.7-canary.10" date="April 15, 2026" published="2026-04-15T19:56:02.000Z" url="https://github.com/vercel/turborepo/releases/tag/v2.9.7-canary.10">
## Turborepo v2.9.7-canary.10

<!-- Release notes generated using configuration in .github/release.yml at v2.9.7-canary.10 -->

## What's Changed
### Changelog
* fix: Preserve PTY graceful shutdown semantics by @anthonyshew in https://github.com/vercel/turborepo/pull/12624


**Full Changelog**: https://github.com/vercel/turborepo/compare/v2.9.7-canary.9...v2.9.7-canary.10
</Release>

<Release version="v2.9.7-canary.9" date="April 15, 2026" published="2026-04-15T17:27:00.000Z" url="https://github.com/vercel/turborepo/releases/tag/v2.9.7-canary.9">
## Turborepo v2.9.7-canary.9

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

## What's Changed
### Changelog
* fix: Keep Node wrapper alive during graceful shutdown by @anthonyshew in https://github.com/vercel/turborepo/pull/12622


**Full Changelog**: https://github.com/vercel/turborepo/compare/v2.9.7-canary.8...v2.9.7-canary.9
</Release>

<Release version="v2.9.7-canary.8" date="April 15, 2026" published="2026-04-15T16:19:47.000Z" url="https://github.com/vercel/turborepo/releases/tag/v2.9.7-canary.8">
## Turborepo v2.9.7-canary.8

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

## What's Changed
### Changelog
* fix: Preserve graceful shutdown exit code by @anthonyshew in https://github.com/vercel/turborepo/pull/12620


**Full Changelog**: https://github.com/vercel/turborepo/compare/v2.9.7-canary.7...v2.9.7-canary.8
</Release>

<Release version="v2.9.7-canary.7" date="April 14, 2026" published="2026-04-14T13:40:44.000Z" url="https://github.com/vercel/turborepo/releases/tag/v2.9.7-canary.7">
## Turborepo v2.9.7-canary.7

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

## What's Changed
### Changelog
* fix: Support pnpm v11 multi-document lockfiles by @anthonyshew in https://github.com/vercel/turborepo/pull/12616


**Full Changelog**: https://github.com/vercel/turborepo/compare/v2.9.7-canary.6...v2.9.7-canary.7
</Release>

<Release version="v2.9.7-canary.6" date="April 13, 2026" published="2026-04-13T22:42:24.000Z" url="https://github.com/vercel/turborepo/releases/tag/v2.9.7-canary.6">
## Turborepo v2.9.7-canary.6

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

## What's Changed
### Changelog
* fix: Ignore `SIGINT` in shim after spawning local `turbo` by @anthonyshew in https://github.com/vercel/turborepo/pull/12612


**Full Changelog**: https://github.com/vercel/turborepo/compare/v2.9.7-canary.5...v2.9.7-canary.6
</Release>

<Release version="v2.9.7-canary.5" date="April 13, 2026" published="2026-04-13T18:55:58.000Z" url="https://github.com/vercel/turborepo/releases/tag/v2.9.7-canary.5">
## Turborepo v2.9.7-canary.5

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

## What's Changed
### Changelog
* test: Add stdin EOF startup regression coverage by @anthonyshew in https://github.com/vercel/turborepo/pull/12609


**Full Changelog**: https://github.com/vercel/turborepo/compare/v2.9.7-canary.4...v2.9.7-canary.5
</Release>

<Release version="v2.9.7-canary.4" date="April 13, 2026" published="2026-04-13T17:20:50.000Z" url="https://github.com/vercel/turborepo/releases/tag/v2.9.7-canary.4">
## Turborepo v2.9.7-canary.4

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

## What's Changed
### Changelog
* feat: Graceful shutdown by @anthonyshew in https://github.com/vercel/turborepo/pull/12607


**Full Changelog**: https://github.com/vercel/turborepo/compare/v2.9.7-canary.3...v2.9.7-canary.4
</Release>

<Release version="v2.9.7-canary.3" date="April 13, 2026" published="2026-04-13T15:01:58.000Z" url="https://github.com/vercel/turborepo/releases/tag/v2.9.7-canary.3">
## Turborepo v2.9.7-canary.3

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

## What's Changed
### eslint
* chore: Upgrade dependencies to resolve their known vulnerabilities by @anthonyshew in https://github.com/vercel/turborepo/pull/12604


**Full Changelog**: https://github.com/vercel/turborepo/compare/v2.9.7-canary.2...v2.9.7-canary.3
</Release>

<Release version="v2.9.7-canary.2" date="April 11, 2026" published="2026-04-11T05:08:39.000Z" url="https://github.com/vercel/turborepo/releases/tag/v2.9.7-canary.2">
## Turborepo v2.9.7-canary.2

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



**Full Changelog**: https://github.com/vercel/turborepo/compare/v2.9.7-canary.1...v2.9.7-canary.2
</Release>

<Release version="v2.9.7-canary.1" date="April 10, 2026" published="2026-04-10T18:46:52.000Z" url="https://github.com/vercel/turborepo/releases/tag/v2.9.7-canary.1">
## Turborepo v2.9.7-canary.1

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

## What's Changed
### Examples
* feat(sandbox): Bump @vercel/sandbox from v1 to beta by @marc-vercel in https://github.com/vercel/turborepo/pull/12595
* chore: Update examples to Turbo 2.9.6 by @cursor[bot] in https://github.com/vercel/turborepo/pull/12600
### Changelog
* docs: Remove pre-release badges by @anthonyshew in https://github.com/vercel/turborepo/pull/12592
* fix: Align Markdown docs routing with docs/md endpoints by @molebox in https://github.com/vercel/turborepo/pull/12596
* fix: Support two-dot git ranges in filter selectors by @anthonyshew in https://github.com/vercel/turborepo/pull/12599

## New Contributors
* @marc-vercel made their first contribution in https://github.com/vercel/turborepo/pull/12595
* @cursor[bot] made their first contribution in https://github.com/vercel/turborepo/pull/12600

**Full Changelog**: https://github.com/vercel/turborepo/compare/v2.9.6-canary.3...v2.9.7-canary.1
</Release>

<Release version="v2.9.6" date="April 10, 2026" published="2026-04-10T13:23:09.000Z" url="https://github.com/vercel/turborepo/releases/tag/v2.9.6">
## Turborepo v2.9.6

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

## What's Changed
### create-turbo
* chore: Update dependencies found in audits by @anthonyshew in https://github.com/vercel/turborepo/pull/12586
### Examples
* fix: Add missing `@types/node` to `with-svelte` example apps by @anthonyshew in https://github.com/vercel/turborepo/pull/12585
### Changelog
* docs: Add Bun equivalent for updating dependencies by @anthonyshew in https://github.com/vercel/turborepo/pull/12580
* fix: Mention `turbo.json` in concurrency error message by @anthonyshew in https://github.com/vercel/turborepo/pull/12582
* fix: Surface actionable message when remote cache is requested but not linked by @anthonyshew in https://github.com/vercel/turborepo/pull/12584
* chore: Delete agents app by @anthonyshew in https://github.com/vercel/turborepo/pull/12587
* fix: Load custom CA certificates in fast webpki-only HTTP client by @anthonyshew in https://github.com/vercel/turborepo/pull/12591
* docs: Remove pre-release badges by @anthonyshew in https://github.com/vercel/turborepo/pull/12592


**Full Changelog**: https://github.com/vercel/turborepo/compare/v2.9.5...v2.9.6
</Release>

<Release version="v2.9.6-canary.3" date="April 9, 2026" published="2026-04-09T19:56:08.000Z" url="https://github.com/vercel/turborepo/releases/tag/v2.9.6-canary.3">
## Turborepo v2.9.6-canary.3

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

## What's Changed
### Changelog
* chore: Delete agents app by @anthonyshew in https://github.com/vercel/turborepo/pull/12587
* fix: Load custom CA certificates in fast webpki-only HTTP client by @anthonyshew in https://github.com/vercel/turborepo/pull/12591


**Full Changelog**: https://github.com/vercel/turborepo/compare/v2.9.6-canary.2...v2.9.6-canary.3
</Release>

<Release version="v2.9.6-canary.2" date="April 9, 2026" published="2026-04-09T05:13:55.000Z" url="https://github.com/vercel/turborepo/releases/tag/v2.9.6-canary.2">
## Turborepo v2.9.6-canary.2

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

## What's Changed
### create-turbo
* chore: Update dependencies found in audits by @anthonyshew in https://github.com/vercel/turborepo/pull/12586
### Examples
* fix: Add missing `@types/node` to `with-svelte` example apps by @anthonyshew in https://github.com/vercel/turborepo/pull/12585
### Changelog
* fix: Surface actionable message when remote cache is requested but not linked by @anthonyshew in https://github.com/vercel/turborepo/pull/12584


**Full Changelog**: https://github.com/vercel/turborepo/compare/v2.9.6-canary.1...v2.9.6-canary.2
</Release>

<Release version="v2.9.6-canary.1" date="April 8, 2026" published="2026-04-08T18:00:15.000Z" url="https://github.com/vercel/turborepo/releases/tag/v2.9.6-canary.1">
## Turborepo v2.9.6-canary.1

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

## What's Changed
### @turbo/telemetry
* fix: Suppress telemetry alert when running on Vercel by @anthonyshew in https://github.com/vercel/turborepo/pull/12576
### Changelog
* docs: Add Bun equivalent for updating dependencies by @anthonyshew in https://github.com/vercel/turborepo/pull/12580
* fix: Mention `turbo.json` in concurrency error message by @anthonyshew in https://github.com/vercel/turborepo/pull/12582


**Full Changelog**: https://github.com/vercel/turborepo/compare/v2.9.5-canary.5...v2.9.6-canary.1
</Release>

<Release version="v2.9.5" date="April 7, 2026" published="2026-04-07T17:12:15.000Z" url="https://github.com/vercel/turborepo/releases/tag/v2.9.5">
## Turborepo v2.9.5

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

## What's Changed
### create-turbo
* feat: Replace package manager commands in scaffolded README files by @DependerKumarSoni in https://github.com/vercel/turborepo/pull/6747
### @turbo/telemetry
* fix: Suppress telemetry alert when running on Vercel by @anthonyshew in https://github.com/vercel/turborepo/pull/12576
### Changelog
* feat: Add circular package dependency detection to boundaries by @anthonyshew in https://github.com/vercel/turborepo/pull/12567
* perf: Increase remote cache upload chunk size from 8KB to 256KB by @anthonyshew in https://github.com/vercel/turborepo/pull/12568
* perf: Parallelize `boundaries` checking with Rayon and cache DFS traversals by @anthonyshew in https://github.com/vercel/turborepo/pull/12569

## New Contributors
* @DependerKumarSoni made their first contribution in https://github.com/vercel/turborepo/pull/6747

**Full Changelog**: https://github.com/vercel/turborepo/compare/v2.9.4...v2.9.5
</Release>

<Release version="v2.9.5-canary.5" date="April 6, 2026" published="2026-04-06T20:38:05.000Z" url="https://github.com/vercel/turborepo/releases/tag/v2.9.5-canary.5">
## Turborepo v2.9.5-canary.5

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



**Full Changelog**: https://github.com/vercel/turborepo/compare/v2.9.5-canary.4...v2.9.5-canary.5
</Release>

<Release version="v2.9.5-canary.4" date="April 6, 2026" published="2026-04-06T18:49:05.000Z" url="https://github.com/vercel/turborepo/releases/tag/v2.9.5-canary.4">
## Turborepo v2.9.5-canary.4

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

## What's Changed
### Changelog
* perf: Increase remote cache upload chunk size from 8KB to 256KB by @anthonyshew in https://github.com/vercel/turborepo/pull/12568
* perf: Parallelize `boundaries` checking with Rayon and cache DFS traversals by @anthonyshew in https://github.com/vercel/turborepo/pull/12569


**Full Changelog**: https://github.com/vercel/turborepo/compare/v2.9.5-canary.3...v2.9.5-canary.4
</Release>

<Pagination page="1" total-pages="12" total-items="238" next="https://releases.sh/vercel/turborepo.md?page=2" />
