Prune descendant replay paths after a parent postpone #37851

Closed
gnoff opened 6:45pm on October 14, 2026 wanted to merge 103 Ξ” into facebook/react main from
jstory/fizz-prune-overlapping-replay-nodes

Pull Request Overview

  • Opened on October 14, 2026
  • Status Closed
  • Commit count 1 with first commit October 14, 2026

Total Delta

103 Total Diff Delta

Open Days

Open 23 weekdays

Test Delta

0 Diff Delta in Test Files
Breakdown by Phase

How long has this pull request spent in each phase of its lifecycle?

Fraction of total time Business days Phase
 
0 days Authoring 1 commit before pull request opened for review
 
0 days Awaiting first review

Total time for pull request 0 business days from first commit to closed PR

Author avatar

Prune descendant replay paths after a parent postpone

Follow-up to #37850. Extracting the suspended and aborting children into a component still leaves a nested child replay path beneath a Suspense boundary whose whole content was postponed. Resume rerenders that content but then finds the stale child path, reports a replay mismatch, and leaves the fallback visible.

When recording a whole-content replay slot, clear descendant replay paths already tracked and avoid attaching later paths beneath it. The new regression test wraps the children in a component and verifies that both render after resume.

Tests:
- yarn test ReactDOMFizzStatic --runInBand (60 passed)
- yarn test ReactDOMFizzStatic --prod --runInBand (60 passed)
- yarn test ReactDOMFizzSuspenseList --runInBand (13 passed)
- yarn linc
- node scripts/prettier/index.js check-changed
- yarn flow dom-node

Comments Threads Pending Resolution

Resolved Comment Threads

No resolved comments have been left on this PR.