v16.4.0-canary.24
- Re-enable @vercel/devlow-bench publishing: #98236
- test: migrate caching deploy exclusions to force gates: #98154
- Typecheck the Turbopack ECMAScript runtime in CI: #98422
- Fix initial Turbopack HMR update handling: #98385
- Skip bundler config validation in next/jest and under test: #98392
- Remove
tsec: #98423 - Stabilize scope_unbounded panic test: #98416
Huge thanks to @wbinnssmith, @gnoff, @sokra, and @eps1lon for helping!
v16.4.0-canary.23
- Turbopack: fix require handling with alternative: #98258
- docs: clarify ISR with Suspense params: #98210
- [cd] Update
peerDependenciesin prereleases to accept the current prerelease: #98411 - test: stabilize error recovery snapshot timing: #98414
- example: Use a Redis cacheHandler w/o dependencies: #95346
- Support durable use-cache entries with client components: #98140
- Upgrade React from
f4e439e1-20260902to6c0e1047-20260908: #98363 - fix: preserve repeated --require/--import flags when forking workers: #96651
- ci: check that Turbopack compiles for wasm: #97588
- feat(next-napi-bindings): build Turbopack for wasm: #97586
- Add CSP nonce to script tags of loading and template files: #98398
- Turbopack: fix output tracing include glob traversal: #98382
- test: support deploy exclusions with force gates: #98149
- Fix: Turbopack CSS HMR error when editing an unmounted merged CSS chunk: #94551
- Dev server: More aggresively scold users for deleting .next when we detect it while dev is running: #98253
- turbo-persistence: add TURBO_PERSISTENCE_MMAP=0 to disable mmap: #97873
- Fix dev route discovery startup race: #97920
Huge thanks to @mischnic, @aurorascharff, @eps1lon, @sokra, @icyJoseph, @anujbolewar, @gnoff, @spirosikmd, and @bgw for helping!
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.
<ViewTransition />: Adds<ViewTransition />andaddTransitionTypeAPIs to power View Transition animations in React (@sebmarkbage, @jackpope, @gaearon: #31975, #31987, #31996, #31999, #32001, #32002, #32028, #32029, #32031, #32034, #32038, #32041, #32050, #32090, #32105, #32254, #32379, #32422, #32462, #32540, #32545, #32585, #32599, #32611, #32612, #32617, #32651, #32653, #32656, #32664, #32699, #32723, #32734, #32751, #32752, #32760, #32761, #32764, #32772, #32790, #32819, #32820, #32822, #32833, #32849, #33094, #33191, #33200, #33206, #33293, #33330, #33331, #33332, #33357, #33362, #33433, #33576, #34374, #34450, #34481, #34500, #34502, #34510, #34511, #34539, #35567, #35564, #35485, #35380, #35063, #35060, #34676, #36917, #35337, #35520)- Fragment Refs: Add Refs to
<Fragment />to support composable platform behavior (@jackpope, @sebmarkbage, @eps1lon, @Dhakshin2007, @chirokas, @teamleaderleo, @fallintoplace: #32465, #32613, #32619, #32654, #32660, #32682, #32722, #32813, #32814, #33056, #33058, #33093, #34069, #34103, #34544, #34545, #37062, #37061, #37060, #36047, #36010, #35642, #35641, #35637, #35630, #34935, #37457, #37408, #37326, #37251, #37171, #37169, #37168, #37167, #37166, #37165, #37164, #37163, #37162, #37161, #37160, #37125, #37063)
browser(): a newreact-domAPI 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
onBrowserBailoutoption to thereact-dom/serverAPIs to observe when a subtree defers to the browser (@gnoff #37193)
- Added an
- 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)
- 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)
- Fix Fast Refresh to find and remount edits to components wrapped behind
- Performance Track Fixes
- Prevent crash when accessing
$$typeofin 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)
- Prevent crash when accessing
- Activity Fixes
- Fix
useSyncExternalStoremissing 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)
- Fix
- 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
useDeferredValuegetting stuck (@gaearon #36134) - Update
useActionStateerror 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
.defaultexport of aReact.lazyas the canonical value (@sebmarkbage #34906) - Limit owner stacks to 10 frames (@eps1lon #34864)
- Ensure
useEffectEventreads latest values inforwardRefandmemo()components (@eps1lon #34831)
- Copy
sourceonto the synthetictoggleevent (@lazerg #37389) - Update HTML parser rules for the new
<select>parser (@josepharhar #34804) - Update
defaultValuefortype="number"inputs to match other input types (@sophiebits #36980) - Avoid setting
innerHTMLwhen it hasn't changed (@sophiebits #36949) - Forward the
nonceoption inReactDOM.preloadModule()(@UditDewan #36851) - Support
fetchPriorityfor module resources (@TheAlexLichter #36835) - Track stylesheet preloads when explicitly preloaded to avoid unnecessary suspension (@gnoff #36386)
- Suggest correct casing for the misspelled
credentiallessiframe attribute (@vmx906 #36322) - Add
credentiallessas a recognized boolean attribute for iframes (@vmx906 #36148) - Prevent reentrant
finishedTaskfrom callingcompleteAllmultiple times (@gnoff #36287) - Update the CSS shorthand property list (@kidonng #35636)
- Support the
maskTypeSVG prop (@sleitor #35921) - Add support for
onFullscreenChangeandonFullscreenErrorevents (@chirokas #34621) - Include
submitterinsubmitevents (@eps1lon #35590) - Fire
onResetwhen automatically resetting forms (@eps1lon #35176) - Use the
FormDatasubmitterparameter (@jenseng #29028) - Fix form status reset when component state is updated (@eps1lon #34075)
- Batch updates from
resizeevents until the next frame (@eps1lon #35117)
- Add
nonceto rendered import maps (@mattcosta7 #37339) - Add an
onBrowserBailoutoption 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/serverhanging on Deno (@fraidev #35235) - Extend stack overflow recovery to retries in SSR (@jackpope #36977)
- Fix false-positive hydration mismatch on
nonceattributes (@MaxwellCohen #37030) - Guard shell-error callbacks instead of nulling them out on the request (@eps1lon #36916)
- Stop firing
onAllReadyafter the shell errored (@eps1lon #36903) - Treat an incomplete tree as an error during error recovery (@acdlite #36911)
- Fix non-script
modulepreloadtracking (@fallintoplace #36564) - Finalize postponed
nextSegmentIdafter the prelude flush (@gaojude #36779) - Preserve
referrerPolicyin 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
useIdtracking on replay (@gnoff #35518) - Correctly handle replaying when hydrating (@gnoff #35494)
- Simplify the
createSuspenseBoundarypath (@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)
- Keep an element pending while a referenced row is resolving (@unstubbable #37542)
- Fix
RangeErrorfrom 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_weakto 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
.thenwithObject.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
Promisestatics in debug info (@gaearon #36969) - Tailor the warning for binary data serialized through
toJSON(NodeBuffer) (@unstubbable #36873) - Resolve models before
JSON.stringifyfor 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
FormDataentries indecodeReplyFromBusboy(@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
Blobdeserialization is not aBlob(@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
transferReferencedDebugInfoduring debug info resolution (@unstubbable #35795) - Add
unstable_allowPartialStreamoption to Flight Client (@unstubbable #35731) - Fix
encodeReplyfor JSX with temporary references (@unstubbable #35730) - Fix debug channel flag in Node.js
renderToPipeableStream(@feedthejim #35724) - Fix stack overflow in
visitAsyncNodewith deep async chains (@unstubbable #35612) - Allow Server Components to render context providers from client modules (@rickhanlonii #35675)
- Allow overriding
request.timeOriginviaoptions.startTime(@lubieowoce #35598) - Warn once if
evalis disabled in the dev environment (@eps1lon #35661) - Restore original function name in dev server callstacks served with
unsafe-eval(@eps1lon #35650) - Fix
react-markuptypes 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
toStringon Server Functions (@sebmarkbage #35345) - Move
react-server-dom-webpack/*.unbundledto privatereact-server-dom-unbundled(@eps1lon #35290) - Never parse
thenfunctions 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
hasReadableflag 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
startTimeas an option (@sebmarkbage #34912) - Ignore bound-anonymous-fn resources as they're not considered I/O (@sebmarkbage #34911)
- Fix detached
ArrayBuffererror 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
displayNameof Promise instances on the server (@sebmarkbage #34825) - Avoid unnecessary indirection when serializing debug info (@unstubbable #34797)
- Fix preload
asattribute for stylesheets (@unstubbable #34760) - Don't serialize
toJSONin debug path and omit wide arrays (@sebmarkbage #34759) - Add support for
<Activity>(@eps1lon #34697)
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.
<ViewTransition />: Adds<ViewTransition />andaddTransitionTypeAPIs to power View Transition animations in React (@sebmarkbage, @jackpope, @gaearon: #31975, #31987, #31996, #31999, #32001, #32002, #32028, #32029, #32031, #32034, #32038, #32041, #32050, #32090, #32105, #32254, #32379, #32422, #32462, #32540, #32545, #32585, #32599, #32611, #32612, #32617, #32651, #32653, #32656, #32664, #32699, #32723, #32734, #32751, #32752, #32760, #32761, #32764, #32772, #32790, #32819, #32820, #32822, #32833, #32849, #33094, #33191, #33200, #33206, #33293, #33330, #33331, #33332, #33357, #33362, #33433, #33576, #34374, #34450, #34481, #34500, #34502, #34510, #34511, #34539, #35567, #35564, #35485, #35380, #35063, #35060, #34676, #36917, #35337, #35520)- Fragment Refs: Add Refs to
<Fragment />to support composable platform behavior (@jackpope, @sebmarkbage, @eps1lon, @Dhakshin2007, @chirokas, @teamleaderleo, @fallintoplace: #32465, #32613, #32619, #32654, #32660, #32682, #32722, #32813, #32814, #33056, #33058, #33093, #34069, #34103, #34544, #34545, #37062, #37061, #37060, #36047, #36010, #35642, #35641, #35637, #35630, #34935, #37457, #37408, #37326, #37251, #37171, #37169, #37168, #37167, #37166, #37165, #37164, #37163, #37162, #37161, #37160, #37125, #37063)
browser(): a newreact-domAPI 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
onBrowserBailoutoption to thereact-dom/serverAPIs to observe when a subtree defers to the browser (@gnoff #37193)
- Added an
- 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)
- 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)
- Fix Fast Refresh to find and remount edits to components wrapped behind
- Performance Track Fixes
- Prevent crash when accessing
$$typeofin 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)
- Prevent crash when accessing
- Activity Fixes
- Fix
useSyncExternalStoremissing 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)
- Fix
- 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
useDeferredValuegetting stuck (@gaearon #36134) - Update
useActionStateerror 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
.defaultexport of aReact.lazyas the canonical value (@sebmarkbage #34906) - Limit owner stacks to 10 frames (@eps1lon #34864)
- Ensure
useEffectEventreads latest values inforwardRefandmemo()components (@eps1lon #34831)
- Copy
sourceonto the synthetictoggleevent (@lazerg #37389) - Update HTML parser rules for the new
<select>parser (@josepharhar #34804) - Update
defaultValuefortype="number"inputs to match other input types (@sophiebits #36980) - Avoid setting
innerHTMLwhen it hasn't changed (@sophiebits #36949) - Forward the
nonceoption inReactDOM.preloadModule()(@UditDewan #36851) - Support
fetchPriorityfor module resources (@TheAlexLichter #36835) - Track stylesheet preloads when explicitly preloaded to avoid unnecessary suspension (@gnoff #36386)
- Suggest correct casing for the misspelled
credentiallessiframe attribute (@vmx906 #36322) - Add
credentiallessas a recognized boolean attribute for iframes (@vmx906 #36148) - Prevent reentrant
finishedTaskfrom callingcompleteAllmultiple times (@gnoff #36287) - Update the CSS shorthand property list (@kidonng #35636)
- Support the
maskTypeSVG prop (@sleitor #35921) - Add support for
onFullscreenChangeandonFullscreenErrorevents (@chirokas #34621) - Include
submitterinsubmitevents (@eps1lon #35590) - Fire
onResetwhen automatically resetting forms (@eps1lon #35176) - Use the
FormDatasubmitterparameter (@jenseng #29028) - Fix form status reset when component state is updated (@eps1lon #34075)
- Batch updates from
resizeevents until the next frame (@eps1lon #35117)
- Add
nonceto rendered import maps (@mattcosta7 #37339) - Add an
onBrowserBailoutoption 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/serverhanging on Deno (@fraidev #35235) - Extend stack overflow recovery to retries in SSR (@jackpope #36977)
- Fix false-positive hydration mismatch on
nonceattributes (@MaxwellCohen #37030) - Guard shell-error callbacks instead of nulling them out on the request (@eps1lon #36916)
- Stop firing
onAllReadyafter the shell errored (@eps1lon #36903) - Treat an incomplete tree as an error during error recovery (@acdlite #36911)
- Fix non-script
modulepreloadtracking (@fallintoplace #36564) - Finalize postponed
nextSegmentIdafter the prelude flush (@gaojude #36779) - Preserve
referrerPolicyin 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
useIdtracking on replay (@gnoff #35518) - Correctly handle replaying when hydrating (@gnoff #35494)
- Simplify the
createSuspenseBoundarypath (@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)
- Keep an element pending while a referenced row is resolving (@unstubbable #37542)
- Fix
RangeErrorfrom 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_weakto 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
.thenwithObject.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
Promisestatics in debug info (@gaearon #36969) - Tailor the warning for binary data serialized through
toJSON(NodeBuffer) (@unstubbable #36873) - Resolve models before
JSON.stringifyfor 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
FormDataentries indecodeReplyFromBusboy(@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
Blobdeserialization is not aBlob(@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
transferReferencedDebugInfoduring debug info resolution (@unstubbable #35795) - Add
unstable_allowPartialStreamoption to Flight Client (@unstubbable #35731) - Fix
encodeReplyfor JSX with temporary references (@unstubbable #35730) - Fix debug channel flag in Node.js
renderToPipeableStream(@feedthejim #35724) - Fix stack overflow in
visitAsyncNodewith deep async chains (@unstubbable #35612) - Allow Server Components to render context providers from client modules (@rickhanlonii #35675)
- Allow overriding
request.timeOriginviaoptions.startTime(@lubieowoce #35598) - Warn once if
evalis disabled in the dev environment (@eps1lon #35661) - Restore original function name in dev server callstacks served with
unsafe-eval(@eps1lon #35650) - Fix
react-markuptypes 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
toStringon Server Functions (@sebmarkbage #35345) - Move
react-server-dom-webpack/*.unbundledto privatereact-server-dom-unbundled(@eps1lon #35290) - Never parse
thenfunctions 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
hasReadableflag 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
startTimeas an option (@sebmarkbage #34912) - Ignore bound-anonymous-fn resources as they're not considered I/O (@sebmarkbage #34911)
- Fix detached
ArrayBuffererror 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
displayNameof Promise instances on the server (@sebmarkbage #34825) - Avoid unnecessary indirection when serializing debug info (@unstubbable #34797)
- Fix preload
asattribute for stylesheets (@unstubbable #34760) - Don't serialize
toJSONin debug path and omit wide arrays (@sebmarkbage #34759) - Add support for
<Activity>(@eps1lon #34697)
9.6.1
-
[@mantine/ligtbox]Add option to render custom thumbnails for video -
[@mantine/core]OverflowList: Fix ResizeObserver console warning (#9177) -
[@mantine/core]Fix incorrect escape handling in Modal and Drawer stacks (#9188) -
[@mantine/core]SegmentedControl: Fix indicator disappearing when data list is replaced with a list with the same length (#9175) -
[@mantine/lightbox]Fix circular esm dependency (#9166) -
[@mantine/core]Accordion: Fix incorrect border radius being applied to the contained items -
[@mantine/schedule]Add event overlap mode support to WeekView and DayView -
[@mantine/core]Menu: Fix incorrectwithinPortalprop being available -
[@mantine/core]Popover: Fix position not being updated when prop changes when the dropdown is opened (#9156) -
[@mantine/schedule]Fix same-day events ending at exclusive midnight being dropped in WeekView and DayView components (#9157) -
[@mantine/hooks]use-interval: Fix timer restarting when fn changes (#9158) -
[@mantine/core]Textarea: Fix ResizeObserver loop error when autosize textarea width changes (#9162) -
[@mantine/hooks]use-collapse: Fix incorrect transition state switching when used with Activity (#9160)
v4.2.1
[!IMPORTANT] Vuetify Needs Your Support! The OpenCollective funds are running low. The team needed to scale down and is barely able to compensate the contributors for their work on the framework and the ecosystem tools.
If Vuetify is part of your stack, please consider sponsoring the project so we can continue delivering updates and fixes.
Every contribution helps us keep Vuetify alive and signals to maintainers that their effort is appreciated.
Thank you.
- VDateInput: accept placeholder as format hint (3072bc5), closes #23163
- VOverlay: support CSS zoom on browsers without
currentCSSZoom(1167eae) - VOverlay: restore location adjustment for CSS zoom (e64d00e), closes #23171
- VProgressLinear: height should accept CSS length units (#23166) (6805497), closes #23159
@tdesign-vue-next/chat@0.7.0
- 底层 Web Components 依赖迁移至
@tdesign/web-components-chat,调整 tdesign-vue-next 为 peerDependency,解决覆盖样式等问题 @RSS1102 @LzhengH (#6957)
ChatEngine: 新增生成式 UI 能力,内置支持 A2UI 协议,支持 Catalog、Registry、自定义组件、Action 执行及数据双向绑定,支持通过 AG-UI Activity 渲染和流式更新 json-render Schema @RSS1102 @LzhengH @uyarn (#6957)
- 修复主题配置被默认配置覆盖的问题 @uyarn (#6957)
Chat: 修复聊天组件更新回调后仍调用旧回调的问题 @engvuchen (#6931)ChatMarkdown: 修复引用场景下的缩进样式不符合预期的问题 @RSS1102 (#6957)ChatSender: 优化组件兼容性问题 @uyarn (#6839)
- 新增生成式 UI 使用指南及 json-render、A2UI、外部面板等示例 @uyarn (#6957)
- The underlying Web Components dependencies were migrated to
@tdesign/web-components-chat; tdesign-vue-next was set as a peerDependency to resolve issues such as style overrides @RSS1102 @LzhengH (#6957)
ChatEngine: Added generative UI capabilities, including native A2UI protocol support, Catalog, Registry, custom components, Action execution, and two-way data binding. Supports rendering and streaming updates of JSON-render schemas through AG-UI Activity.
- Fixed the issue where theme configurations were overridden by default settings @uyarn (#6957)
Chat: Resolved the problem where the old callback continued to be invoked after the chat component was updated @engvuchen (#6931)ChatMarkdown: Fixed the issue with indentation styles in reference scenarios not matching expectations @RSS1102 (#6957)ChatSender: Improved component compatibility @uyarn (#6839)
- Added usage guides for generative UI, along with examples for json-render, A2UI, and external panels @uyarn (#6957)