Skip to content

[Flight] land enableHalt flag #33111

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

gnoff
Copy link
Collaborator

@gnoff gnoff commented May 2, 2025

enableHalt was added as a flag to experiment with a new semantic for prerendering RSC results. In particular we model RSC aborts for prerenders as unfinished streams where models awaiting a value will never get them. This sets the stage for resuming RSC renders in the future where we can expect a concategnation and continuation of the RSC result picking up the holes left by the aborted prerender. Prerender is already an unstable API and there is no future for the non-halting semantics so this commit lands the flag.

This change doesn't remove the flag entirely because halt semantics are also available while prerendering Fizz in the experimental channel. This API is not unstable and is more widely used so when we adopt the experimental behavior in a canary we should be closer to releasing the next major

@github-actions github-actions bot added the React Core Team Opened by a member of the React Core Team label May 2, 2025
@gnoff gnoff requested a review from sebmarkbage May 2, 2025 22:20
@react-sizebot
Copy link

react-sizebot commented May 2, 2025

Comparing: 66de8e5...9f0b209

Critical size changes

Includes critical production bundles, as well as any change greater than 2%:

Name +/- Base Current +/- gzip Base gzip Current gzip
oss-stable/react-dom/cjs/react-dom.production.js = 6.68 kB 6.68 kB = 1.83 kB 1.83 kB
oss-stable/react-dom/cjs/react-dom-client.production.js = 528.27 kB 528.27 kB = 93.14 kB 93.14 kB
oss-experimental/react-dom/cjs/react-dom.production.js = 6.69 kB 6.69 kB = 1.83 kB 1.83 kB
oss-experimental/react-dom/cjs/react-dom-client.production.js = 633.90 kB 633.90 kB = 111.33 kB 111.33 kB
facebook-www/ReactDOM-prod.classic.js = 671.68 kB 671.68 kB = 117.77 kB 117.77 kB
facebook-www/ReactDOM-prod.modern.js = 661.96 kB 661.96 kB = 116.21 kB 116.21 kB

Significant size changes

Includes any change greater than 0.2%:

