Conversation
Tests Passed |
3318f1e to
98686e7
Compare
Stats from current PR✅ No significant changes detected📊 All Metrics📖 Metrics GlossaryDev Server Metrics:
Build Metrics:
Change Thresholds:
⚡ Dev Server
📦 Dev Server (Webpack) (Legacy)📦 Dev Server (Webpack)
⚡ Production Builds
📦 Production Builds (Webpack) (Legacy)📦 Production Builds (Webpack)
📦 Bundle SizesBundle Sizes⚡ TurbopackClient Main Bundles: **432 kB** → **432 kB** ✓81 files with content-based hashes (individual files not comparable between builds) Server Middleware
Build DetailsBuild Manifests
📦 WebpackClient Main Bundles
Polyfills
Pages
Server Edge SSR
Middleware
Build DetailsBuild Manifests
Build Cache
🔄 Shared (bundler-independent)Runtimes
📝 Changed Files (25 files)Files with changes:
View diffsapp-page-exp..ntime.dev.jsDiff too large to display app-page-exp..time.prod.jsfailed to diffapp-page-tur..ntime.dev.jsDiff too large to display app-page-tur..time.prod.jsDiff too large to display app-page-tur..ntime.dev.jsDiff too large to display app-page-tur..time.prod.jsDiff too large to display app-page.runtime.dev.jsDiff too large to display app-page.runtime.prod.jsDiff too large to display app-route-ex..ntime.dev.jsDiff too large to display app-route-ex..time.prod.jsDiff too large to display app-route-tu..ntime.dev.jsDiff too large to display app-route-tu..time.prod.jsDiff too large to display app-route-tu..ntime.dev.jsDiff too large to display app-route-tu..time.prod.jsDiff too large to display app-route.runtime.dev.jsDiff too large to display app-route.ru..time.prod.jsDiff too large to display pages-api-tu..ntime.dev.jsDiff too large to display pages-api-tu..time.prod.jsDiff too large to display pages-api.runtime.dev.jsDiff too large to display pages-api.ru..time.prod.jsDiff too large to display pages-turbo...ntime.dev.jsDiff too large to display pages-turbo...time.prod.jsDiff too large to display pages.runtime.dev.jsDiff too large to display pages.runtime.prod.jsDiff too large to display server.runtime.prod.jsDiff too large to display |
98686e7 to
72d278a
Compare
test/e2e/app-dir/static-rsc-cache-components/static-rsc-cache-components.test.ts
Show resolved
Hide resolved
72d278a to
4702b99
Compare

This restores fast navigations to fully static PPR routes in Cache Components, even when prefetch hasn’t completed or
prefetch={false}is used. In legacy versions of PPR, theprefetchDataRouteentries would be populated with.prefetch.rscvalues containing static RSC payloads. This regressed in cache components, and the only static RSC payloads were in the.segmentsdirectory. However, when Next.js triggers a regular RSC request (non-prefetch), either because the prefetch hadn't completed yet orprefetch={false}was configured, we'd route to the empty fallback and trigger a function invocation.This restores old behavior of emitting a
.rscfile for a fully static route. This information technically also exists in the.segmentsdirectory, but it's split into parts, and it's now routed to unless explicitly done so via thenext-router-segment-prefetchheader. In addition to emitting the route, this also ensures we setprefetchDataRouteto point to this. This is how the Vercel adapter knows the file to serve.An e2e regression test now asserts that
prefetch={false}navigation does not wait for a dynamic render. The deploy test will be unblocked once vercel/vercel#14770 lands.