# Next.js v16.4.0-canary.4 - Product: Next.js (https://whatsnew.fyi/product/next-js) - Vendor: Vercel - Date: 2026-08-24 - Version: v16.4.0-canary.4 - Original notes: https://github.com/vercel/next.js/releases/tag/v16.4.0-canary.4 - Permalink: https://whatsnew.fyi/product/next-js/releases/v16.4.0-canary.4 - Labels: Pre-release What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. --- - **added** — Add next/cache-handlers types entrypoint - **changed** — Remove unused return values from getPageStaticInfo - **changed** — Defer NFT module content hashes in turbopack - **changed** — Turn off the adapter route collapses by default - **changed** — Serve a run of fallback shells from one route entry - **changed** — Stop emitting a separate route entry for a dynamic route's RSC form - **changed** — Stop emitting a redundant route per prefetch segment - **changed** — Compile conditional cell updates once instead of per cell type in turbo-tasks - **changed** — Migrate remaining async blocks to async closures ###### Misc Changes - 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 ###### Credits Huge thanks to @marceloboeira, @mischnic, @sokra, @leejpsd, @unstubbable, and @lukesandberg for helping!