Pull Request Overview
- Opened on September 10, 2026
- Status Merged
- Commit count 3 with first commit September 10, 2026
Total Delta
Open Days
Test Delta
How long has this pull request spent in each phase of its lifecycle?
| Fraction of total time | Business days | Phase |
|---|---|---|
|
|
0.2 days | Authoring 1 commit before pull request opened for review |
|
|
0.1 days | Awaiting first review |
| Set up deploy tracking to begin tracking full PR start-to-deploy times | ||
Total time for pull request
0.3 business days
from first commit authored to merge
Deploy tracking has not been set up
[flags] Cleanup enableFragmentRefs feature flag
Summary
enableFragmentRefs is enabled in every channel, so this inlines the enabled branch and removes the flag from ReactFeatureFlags and all of its forks.
Most of the diff is mechanical, but a few spots needed care:
- Several
case Fragment:blocks inReactFiberCommitWorkhad a// Fallthroughthat was only reachable with the flag off. Where a preceding case falls intoFragment(theViewTransitionComponentcases), I verified the resulting behavior is unchanged for every remaining flag combination. -
commitAttachRefinReactFiberCommitEffectsbecomes a plaincase Fragment: { ... break; }instead of a conditional fallthrough intodefault. - The
React.Fragmentinvalid-prop warning no longer has two variants; it always mentionskey,ref, andchildren.
The three related flags β enableFragmentRefsScrollIntoView, enableFragmentRefsInstanceHandles, and enableFragmentRefsTextNodes β are not on everywhere yet and are left in place.
In tests, enableFragmentRefs was stripped from 101 @gate pragmas. Combined gates such as @gate enableFragmentRefs && enableFragmentRefsTextNodes were reduced rather than removed. One test asserted the absence of a warning under the flag, so it was renamed from warns for fragments with refs to does not warn for fragments with refs.
How did you test this change?
yarn lint, yarn prettier-check, and yarn flow for dom-node, dom-browser, and fabric all pass.
Full test suite run across experimental, stable, www-modern, www-classic, and xplat, with both --variant settings, plus --persistent. The remaining failures (Fizz / Flight / FrameScheduling / ClassEquivalence) are pre-existing: I diffed the individual failing test names against the base commit and they are identical.
Comments Threads Pending Resolution
Resolved Comment Threads
No resolved comments have been left on this PR.