next.js
d08f4dc0 - Add `experimental.cachedNavigations` feature flag (#90928)

Commit
8 days ago
Add `experimental.cachedNavigations` feature flag (#90928) The recent Cached Navigations feature introduced navigation-level caching into the segment cache, where static and dynamic RSC data from navigations and initial HTML loads is cached so that repeat visits can be served instantly. This feature is currently gated behind `cacheComponents`, meaning it activates for all projects that enable Cache Components. This change introduces a new `experimental.cachedNavigations` flag that independently controls the Cached Navigations behavior. The flag defaults to `false` so we can investigate potential regressions that the feature might have introduced without affecting the broader Cache Components functionality. The flag requires `cacheComponents` to also be enabled and throws a configuration error if `cachedNavigations` is set without it. On the server, the staged rendering paths in `app-render.tsx` (both RSC request handling and initial HTML rendering) now check `cacheComponents && cachedNavigations` before producing staged responses. On the client, `process.env.__NEXT_EXPERIMENTAL_CACHED_NAVIGATIONS` is used alongside `process.env.__NEXT_CACHE_COMPONENTS` for compile-time dead code elimination in the stream tee (`app-index.tsx`) and the response processing (`fetch-server-response.ts`). The cached navigations test suite enables the flag via `next.config.ts`, and the Cache Components CI jobs export `__NEXT_EXPERIMENTAL_CACHED_NAVIGATIONS=true` to maintain test coverage.
Author
Parents
Loading