Change8

v2.9.15

📦 turborepoView on GitHub →
1 features🐛 23 fixes🔧 10 symbols

Summary

This release primarily focuses on stability improvements by fixing numerous race conditions related to caching, file system operations, and process management. A significant effort was made to replace panics and expect calls with safer error handling across the codebase.

✨ New Features

  • Added `with-vite-module-federation` example documentation.

🐛 Bug Fixes

  • Pruned package.json workspaces.
  • Waited for process trees before task completion.
  • Prevented cache archive symlink reads.
  • Avoided path-racy chmod during directory restore.
  • Prevented cache restore symlink race writes.
  • Made structured log symlink defense race-safe.
  • Preserved Bun alias child packages.
  • Avoided UTF-8 panics at boundaries.
  • Preserved non-UTF-8 Git path boundaries.
  • Created daemon directories with private permissions.
  • Returned Berry lockfile errors instead of panicking.
  • Isolated Corepack state in integration tests.
  • Prevented Windows process drain hangs.
  • Refactored execsync to execfilesync for Shell command built from environment values.
  • Validated daemon discovery responses.
  • Stored PackageGraph root invariants.
  • Avoided graph utility node lookup panics.
  • Avoided graph walker expect() calls.
  • Avoided API client expect calls.
  • Avoided task executor expect calls.
  • Avoided repository NAPI unwrap calls.
  • Deflaked daemon existing process test.
  • Deflaked Corepack prepare lock on Windows.

Affected Symbols