refactor(app-render): extract stream-ops and debug-channel modules (5/8)#89858
Merged
timneutkens merged 2 commits intocanaryfrom Feb 23, 2026
Merged
refactor(app-render): extract stream-ops and debug-channel modules (5/8)#89858timneutkens merged 2 commits intocanaryfrom
timneutkens merged 2 commits intocanaryfrom
Conversation
Contributor
Author
This was referenced Feb 11, 2026
2b6a15e to
f12d57f
Compare
75234d5 to
22d9b4f
Compare
22d9b4f to
6b4ea2a
Compare
f12d57f to
51fb637
Compare
This was referenced Feb 11, 2026
6b4ea2a to
54df7a3
Compare
51fb637 to
b5ee83a
Compare
2 tasks
54df7a3 to
c5ede11
Compare
b5ee83a to
a174fe1
Compare
c5ede11 to
ac9e39f
Compare
Collaborator
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: **399 kB** → **399 kB** ✅ -3 B80 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 (8 files)Files with changes:
View diffsapp-page-exp..ntime.dev.jsfailed to diffapp-page-exp..time.prod.jsDiff too large to display app-page-tur..ntime.dev.jsfailed to diffapp-page-tur..time.prod.jsDiff too large to display app-page-tur..ntime.dev.jsfailed to diffapp-page-tur..time.prod.jsfailed to diffapp-page.runtime.dev.jsfailed to diffapp-page.runtime.prod.jsDiff too large to display 📎 Tarball URL |
timneutkens
reviewed
Feb 12, 2026
timneutkens
reviewed
Feb 12, 2026
timneutkens
approved these changes
Feb 12, 2026
a174fe1 to
24732c7
Compare
ac9e39f to
0ebb65f
Compare
24732c7 to
a296e79
Compare
0ebb65f to
229dd11
Compare
229dd11 to
cdc35bb
Compare
74b6486 to
f0c9ffe
Compare
694434e to
1cb6828
Compare
Base automatically changed from
feedthejim/node-stream-01d-cache-dce
to
canary
February 19, 2026 12:36
1cb6828 to
f324ca1
Compare
Collaborator
Tests Passed |
…le-time switchable modules Extract stream operations and debug channel code from app-render.tsx into separate modules that can be swapped at compile time: - stream-ops.web.ts: web stream implementations (renderToFlightStream, renderToFizzStream, continueFizzStream, etc.) - stream-ops.ts: re-exports from .web.ts (future: conditional branch) - debug-channel-server.web.ts: web debug channel implementation - debug-channel-server.ts: re-exports from .web.ts (future: conditional branch) - node-web-streams-helper.ts: add createRuntimePrefetchTransformStream Pure code motion with no behavior changes. Web paths produce identical output.
258bc9f to
488d4c7
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Summary
Pure refactor: extract stream operations and debug-channel code from
app-render.tsxinto separate compile-time switchable modules. Web-only at this stage.stream-ops.web.ts: extracted web stream operations (continueFizzStream, renderToFlightStream, renderToFizzStream, etc.)stream-ops.ts: re-export switcher (web-only for now, conditional added in next PR)debug-channel-server.web.ts: extracted web debug channel implementationdebug-channel-server.ts: re-export switcherapp-render.tsx: net reduction via imports from stream-ops/debug-channel instead of inlinenode-web-streams-helper.ts: addedcreateRuntimePrefetchTransformStreamTest plan
pnpm --filter=next typespassespnpm test-dev-turbo test/e2e/app-dir/app/)