Expand to show
Name +/- Base Current +/- gzip Base gzip Current gzip
oss-stable-semver/react-server/cjs/react-server-flight.production.js +1.91% 58.24 kB 59.35 kB +1.22% 11.68 kB 11.82 kB
oss-stable/react-server/cjs/react-server-flight.production.js +1.91% 58.24 kB 59.35 kB +1.22% 11.68 kB 11.82 kB
oss-stable-semver/react-server-dom-parcel/cjs/react-server-dom-parcel-server.browser.production.js +1.13% 86.66 kB 87.63 kB +0.68% 18.04 kB 18.16 kB
oss-stable/react-server-dom-parcel/cjs/react-server-dom-parcel-server.browser.production.js +1.13% 86.66 kB 87.63 kB +0.68% 18.04 kB 18.16 kB
oss-stable-semver/react-server-dom-parcel/cjs/react-server-dom-parcel-server.edge.production.js +1.11% 88.10 kB 89.07 kB +0.69% 18.35 kB 18.48 kB
oss-stable/react-server-dom-parcel/cjs/react-server-dom-parcel-server.edge.production.js +1.11% 88.10 kB 89.07 kB +0.69% 18.35 kB 18.48 kB
oss-stable-semver/react-server-dom-esm/cjs/react-server-dom-esm-server.node.production.js +1.08% 90.12 kB 91.10 kB +0.66% 18.78 kB 18.90 kB
oss-stable/react-server-dom-esm/cjs/react-server-dom-esm-server.node.production.js +1.08% 90.12 kB 91.10 kB +0.66% 18.78 kB 18.90 kB
oss-stable-semver/react-server-dom-parcel/cjs/react-server-dom-parcel-server.node.production.js +1.08% 90.15 kB 91.13 kB +0.69% 18.79 kB 18.92 kB
oss-stable/react-server-dom-parcel/cjs/react-server-dom-parcel-server.node.production.js +1.08% 90.15 kB 91.13 kB +0.69% 18.79 kB 18.92 kB
oss-stable-semver/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.browser.production.js +1.04% 93.57 kB 94.55 kB +0.67% 19.14 kB 19.26 kB
oss-stable/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.browser.production.js +1.04% 93.57 kB 94.55 kB +0.67% 19.14 kB 19.26 kB
oss-stable-semver/react-server-dom-webpack/cjs/react-server-dom-webpack-server.browser.production.js +1.04% 93.99 kB 94.96 kB +0.63% 19.25 kB 19.37 kB
oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack-server.browser.production.js +1.04% 93.99 kB 94.96 kB +0.63% 19.25 kB 19.37 kB
oss-stable-semver/react-server-dom-webpack/cjs/react-server-dom-webpack-server.edge.production.js +1.03% 95.01 kB 95.99 kB +0.62% 19.48 kB 19.60 kB
oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack-server.edge.production.js +1.03% 95.01 kB 95.99 kB +0.62% 19.48 kB 19.60 kB
oss-stable-semver/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.edge.production.js +1.03% 95.03 kB 96.01 kB +0.63% 19.47 kB 19.59 kB
oss-stable/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.edge.production.js +1.03% 95.03 kB 96.01 kB +0.63% 19.47 kB 19.59 kB
oss-stable-semver/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.unbundled.production.js +1.02% 96.09 kB 97.07 kB +0.63% 19.72 kB 19.85 kB
oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.unbundled.production.js +1.02% 96.09 kB 97.07 kB +0.63% 19.72 kB 19.85 kB
oss-stable-semver/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.node.production.js +1.01% 97.09 kB 98.07 kB +0.64% 19.93 kB 20.06 kB
oss-stable/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.node.production.js +1.01% 97.09 kB 98.07 kB +0.64% 19.93 kB 20.06 kB
oss-stable-semver/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.production.js +1.00% 97.15 kB 98.12 kB +0.62% 19.94 kB 20.07 kB
oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.production.js +1.00% 97.15 kB 98.12 kB +0.62% 19.94 kB 20.07 kB
oss-stable-semver/react-server/cjs/react-server-flight.development.js +0.98% 101.26 kB 102.26 kB +0.76% 18.84 kB 18.99 kB
oss-stable/react-server/cjs/react-server-flight.development.js +0.98% 101.26 kB 102.26 kB +0.76% 18.84 kB 18.99 kB
oss-stable-semver/react-server-dom-parcel/cjs/react-server-dom-parcel-server.browser.development.js +0.71% 140.15 kB 141.14 kB +0.53% 26.07 kB 26.21 kB
oss-stable/react-server-dom-parcel/cjs/react-server-dom-parcel-server.browser.development.js +0.71% 140.15 kB 141.14 kB +0.53% 26.07 kB 26.21 kB
oss-stable-semver/react-server-dom-parcel/cjs/react-server-dom-parcel-server.edge.development.js +0.69% 143.97 kB 144.97 kB +0.57% 26.69 kB 26.84 kB
oss-stable/react-server-dom-parcel/cjs/react-server-dom-parcel-server.edge.development.js +0.69% 143.97 kB 144.97 kB +0.57% 26.69 kB 26.84 kB
oss-stable-semver/react-server-dom-esm/cjs/react-server-dom-esm-server.node.development.js +0.69% 144.56 kB 145.55 kB +0.52% 26.97 kB 27.11 kB
oss-stable/react-server-dom-esm/cjs/react-server-dom-esm-server.node.development.js +0.69% 144.56 kB 145.55 kB +0.52% 26.97 kB 27.11 kB
oss-stable-semver/react-server-dom-parcel/cjs/react-server-dom-parcel-server.node.development.js +0.69% 144.58 kB 145.57 kB +0.55% 26.94 kB 27.09 kB
oss-stable/react-server-dom-parcel/cjs/react-server-dom-parcel-server.node.development.js +0.69% 144.58 kB 145.57 kB +0.55% 26.94 kB 27.09 kB
oss-stable-semver/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.browser.development.js +0.67% 147.89 kB 148.88 kB +0.54% 27.38 kB 27.53 kB
oss-stable/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.browser.development.js +0.67% 147.89 kB 148.88 kB +0.54% 27.38 kB 27.53 kB
oss-stable-semver/react-server-dom-webpack/cjs/react-server-dom-webpack-server.browser.development.js +0.67% 148.43 kB 149.42 kB +0.53% 27.51 kB 27.66 kB
oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack-server.browser.development.js +0.67% 148.43 kB 149.42 kB +0.53% 27.51 kB 27.66 kB
oss-stable-semver/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.unbundled.development.js +0.66% 151.25 kB 152.24 kB +0.50% 28.01 kB 28.15 kB
oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.unbundled.development.js +0.66% 151.25 kB 152.24 kB +0.50% 28.01 kB 28.15 kB
oss-stable-semver/react-server-dom-webpack/cjs/react-server-dom-webpack-server.edge.development.js +0.66% 151.72 kB 152.72 kB +0.53% 28.01 kB 28.16 kB
oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack-server.edge.development.js +0.66% 151.72 kB 152.72 kB +0.53% 28.01 kB 28.16 kB
oss-stable-semver/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.edge.development.js +0.66% 151.75 kB 152.74 kB +0.54% 28.00 kB 28.15 kB
oss-stable/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.edge.development.js +0.66% 151.75 kB 152.74 kB +0.54% 28.00 kB 28.15 kB
oss-stable-semver/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.node.development.js +0.65% 152.39 kB 153.38 kB +0.57% 28.28 kB 28.44 kB
oss-stable/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.node.development.js +0.65% 152.39 kB 153.38 kB +0.57% 28.28 kB 28.44 kB
oss-stable-semver/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.development.js +0.65% 152.45 kB 153.45 kB +0.57% 28.30 kB 28.46 kB
oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.development.js +0.65% 152.45 kB 153.45 kB +0.57% 28.30 kB 28.46 kB

Generated by 🚫 dangerJS against 9f0b209

enableHalt was added as a flag to experiment with a new semantic for prerendering RSC results. In particular we model RSC aborts for prerenders as unfinished streams where models awaiting a value will never get them. This sets the stage for resuming RSC renders in the future where we can expect a concategnation and continuation of the RSC result picking up the holes left by the aborted prerender. Prerender is already an unstable API and there is no future for the non-halting semantics so this commit lands the flag.

This change doesn't remove the flag entirely because halt semantics are also available while prerendering Fizz in the experimental channel. This API is not unstable and is more widely used so when we adopt the experimental behavior in a canary we should be closer to releasing the next major
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CLA Signed React Core Team Opened by a member of the React Core Team
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants