v2.9.15-canary.4
📦 turborepoView on GitHub →
✨ 1 features🐛 20 fixes🔧 31 symbols
Summary
This release focuses heavily on stability and robustness by eliminating numerous panic and unwrap callsites across the codebase, particularly related to file system operations, graph traversal, and various internal modules. Several race conditions related to directory restoration and symlinks were also addressed.
✨ New Features
- Added `with-vite-module-federation` example to documentation.
🐛 Bug Fixes
- 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
TaskHashTrackerShell command built from environment valuesPackageGraphvt100CorepackPackageGraph root invariantsgraph utility node lookupgraph walkerdevtools WebSocketturbo-traceVercel API mockpidlocktelemetryglobwatchLSPscopetask hashframeworksmicrofrontends proxyAPI clienttask executorturborepo-shimscmauthturbopathsignalsrun summaryUIturbo-jsonnapiturborepo-types