v16.4.0-canary.8
- Fix Turbopack resolution through chained symlinks: #97825
- Add evals for whether agents actually use Next.js: #97816
- evals: judge behavior instead of matching source text: #97826
- Bump @vercel/agent-eval to 2.2.1: #97885
- feat(turbopack): resolve
/-rooted imports from the project directory: #97799 - [ci] Use short-lived access tokens for preview-build uploads instead of static token: #97256
- Turbopack: correctly trace through TypeScript
__importStar: #97697 - [turbopack] simplify ecmascript effect queue: #97771
- Update default Create Next App favicon: #97634
Huge thanks to @marcoshernanz, @gaojude, @sokra, @eps1lon, @mischnic, and @aurorascharff for helping!
v16.4.0-canary.7
- Fix ISR misses with backslashes in segments when deployed on Windows: #97876
- [next/image]: disable avif image optimization: #97875
- fix(wasm): don't enable SWC's plugin host for wasm targets: #97859
- fix(turbopack-node): make process_pool inert on wasm: #97858
- fix(turbopack): make the SWC wasm-plugin backend native-only: #97857
- fix(turbopack-trace-utils): skip the ctrl-c handler on wasm: #97856
- refactor(turbopack-cli-utils): replace crossterm with owo-colors: #97855
- fix(turbo-tasks-fs): create symlinks through the WASI API on wasi: #97854
- fix(turbo-tasks): compile EventListener::wait on wasm: #97853
- fix(turbo-rcstr): allow the napi feature on wasm targets: #97852
- fix(next-napi-bindings): detect the target, not the host, in build.rs: #97576
- Stop printing a stack frame for error message text: #97829
- docs: clarify revalidateTag profile expire semantics: #97836
- docs: param access on use-server: #97865
- docs: fix typos and correctness issues in App Router docs: #97823
- Add deploy release test skill: #97563
- [test] Deflake the page config test for a string config value: #97848
- test: stabilize read-only page recreation: #97674
- Show the errors of an AggregateError behind a cause: #97830
- Upgrade React from
eafeac09-20260819tobd6ea412-20260824: #97812 - fix: reuse a single drain listener when piping Node streams through gzip: #97698
- test: preserve server cache after compile error: #97724
Huge thanks to @eps1lon, @sokra, @unstubbable, @icyJoseph, @timneutkens, @hamidrezahanafi, and @wbinnssmith for helping!
v15.5.24
This release contains security fixes for the following advisories:
Critical:
v16.3.3
This release contains security fixes for the following advisories:
Critical:
v16.4.0-canary.6
- turbo-tasks: execute scheduled tasks inline when they are read: #96808
- Revert "Record fallback cache lifetime for blocking PPR routes (#97821)": #97835
- Sweep stale Turbopack output from distDir on dev startup: #97591
- Fix metadata prefetch cache key for search params: #97729
- Turbopack: Improve file existence error handling in realpath_with_links and in module resolution: #97717
- Write traces with buffered synchronous IO: #96874
Huge thanks to @sokra, @acdlite, @wbinnssmith, @marcoshernanz, @bgw, and @lukesandberg for helping!
v16.4.0-canary.5
- Record fallback cache lifetime for blocking PPR routes: #97821
- Document catchError for the Pages Router: #97748
- clippy: allow needless late init where it makes sense: #96410
- Turbopack: emit/collect: #96631
- docs: note that response headers must be set before calling handle() in a custom server: #97693
- Deduplicate the regress, wat/wasmparser and base64 dependencies: #97762
- perf: split cold TurboMalloc accounting paths: #97767
Huge thanks to @acdlite, @devjiwonchoi, @wbinnssmith, @mischnic, @icyJoseph, @lukesandberg, and @sokra for helping!
v16.4.0-canary.4
- Add next/cache-handlers types entrypoint: #97592
- Remove unused return values from getPageStaticInfo: #97661
- [turbopack] defer NFT module content hashes: #97773
- test: deflake basePath external navigation: #97611
- docs(adapters): document assetsHashes and routing.middlewareMatchers: #96536
- Migrate remaining async blocks to async closures: #97701
- Turn off the adapter route collapses by default: #97774
- Serve a run of fallback shells from one route entry: #97738
- [test] Capture the route table for apps with several param shapes: #97728
- Stop emitting a separate route entry for a dynamic route's RSC form: #97726
- Stop emitting a redundant route per prefetch segment: #97720
- [test] Capture the dynamic routes a build passes to an adapter: #97719
- turbo-tasks: compile conditional cell updates once, not per cell type: #97763
- Turbopack: add unit test coverage for FileSystemPath::hash_file: #97743
Huge thanks to @marceloboeira, @mischnic, @sokra, @leejpsd, @unstubbable, and @lukesandberg for helping!
v16.4.0-canary.1
- docs: fix parallelRouteKey parameter name in useSelectedLayoutSegment(s): #97710
- Turbopack: Avoid cloning paths in fs watcher if the path is already in a map: #97655
- Remove generated error codes: #97687
- [PPF] Instant validation for unstable_navigation(): #97309
- Turbopack: trace graceful-fs calls: #97694
- Migrate some async blocks to async closures: #97666
- turbo-tasks: add scope_unbounded, a scoped execution primitive that allows more work to be discovered: #95974
- test: make app-document-import-order more robust: #97682
- Add a Turbopack error for missing root layouts: #97639
- Improve Partial Prefetching adoption checks: #97637
- test: stabilize poisoned proxy error overlay: #97609
- docs: correct the upper stale bound for App Shell exclusion in cacheLife: #97653
- docs: Adapters entry page lists its children pages twice: #97677
- [PPF] unstable_prefetch(): #97622
- [PPF] Scaffold unstable_prefetch(): #97618
- docs: clarify beforeInteractive placement for root layouts: #97643
- fix(turbopack): give eager
import.meta.globvalues the ESM namespace: #96559
Huge thanks to @marcoshernanz, @bgw, @devjiwonchoi, @lubieowoce, @mischnic, @lukesandberg, @DavidIlie, @aurorascharff, @sokra, and @icyJoseph for helping!