GitHub Releases

Effortlessly track new versions of open source projects

19.3.0 (September 9, 2026)

Below is a list of all new features, APIs, and bug fixes.

Read the React 19.3 release post for more information.

New React Features

New React DOM Features

  • browser(): a new react-dom API that returns a usable which errors during server rendering and resolves in the browser. use(browser()) inside a <Suspense> boundary marks a subtree as browser-only without reporting a recoverable error (@gnoff: #37143, #37241)
    • Added an onBrowserBailout option to the react-dom/server APIs to observe when a subtree defers to the browser (@gnoff #37193)

Notable changes

  • Enable Trusted Types API integration (@rickhanlonii #35816)
  • Transitions now render independently instead of being entangled into a single render, so a slow transition no longer holds up unrelated ones (@acdlite #37290)
  • Added a DEV-only warning when a component appears to have been unblocked by calling use() conditionally (@hoxyq, @eps1lon: #37104, #37203, #37491)

All Changes

React

  • Fast Refresh Fixes
    • Fix Fast Refresh to find and remount edits to components wrapped behind lazy() (@sophiebits #36965)
    • Fix Fast Refresh so edits to a memo() comparison function take effect (@sophiebits #36964)
    • Fix Fast Refresh crash when an edit changes the kind of a component's type (@sophiebits #36963)
    • Unify hot reload type resolution for Fast Refresh (@sophiebits #36962)
    • Fix Fast Refresh to remount correctly when an edit changes the component kind (@sophiebits #36950)
    • Double invoke effects in StrictMode after Fast Refresh (@eps1lon #35962)
  • Performance Track Fixes
    • Prevent crash when accessing $$typeof in Performance Tracks (@eps1lon #35679)
    • Handle non-string function names in Performance Tracks (@eps1lon #35659)
    • Use minus (-) instead of en dash for removed props in Performance Tracks (@eps1lon #35649)
    • Handle arrays with bigints in deep objects in Performance Tracks (@eps1lon #35648)
    • Don't enumerate typed array props in Performance Tracks in DEV (@UditDewan #36913)
    • Bail out of diffing wide objects and arrays in Performance Tracks (@eps1lon #34742)
    • Clear potentially large performance measures in DEV (@hoxyq #34803)
    • Fix missing else branch for renders with no props change in Performance Tracks (@hoxyq #34837)
  • Activity Fixes
    • Fix useSyncExternalStore missing store mutations that happened while an Activity tree was hidden (@sophiebits #36947)
    • Hide portal contents when an Activity is hidden (@acdlite #35091)
    • Prevent metadata hoisting in hidden <Activity> trees (@ronnakamoto #34983)
    • Prevent errors thrown inside a hidden Activity from escaping to the visible UI (@acdlite #35074)
    • Don't unhide a node if a direct parent Offscreen is still hidden (@sebmarkbage #34821)
    • Don't show internal <Offscreen> component in error messages (@rickhanlonii #35763)
  • Warn in DEV when a component appears to have been unblocked by a conditional use() (@hoxyq, @eps1lon: #37104, #37203, #37491)
  • Render transitions independently instead of entangling them into a single render (@acdlite #37290)
  • Fix hang when updating a dehydrated boundary inside a hidden tree (@gaearon #37135)
  • Don't reacquire Host Singletons during dev effect validation (@gnoff #37113)
  • Only remove properties from Host Singletons on release (@gnoff #37112)
  • Don't invoke effects on moved children in StrictMode (@sophiebits #36948)
  • Throw a clearer error when a rejected Promise is incorrectly instrumented (@eps1lon #36328)
  • Fix context propagation into Suspense fallbacks (@acdlite #36160)
  • Fix context propagation through suspended Suspense boundaries (@acdlite #35839)
  • Fix useDeferredValue getting stuck (@gaearon #36134)
  • Update useActionState error message to say "action state" instead of "form state" (@rickhanlonii #35790)
  • Don't warn when rendering data block scripts (@eps1lon #35953)
  • Treat fibers with alternates as mounted in getNearestMountedFiber (@sebmarkbage #35578)
  • Always instrument the lazy initializer thenable (@gnoff #35521)
  • Annotate cascading updates for DevTools performance tracks in DEV (@huntie #34961)
  • Resolve the .default export of a React.lazy as the canonical value (@sebmarkbage #34906)
  • Limit owner stacks to 10 frames (@eps1lon #34864)
  • Ensure useEffectEvent reads latest values in forwardRef and memo() components (@eps1lon #34831)

React DOM

  • Copy source onto the synthetic toggle event (@lazerg #37389)
  • Update HTML parser rules for the new <select> parser (@josepharhar #34804)
  • Update defaultValue for type="number" inputs to match other input types (@sophiebits #36980)
  • Avoid setting innerHTML when it hasn't changed (@sophiebits #36949)
  • Forward the nonce option in ReactDOM.preloadModule() (@UditDewan #36851)
  • Support fetchPriority for module resources (@TheAlexLichter #36835)
  • Track stylesheet preloads when explicitly preloaded to avoid unnecessary suspension (@gnoff #36386)
  • Suggest correct casing for the misspelled credentialless iframe attribute (@vmx906 #36322)
  • Add credentialless as a recognized boolean attribute for iframes (@vmx906 #36148)
  • Prevent reentrant finishedTask from calling completeAll multiple times (@gnoff #36287)
  • Update the CSS shorthand property list (@kidonng #35636)
  • Support the maskType SVG prop (@sleitor #35921)
  • Add support for onFullscreenChange and onFullscreenError events (@chirokas #34621)
  • Include submitter in submit events (@eps1lon #35590)
  • Fire onReset when automatically resetting forms (@eps1lon #35176)
  • Use the FormData submitter parameter (@jenseng #29028)
  • Fix form status reset when component state is updated (@eps1lon #34075)
  • Batch updates from resize events until the next frame (@eps1lon #35117)

React Server

  • Add nonce to rendered import maps (@mattcosta7 #37339)
  • Add an onBrowserBailout option to observe subtrees that defer to the browser (@gnoff #37193)
  • Stop the caller's signal from retaining a finished render (@unstubbable #37315)
  • Construct the render lifetime controller only when it is needed (@unstubbable #37357)
  • Fix react-dom/server hanging on Deno (@fraidev #35235)
  • Extend stack overflow recovery to retries in SSR (@jackpope #36977)
  • Fix false-positive hydration mismatch on nonce attributes (@MaxwellCohen #37030)
  • Guard shell-error callbacks instead of nulling them out on the request (@eps1lon #36916)
  • Stop firing onAllReady after the shell errored (@eps1lon #36903)
  • Treat an incomplete tree as an error during error recovery (@acdlite #36911)
  • Fix non-script modulepreload tracking (@fallintoplace #36564)
  • Finalize postponed nextSegmentId after the prelude flush (@gaojude #36779)
  • Preserve referrerPolicy in image preload headers (@ulises-jeremias #36803)
  • Allow pending work to specialize abort reasons (@gnoff #36586)
  • Abort tasks that suspend after aborting during render (@gnoff #36585)
  • Finish abort in a scheduled task (@gnoff #36580)
  • Fix aborts during resumed rendering (@gnoff #36584)
  • Track abort state on the request (@gnoff #36583)
  • Model external work scheduling explicitly in the fb bundle (@gnoff #36576)
  • Continue reporting aborted task errors after a fatal abort (@gnoff #36575)
  • Disallow abort reentrancy (@gnoff #36574)
  • Stop transpiling computed property names (@eps1lon #36542)
  • Fix crash when capturing the callsite of a stalled use() of a rejected Flight chunk (@lubieowoce #36544)
  • Double invoke effects in Strict Mode during hydration (@eps1lon #35961)
  • Add additional task reentrancy protections in Fizz (@gnoff #36291)
  • Don't outline Suspense boundaries with suspensey CSS during shell flush (@gnoff #35824)
  • Push a stalled use() to the owner stack and debug task (@eps1lon #35226)
  • Fix useId tracking on replay (@gnoff #35518)
  • Correctly handle replaying when hydrating (@gnoff #35494)
  • Simplify the createSuspenseBoundary path (@sebmarkbage #35087)
  • Unify preamble-only fields to save a field on Suspense boundaries (@sebmarkbage #35068)
  • Unify prerender-only fields to save a field on Suspense boundaries (@sebmarkbage #35067)
  • Push halted awaits to the owner stack for late-arriving I/O info (@unstubbable #35019)
  • Include all Node.js APIs in the Bun entrypoint for react-dom/server (@RiskyMH #34193)
  • Detach a Suspense boundary after flushing its segment (@gnoff #34694)

React Server Components

  • Keep an element pending while a referenced row is resolving (@unstubbable #37542)
  • Fix RangeError from exponential debug info growth (@unstubbable #37481)
  • Abort the cache signal when debug objects are retained (@unstubbable #37342)
  • Transfer key validation of lazy nodes when they are unwrapped (@unstubbable #37258)
  • Add pending_weak to the Flight thenable protocol (@acdlite #37154)
  • Outline and dedupe repeated strings (@gaearon #37147)
  • Port Reply Server traversal guards to the Flight Client (@eps1lon #37144)
  • Define Flight chunk .then with Object.defineProperty (@eps1lon #37109)
  • Support Turbopack's experimental array format for chunks (@sampoder #37095)
  • Limit fake JSX call site stacks to 10 frames (@timneutkens #37086)
  • Improve performance when decoding Flight replies (@gnoff #37090)
  • Recognize Node 22+ V8 frames for Promise statics in debug info (@gaearon #36969)
  • Tailor the warning for binary data serialized through toJSON (Node Buffer) (@unstubbable #36873)
  • Resolve models before JSON.stringify for faster serialization (@mhart #36795)
  • Prune debug info when chunks error (@gnoff #36782)
  • Avoid main-thread stalls from large debug strings (@unstubbable #36570)
  • Fix stranded row content under Node stream backpressure (@unstubbable #36516)
  • Fix dropped FormData entries in decodeReplyFromBusboy (@unstubbable #36468)
  • Harden types and improve performance of Flight replies (@eps1lon #36425)
  • Add more cycle protections to Flight replies (@eps1lon #36236)
  • Transport AggregateError.errors (@eps1lon #36156)
  • Bail out early when a backing entry for Blob deserialization is not a Blob (@eps1lon #36055)
  • Clear chunk reason after successful module initialization (@unstubbable #36024)
  • Add support for transporting Error.cause (@eps1lon #35810)
  • Walk parsed JSON instead of using a reviver for faster RSC payload parsing (@timneutkens #35776)
  • Skip transferReferencedDebugInfo during debug info resolution (@unstubbable #35795)
  • Add unstable_allowPartialStream option to Flight Client (@unstubbable #35731)
  • Fix encodeReply for JSX with temporary references (@unstubbable #35730)
  • Fix debug channel flag in Node.js renderToPipeableStream (@feedthejim #35724)
  • Fix stack overflow in visitAsyncNode with deep async chains (@unstubbable #35612)
  • Allow Server Components to render context providers from client modules (@rickhanlonii #35675)
  • Allow overriding request.timeOrigin via options.startTime (@lubieowoce #35598)
  • Warn once if eval is disabled in the dev environment (@eps1lon #35661)
  • Restore original function name in dev server callstacks served with unsafe-eval (@eps1lon #35650)
  • Fix react-markup types for server references (@eps1lon #35634)
  • Add more DoS mitigations to Flight replies and harden Flight (@unstubbable #35632)
  • Allow cyclic references to be serialized when unwrapping lazy elements (@unstubbable #35471)
  • Improve cyclic thenable detection in Flight reply server (@cvan20191 #35369)
  • Add extra loop protection to Flight reply server (@sebmarkbage #35351)
  • Patch Promise cycles and toString on Server Functions (@sebmarkbage #35345)
  • Move react-server-dom-webpack/*.unbundled to private react-server-dom-unbundled (@eps1lon #35290)
  • Never parse then functions in Flight replies (@sebmarkbage #35289)
  • Patch Flight reply server with fixes from Flight Client (@sebmarkbage #35277)
  • Complete the list of Node.js internal Promise awaits (@eps1lon #35161)
  • Reduce risk of maximum call stack exceeded when emitting async sequences (@eps1lon #35159)
  • Fix pending chunks count for streams and async iterables in DEV (@unstubbable #35143)
  • Fix broken byte stream parsing caused by buffer detachment (@unstubbable #35127)
  • Fix hasReadable flag in Node.js clients' debug channel (@unstubbable #35039)
  • Fix debug info filtering to include later resolved I/O (@unstubbable #35036)
  • Cache the value when visiting the same I/O or Promise along different paths (@sebmarkbage #35005)
  • Clone subsequent I/O nodes when resolved more than once (@sebmarkbage #35003)
  • Fix hang after resolving cyclic references (@unstubbable #34988)
  • Allow passing DEV-only startTime as an option (@sebmarkbage #34912)
  • Ignore bound-anonymous-fn resources as they're not considered I/O (@sebmarkbage #34911)
  • Fix detached ArrayBuffer error when streaming typed arrays (@unstubbable #34849)
  • Exclude RSC stream if the stream resolves in a task (@sebmarkbage #34838)
  • Forward the current environment when forwarding I/O entries (@sebmarkbage #34836)
  • Look for moved debug info when logging component performance track (@sebmarkbage #34839)
  • Respect displayName of Promise instances on the server (@sebmarkbage #34825)
  • Avoid unnecessary indirection when serializing debug info (@unstubbable #34797)
  • Fix preload as attribute for stylesheets (@unstubbable #34760)
  • Don't serialize toJSON in debug path and omit wide arrays (@sebmarkbage #34759)
  • Add support for <Activity> (@eps1lon #34697)

19.2.8 (July 21st, 2026)

React Server Components

  • Performance improvements when decoding (#37087 by @eps1lon)

19.1.9 (July 21st, 2026)

React Server Components

  • Performance improvements when decoding (#37088 by @eps1lon)

19.0.8 (July 21st, 2026)

React Server Components

  • Performance improvements when decoding (#37089 by @eps1lon)

19.2.7 (June 1st, 2026)

React Server Components

  • Fixed missing FormData entries in Server Actions which regressed in 19.2.6 (#36566 by @unstubbable)

19.1.8 (June 1st, 2026)

React Server Components

  • Fixed missing FormData entries in Server Actions which regressed in 19.1.7 (#36567 by @unstubbable)

19.0.7 (June 1st, 2026)

React Server Components

  • Fixed missing FormData entries in Server Actions which regressed in 19.0.6 (#36568 by @unstubbable)

19.2.6 (May 6th, 2026)

React Server Components

  • Type hardening and performance improvements (#36425 by @eps1lon and @unstubbable)

19.1.7 (May 6th, 2026)

React Server Components

  • Type hardening and performance improvements (#36425 by @eps1lon and @unstubbable)

19.0.6 (May 6th, 2026)

React Server Components

  • Type hardening and performance improvements (#36425 by @eps1lon and @unstubbable)

[email protected] (April 17, 2026)

Note: 7.1.0 accidentally removed the component-hook-factories rule, causing errors for users who referenced it in their ESLint config. This is now fixed.

  • Add deprecated no-op component-hook-factories rule for backwards compatibility. (@mofeiZ in #36307)

[email protected] (April 16, 2026)

This release adds ESLint v10 support, improves performance by skipping compilation for non-React files, and includes compiler lint improvements including better set-state-in-effect detection, improved ref validation, and more helpful error reporting.

19.2.5 (April 8th, 2026)

React Server Components

  • Add more cycle protections (#36236 by @eps1lon and @unstubbable)

19.1.6 (April 8th, 2026)

React Server Components

  • Add more cycle protections (#36236 by @eps1lon and @unstubbable)

19.0.5 (April 8th, 2026)

React Server Components

  • Add more cycle protections (#36236 by @eps1lon and @unstubbable)

19.2.4 (January 26th, 2026)

React Server Components

  • Add more DoS mitigations to Server Actions, and harden Server Components (#35632 by @gnoff, @lubieowoce, @sebmarkbage, @unstubbable)

19.1.5 (January 26th, 2026)

React Server Components

  • Add more DoS mitigations to Server Actions, and harden Server Components (#35632 by @gnoff, @lubieowoce, @sebmarkbage, @unstubbable)

19.0.4 (January 26th, 2026)

React Server Components

  • Add more DoS mitigations to Server Actions, and harden Server Components (#35632 by @gnoff, @lubieowoce, @sebmarkbage, @unstubbable)

19.1.4 (December 11th, 2025)

React Server Components

  • Add extra loop protection to React Server Functions (@sebmarkbage #35351)

19.0.3 (December 11th, 2025)

React Server Components

  • Add extra loop protection to React Server Functions (@sebmarkbage #35351)

19.2.3 (December 11th, 2025)

React Server Components

  • Add extra loop protection to React Server Functions (@sebmarkbage #35351)

19.2.2 (December 11th, 2025)

React Server Components

19.1.3 (December 11th, 2025)

React Server Components

  • Move react-server-dom-webpack/*.unbundled to private react-server-dom-unbundled (@eps1lon #35290)
  • Patch Promise cycles and toString on Server Functions (@sebmarkbage, @unstubbable #35289, #35345)

19.0.2 (December 11th, 2025)

React Server Components

  • Patch Promise cycles and toString on Server Functions (@sebmarkbage, @unstubbable #35289, #35345)

19.2.1 (December 3rd, 2025)

React Server Components

  • Bring React Server Component fixes to Server Actions (@sebmarkbage #35277)

19.1.2 (December 3rd, 2025)

React Server Components

  • Bring React Server Component fixes to Server Actions (@sebmarkbage #35277)

19.0.1 (December 3rd, 2025)

React Server Components

  • Bring React Server Component fixes to Server Actions (@sebmarkbage #35277)

19.2.0 (Oct 1, 2025)

Below is a list of all new features, APIs, and bug fixes.

Read the React 19.2 release post for more information.

New React Features

  • <Activity>: A new API to hide and restore the UI and internal state of its children.
  • useEffectEvent is a React Hook that lets you extract non-reactive logic into an Effect Event.
  • cacheSignal (for RSCs) lets your know when the cache() lifetime is over.
  • React Performance tracks appear on the Performance panel’s timeline in your browser developer tools

New React DOM Features

  • Added resume APIs for partial pre-rendering with Web Streams:
  • Added resume APIs for partial pre-rendering with Node Streams:
  • Updated prerender APIs to return a postponed state that can be passed to the resume APIs.

Notable changes

  • React DOM now batches suspense boundary reveals, matching the behavior of client side rendering. This change is especially noticeable when animating the reveal of Suspense boundaries e.g. with the upcoming <ViewTransition> Component. React will batch as much reveals as possible before the first paint while trying to hit popular first-contentful paint metrics.
  • Add Node Web Streams (prerender, renderToReadableStream) to server-side-rendering APIs for Node.js
  • Use underscore instead of : IDs generated by useId

All Changes

React

  • <Activity /> was developed over many years, starting before ClassComponent.setState (@acdlite @sebmarkbage and many others)
  • Stringify context as "SomeContext" instead of "SomeContext.Provider" (@kassens #33507)
  • Include stack of cause of React instrumentation errors with %o placeholder (@eps1lon #34198)
  • Fix infinite useDeferredValue loop in popstate event (@acdlite #32821)
  • Fix a bug when an initial value was passed to useDeferredValue (@acdlite #34376)
  • Fix a crash when submitting forms with Client Actions (@sebmarkbage #33055)
  • Hide/unhide the content of dehydrated suspense boundaries if they resuspend (@sebmarkbage #32900)
  • Avoid stack overflow on wide trees during Hot Reload (@sophiebits #34145)
  • Improve Owner and Component stacks in various places (@sebmarkbage, @eps1lon: #33629, #33724, #32735, #33723)
  • Add cacheSignal (@sebmarkbage #33557)

React DOM

  • Block on Suspensey Fonts during reveal of server-side-rendered content (@sebmarkbage #33342)
  • Use underscore instead of : for IDs generated by useId (@sebmarkbage, @eps1lon: #32001, https://github.com/facebook/react/pull/33342#33099, #33422)
  • Stop warning when ARIA 1.3 attributes are used (@Abdul-Omira #34264)
  • Allow nonce to be used on hoistable styles (@Andarist #32461)
  • Warn for using a React owned node as a Container if it also has text content (@sebmarkbage #32774)
  • s/HTML/text for for error messages if text hydration mismatches (@rickhanlonii #32763)
  • Fix a bug with React.use inside React.lazy-ed Component (@hi-ogawa #33941)
  • Enable the progressiveChunkSize option for server-side-rendering APIs (@sebmarkbage #33027)
  • Fix a bug with deeply nested Suspense inside Suspense fallback when server-side-rendering (@gnoff #33467)
  • Avoid hanging when suspending after aborting while rendering (@gnoff #34192)
  • Add Node Web Streams to server-side-rendering APIs for Node.js (@sebmarkbage #33475)

React Server Components

  • Preload <img> and <link> using hints before they're rendered (@sebmarkbage #34604)
  • Log error if production elements are rendered during development (@eps1lon #34189)
  • Fix a bug when returning a Temporary reference (e.g. a Client Reference) from Server Functions (@sebmarkbage #34084, @denk0403 #33761)
  • Pass line/column to filterStackFrame (@eps1lon #33707)
  • Support Async Modules in Turbopack Server References (@lubieowoce #34531)
  • Add support for .mjs file extension in Webpack (@jennyscript #33028)
  • Fix a wrong missing key warning (@unstubbable #34350)
  • Make console log resolve in predictable order (@sebmarkbage #33665)

React Reconciler

[email protected]

Note: Version 6.0.0 was mistakenly released and immediately deprecated and untagged on npm. This is the first official 6.x major release and includes breaking changes.

  • Breaking: Require Node.js 18 or newer. (@michaelfaith in #32458)
  • Breaking: Flat config is now the default recommended preset. Legacy config moved to recommended-legacy. (@michaelfaith in #32457)
  • New Violations: Disallow calling use within try/catch blocks. (@poteto in #34040)
  • New Violations: Disallow calling useEffectEvent functions in arbitrary closures. (@jbrown215 in #33544)
  • Handle React.useEffect in addition to useEffect in rules-of-hooks. (@Ayc0 in #34076)
  • Added react-hooks settings config option that to accept additionalEffectHooks that are used across exhaustive-deps and rules-of-hooks rules. (@jbrown215) in #34497

19.1.1 (July 28, 2025)

React

  • Fixed Owner Stacks to work with ES2015 function.name semantics (#33680 by @hoxyq)

19.1.0 (March 28, 2025)

Owner Stack

An Owner Stack is a string representing the components that are directly responsible for rendering a particular component. You can log Owner Stacks when debugging or use Owner Stacks to enhance error overlays or other development tools. Owner Stacks are only available in development builds. Component Stacks in production are unchanged.

  • An Owner Stack is a development-only stack trace that helps identify which components are responsible for rendering a particular component. An Owner Stack is distinct from a Component Stacks, which shows the hierarchy of components leading to an error.
  • The captureOwnerStack API is only available in development mode and returns a Owner Stack, if available. The API can be used to enhance error overlays or log component relationships when debugging. #29923, #32353, #30306, #32538, #32529, #32538

React

  • Enhanced support for Suspense boundaries to be used anywhere, including the client, server, and during hydration. #32069, #32163, #32224, #32252
  • Reduced unnecessary client rendering through improved hydration scheduling #31751
  • Increased priority of client rendered Suspense boundaries #31776
  • Fixed frozen fallback states by rendering unfinished Suspense boundaries on the client. #31620
  • Reduced garbage collection pressure by improving Suspense boundary retries. #31667
  • Fixed erroneous “Waiting for Paint” log when the passive effect phase was not delayed #31526
  • Fixed a regression causing key warnings for flattened positional children in development mode. #32117
  • Updated useId to use valid CSS selectors, changing format from :r123: to «r123». #32001
  • Added a dev-only warning for null/undefined created in useEffect, useInsertionEffect, and useLayoutEffect. #32355
  • Fixed a bug where dev-only methods were exported in production builds. React.act is no longer available in production builds. #32200
  • Improved consistency across prod and dev to improve compatibility with Google Closure Complier and bindings #31808
  • Improve passive effect scheduling for consistent task yielding. #31785
  • Fixed asserts in React Native when passChildrenWhenCloningPersistedNodes is enabled for OffscreenComponent rendering. #32528
  • Fixed component name resolution for Portal #32640
  • Added support for beforetoggle and toggle events on the dialog element. #32479 #32479

React DOM

  • Fixed double warning when the href attribute is an empty string #31783
  • Fixed an edge case where getHoistableRoot() didn’t work properly when the container was a Document #32321
  • Removed support for using HTML comments (e.g. <!-- -->) as a DOM container. #32250
  • Added support for <script> and <template> tags to be nested within <select> tags. #31837
  • Fixed responsive images to be preloaded as HTML instead of headers #32445

use-sync-external-store

  • Added exports field to package.json for use-sync-external-store to support various entrypoints. #25231

React Server Components

  • Added unstable_prerender, a new experimental API for prerendering React Server Components on the server #31724
  • Fixed an issue where streams would hang when receiving new chunks after a global error #31840, #31851
  • Fixed an issue where pending chunks were counted twice. #31833
  • Added support for streaming in edge environments #31852
  • Added support for sending custom error names from a server so that they are available in the client for console replaying. #32116
  • Updated the server component wire format to remove IDs for hints and console.log because they have no return value #31671
  • Exposed registerServerReference in client builds to handle server references in different environments. #32534
  • Added react-server-dom-parcel package which integrates Server Components with the Parcel bundler #31725, #32132, #31799, #32294, #31741