Core Changes
- Hide stack for bad input by default: #71253
- [after] after is not dynamic anymore: #71231
- codemod: ensure install commands run in terminal: #71255
- codemod: install types into dev dependencies: #71257
- codemod: polish end message: #71259
- chore: Ensure Next.js is built with a specified version of TypeScript: #71256
- more detailed time display: #71248
- Propagate expire/stale times the same way we do with revalidate: #71228
- Update global cache handler ref: #71263
- Handle URL-encoded Turbopack client chunks when resolving source maps: #71274
- [BREAKING] Support ESLint v9 in plugin, config and
next lint
: #71218 - Make cacheLife profiles configurable: #71232
- [dynamicIO] warn in debug mode when prospective renders error: #71266
- codemod: prettier the version logging at the beginning: #71264
- Fix missing key in
LoadingBoundary
: #71222 - codemod: install core deps based on package.json group: #71265
- Set Next-Router-Stale-Time header from collected stale times: #71279
- Respect stale time header in client prefetch cache: #71280
Misc Changes
- perf(turbopack): Do not perform tree shaking for modules without export: #71236
- perf(turbopack): Make
ModuleEvaluation
depend only on the last side effect: #71237 - fix(turbopack): Use module fragment for async module analysis: #71246
- Turbopack: Refactor resolver to accept bool instead of severity: #71254
- [Turbopack] use FxHasher for IndexMap/Set and DashMap: #71251
- test: fix flaky tests for hydration error with 18.3: #71260
- Sync @next/third-parties with React peer versions: #71261
Credits
Huge thanks to @kdy1, @eps1lon, @lubieowoce, @huozhi, @mischnic, @sokra, @sebmarkbage, @ijjk, @unstubbable, @mobeigi, @devjiwonchoi, @gnoff, and @acdlite for helping!