Change8

v2.8.21

📦 turborepoView on GitHub →
4 features🐛 21 fixes1 deprecations🔧 7 symbols

Summary

This release introduces experimental structured logging via `--json` and `--log-file` flags, promotes `turbo query` to stable, and adds the `global` configuration key behind a future flag. Numerous bug fixes address issues in caching, watching, lockfile parsing, and security vulnerabilities.

Migration Steps

  1. If you rely on `turbo scan`, migrate to using `turbo query ls` or other `turbo query` commands.

✨ New Features

  • Added `packagesFromLockfile()` NAPI binding to `@turbo/repository`.
  • Added `global` configuration key behind `futureFlags.globalConfiguration`.
  • Added experimental structured logging with `--json` and `--log-file` flags.
  • Reworked `turbo ls` to use `query` internals and added `turbo query ls` shorthand.

🐛 Bug Fixes

  • Fixed JSX components being incorrectly stripped from heading anchors and TOC entries in documentation.
  • Fixed ESLint plugin guard against missing tasks/pipeline in `forEachTaskDef`.
  • Updated `with-svelte` example.
  • Used `script-shell=bash` for cross-platform `with-shell-commands` example.
  • Moved docs app icons into `app/` directory.
  • Added NixOS environment variables to default passthroughs.
  • Resolved security vulnerabilities in `tar` and `rustls-webpki`.
  • Preserved source dependencies when adding workspace dependencies in `turbo-gen`.
  • Prevented horizontal overflow from long inline code on narrow viewports.
  • Sent git SHA and dirty hash to remote cache.
  • Upgraded tokio to 1.47.1+ to fix `pidfd_reaper` panic.
  • Skipped Unix domain sockets and other special files during file hashing.
  • Aligned dry run cache status with normal run by checking caching guards.
  • Resolved turbo watch hang with mixed interruptible persistent tasks.
  • Avoided `setsid()` in PTY spawn to prevent macOS Gatekeeper CPU spikes.
  • Prevented panic in `turbo watch` with persistent tasks.
  • Supported `turbo watch` in single-package workspaces.
  • Fixed missing dependencies after npm lockfile parsing.
  • Resolved generator name conflicts across workspaces.
  • Removed root `package.json` from `--affected` global triggers.
  • Showed run summary after TUI exits.

Affected Symbols

⚡ Deprecations

  • The `turbo scan` command is deprecated.