Conversation
This stack of pull requests is managed by Graphite. Learn more about stacking. |
Failing test suitesCommit: c51e106 | About building and testing Next.js
Expand output● experimental.nextScriptWorkers › experimental.nextScriptWorkers: true with required Partytown dependency for external script › Partytown snippets are injected to head if enabled in configuration ● experimental.nextScriptWorkers › experimental.nextScriptWorkers: true with required Partytown dependency for external script › Worker scripts are modified by Partytown to execute on a worker thread ● experimental.nextScriptWorkers › experimental.nextScriptWorkers: true with required Partytown dependency for inline script › Inline worker script through children is modified by Partytown to execute on a worker thread ● experimental.nextScriptWorkers › experimental.nextScriptWorkers: true with required Partytown dependency for inline script › Inline worker script through dangerouslySetInnerHtml is modified by Partytown to execute on a worker thread
Expand output● Graceful Shutdown › production (next start) › should not accept new requests during shutdown cleanup › should stop accepting new requests when shutting down ● Graceful Shutdown › production (standalone mode) › should not accept new requests during shutdown cleanup › should stop accepting new requests when shutting down
Expand output● after() in static pages › runs after during build
Expand output● app dir - basepath › should successfully hard navigate from pages -> app |
Stats from current PR🔴 1 regression
📊 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: **402 kB** → **402 kB**
|
| Canary | PR | Change | |
|---|---|---|---|
| middleware-b..fest.js gzip | 766 B | 765 B | ✓ |
| Total | 766 B | 765 B | ✅ -1 B |
Build Details
Build Manifests
| Canary | PR | Change | |
|---|---|---|---|
| _buildManifest.js gzip | 446 B | 450 B | ✓ |
| Total | 446 B | 450 B |
📦 Webpack
Client
Main Bundles
| Canary | PR | Change | |
|---|---|---|---|
| 5528-HASH.js gzip | 5.54 kB | N/A | - |
| 6280-HASH.js gzip | 59.4 kB | N/A | - |
| 6335.HASH.js gzip | 169 B | N/A | - |
| 912-HASH.js gzip | 4.59 kB | N/A | - |
| e8aec2e4-HASH.js gzip | 62.6 kB | N/A | - |
| framework-HASH.js gzip | 59.7 kB | 59.7 kB | ✓ |
| main-app-HASH.js gzip | 255 B | 254 B | ✓ |
| main-HASH.js gzip | 39.1 kB | 39.1 kB | ✓ |
| webpack-HASH.js gzip | 1.68 kB | 1.68 kB | ✓ |
| 262-HASH.js gzip | N/A | 4.59 kB | - |
| 2889.HASH.js gzip | N/A | 169 B | - |
| 5602-HASH.js gzip | N/A | 5.55 kB | - |
| 6948ada0-HASH.js gzip | N/A | 62.6 kB | - |
| 9544-HASH.js gzip | N/A | 60.2 kB | - |
| Total | 233 kB | 234 kB |
Polyfills
| Canary | PR | Change | |
|---|---|---|---|
| polyfills-HASH.js gzip | 39.4 kB | 39.4 kB | ✓ |
| Total | 39.4 kB | 39.4 kB | ✓ |
Pages
| Canary | PR | Change | |
|---|---|---|---|
| _app-HASH.js gzip | 194 B | 194 B | ✓ |
| _error-HASH.js gzip | 183 B | 180 B | 🟢 3 B (-2%) |
| css-HASH.js gzip | 331 B | 330 B | ✓ |
| dynamic-HASH.js gzip | 1.81 kB | 1.81 kB | ✓ |
| edge-ssr-HASH.js gzip | 256 B | 256 B | ✓ |
| head-HASH.js gzip | 351 B | 352 B | ✓ |
| hooks-HASH.js gzip | 384 B | 383 B | ✓ |
| image-HASH.js gzip | 580 B | 581 B | ✓ |
| index-HASH.js gzip | 260 B | 260 B | ✓ |
| link-HASH.js gzip | 2.51 kB | 2.51 kB | ✓ |
| routerDirect..HASH.js gzip | 320 B | 319 B | ✓ |
| script-HASH.js gzip | 386 B | 386 B | ✓ |
| withRouter-HASH.js gzip | 315 B | 315 B | ✓ |
| 1afbb74e6ecf..834.css gzip | 106 B | 106 B | ✓ |
| Total | 7.98 kB | 7.98 kB | ✅ -1 B |
Server
Edge SSR
| Canary | PR | Change | |
|---|---|---|---|
| edge-ssr.js gzip | 125 kB | 125 kB | ✓ |
| page.js gzip | 256 kB | 258 kB | 🔴 +2.49 kB (+1%) |
| Total | 380 kB | 383 kB |
Middleware
| Canary | PR | Change | |
|---|---|---|---|
| middleware-b..fest.js gzip | 617 B | 615 B | ✓ |
| middleware-r..fest.js gzip | 156 B | 155 B | ✓ |
| middleware.js gzip | 43.9 kB | 44.1 kB | ✓ |
| edge-runtime..pack.js gzip | 842 B | 842 B | ✓ |
| Total | 45.5 kB | 45.8 kB |
Build Details
Build Manifests
| Canary | PR | Change | |
|---|---|---|---|
| _buildManifest.js gzip | 715 B | 718 B | ✓ |
| Total | 715 B | 718 B |
Build Cache
| Canary | PR | Change | |
|---|---|---|---|
| 0.pack gzip | 4.07 MB | 4.08 MB | 🔴 +9.7 kB (+0%) |
| index.pack gzip | 104 kB | 103 kB | 🟢 1.08 kB (-1%) |
| index.pack.old gzip | 103 kB | 102 kB | 🟢 1.05 kB (-1%) |
| Total | 4.27 MB | 4.28 MB |
🔄 Shared (bundler-independent)
Runtimes
| Canary | PR | Change | |
|---|---|---|---|
| app-page-exp...dev.js gzip | 322 kB | 327 kB | 🔴 +5.23 kB (+2%) |
| app-page-exp..prod.js gzip | 171 kB | 175 kB | 🔴 +3.37 kB (+2%) |
| app-page-tur...dev.js gzip | 322 kB | 327 kB | 🔴 +5.22 kB (+2%) |
| app-page-tur..prod.js gzip | 171 kB | 174 kB | 🔴 +3.36 kB (+2%) |
| app-page-tur...dev.js gzip | 318 kB | 323 kB | 🔴 +5.15 kB (+2%) |
| app-page-tur..prod.js gzip | 169 kB | 173 kB | 🔴 +3.4 kB (+2%) |
| app-page.run...dev.js gzip | 319 kB | 324 kB | 🔴 +5.15 kB (+2%) |
| app-page.run..prod.js gzip | 169 kB | 173 kB | 🔴 +3.4 kB (+2%) |
| app-route-ex...dev.js gzip | 70.9 kB | 71.1 kB | ✓ |
| app-route-ex..prod.js gzip | 49.3 kB | 49.5 kB | ✓ |
| app-route-tu...dev.js gzip | 70.9 kB | 71.1 kB | ✓ |
| app-route-tu..prod.js gzip | 49.3 kB | 49.5 kB | ✓ |
| app-route-tu...dev.js gzip | 70.5 kB | 70.7 kB | ✓ |
| app-route-tu..prod.js gzip | 49 kB | 49.3 kB | ✓ |
| app-route.ru...dev.js gzip | 70.4 kB | 70.7 kB | ✓ |
| app-route.ru..prod.js gzip | 49 kB | 49.3 kB | ✓ |
| dist_client_...dev.js gzip | 324 B | 324 B | ✓ |
| dist_client_...dev.js gzip | 326 B | 326 B | ✓ |
| dist_client_...dev.js gzip | 318 B | 318 B | ✓ |
| dist_client_...dev.js gzip | 317 B | 317 B | ✓ |
| pages-api-tu...dev.js gzip | 43.2 kB | 43.5 kB | ✓ |
| pages-api-tu..prod.js gzip | 32.9 kB | 33.2 kB | ✓ |
| pages-api.ru...dev.js gzip | 43.2 kB | 43.5 kB | ✓ |
| pages-api.ru..prod.js gzip | 32.9 kB | 33.1 kB | ✓ |
| pages-turbo....dev.js gzip | 52.6 kB | 52.9 kB | ✓ |
| pages-turbo...prod.js gzip | 38.5 kB | 38.8 kB | ✓ |
| pages.runtim...dev.js gzip | 52.6 kB | 52.8 kB | ✓ |
| pages.runtim..prod.js gzip | 38.5 kB | 38.7 kB | ✓ |
| server.runti..prod.js gzip | 62 kB | 62.2 kB | ✓ |
| Total | 2.84 MB | 2.88 MB |
📝 Changed Files (25 files)
Files with changes:
app-page-exp..ntime.dev.jsapp-page-exp..time.prod.jsapp-page-tur..ntime.dev.jsapp-page-tur..time.prod.jsapp-page-tur..ntime.dev.jsapp-page-tur..time.prod.jsapp-page.runtime.dev.jsapp-page.runtime.prod.jsapp-route-ex..ntime.dev.jsapp-route-ex..time.prod.jsapp-route-tu..ntime.dev.jsapp-route-tu..time.prod.jsapp-route-tu..ntime.dev.jsapp-route-tu..time.prod.jsapp-route.runtime.dev.jsapp-route.ru..time.prod.jspages-api-tu..ntime.dev.jspages-api-tu..time.prod.jspages-api.runtime.dev.jspages-api.ru..time.prod.js- ... and 5 more
View diffs
app-page-exp..ntime.dev.js
failed to diffapp-page-exp..time.prod.js
failed to diffapp-page-tur..ntime.dev.js
failed to diffapp-page-tur..time.prod.js
failed to diffapp-page-tur..ntime.dev.js
failed to diffapp-page-tur..time.prod.js
failed to diffapp-page.runtime.dev.js
failed to diffapp-page.runtime.prod.js
failed to diffapp-route-ex..ntime.dev.js
Diff too large to display
app-route-ex..time.prod.js
Diff too large to display
app-route-tu..ntime.dev.js
Diff too large to display
app-route-tu..time.prod.js
Diff too large to display
app-route-tu..ntime.dev.js
Diff too large to display
app-route-tu..time.prod.js
Diff too large to display
app-route.runtime.dev.js
Diff too large to display
app-route.ru..time.prod.js
Diff too large to display
pages-api-tu..ntime.dev.js
Diff too large to display
pages-api-tu..time.prod.js
Diff too large to display
pages-api.runtime.dev.js
Diff too large to display
pages-api.ru..time.prod.js
Diff too large to display
pages-turbo...ntime.dev.js
Diff too large to display
pages-turbo...time.prod.js
Diff too large to display
pages.runtime.dev.js
Diff too large to display
pages.runtime.prod.js
Diff too large to display
server.runtime.prod.js
Diff too large to display
📎 Tarball URL
https://vercel-packages.vercel.app/next/commits/2d9ecef39425cb2cc4e08fb8f31c37aeb8e72fa8/next
83a60e0 to
e730890
Compare
09f55e4 to
2653f7a
Compare
5d08c0b to
f5d7e30
Compare
4101209 to
c8e8ea6
Compare
1ca3490 to
ab198ee
Compare
|
Deployment failed with the following error: |
b0ba55d to
89ef013
Compare
dc83079 to
b06d35e
Compare
114e0d2 to
449ef4c
Compare
4d2e1f2 to
85a490b
Compare
gnoff
left a comment
There was a problem hiding this comment.
let's add a better description before we merge but looks good as a jumping off point
Add `node-stream-helpers.ts` with Node.js native stream utilities that parallel the WhatWG stream helpers in `node-web-streams-helper.ts`. These are the foundational building blocks needed for the node-streams rendering effort (PRs vercel#89566, vercel#89859, vercel#89860, vercel#90500). Key functions: - `chainNodeStreams()` - chains multiple Readable streams sequentially - `createBufferedTransformNode()` - batches small chunks before flushing - `createInlinedDataNodeStream()` - inlines flight data into HTML stream - `pipeNodeReadableToResponse()` - pipes Readable directly to ServerResponse - `nodeStreamToBuffer()` / `nodeStreamToString()` - collection utilities ALS context propagation uses `bindSnapshot()` from the existing `async-local-storage.ts` module, which wraps `AsyncLocalStorage.bind()`. This addresses the review feedback from @lubieowoce on PR vercel#89859 where ALS context was incorrectly propagated by wrapping callback return values instead of binding the callbacks themselves. This PR adds only the helper utilities as new files. No existing files are modified. Wiring into the render pipeline is a separate step. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…eams flag Add `experimental.useNodeStreams` config flag that switches the stream operations module (stream-ops.ts) to load native Node.js implementations for hot-path functions: - chainStreams: uses chainNodeStreams (PassThrough-based sequential piping) - streamToBuffer: uses nodeStreamToBuffer (for-await on Node Readable) - streamToString: uses nodeStreamToString (streaming TextDecoder) - renderToFizzStream: uses renderToPipeableStream instead of renderToReadableStream, avoiding web→node conversion overhead in React Complex transform chains (continueFizzStream, prerender continuations) still delegate to the web implementation as a stopgap — the native buffering and data inlining transforms from node-stream-helpers will be wired in a follow-up once the web transform chain is decomposed. Includes the node-stream-helpers module from PR vercel#91580 which provides the underlying native stream utilities. References: vercel#91580, vercel#89566, vercel#90500 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2d9ecef to
c67bd1d
Compare
This reverts commit b65c69e2944428c784e18bb6e5fb8f26d95ba279.
This reverts commit 455ff01.
fa84d62 to
c51e106
Compare

No description provided.