Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
7790 commits
Select commit Hold shift + click to select a range
58bdc0b
[Flight] Ignore bound-anonymous-fn resources as they're not considere…
sebmarkbage Oct 19, 2025
2cfb221
[Flight] Allow passing DEV only startTime as an option (#34912)
sebmarkbage Oct 19, 2025
b485f7c
[DevTools] Don't attach filtered IO to grandparent Suspense (#34916)
eps1lon Oct 19, 2025
f6a4882
[DevTools] Show the Suspense boundary name in the rect if there's no …
sebmarkbage Oct 20, 2025
1440f4f
[DevTools] BuiltInCallSite should have padding-left (#34922)
sebmarkbage Oct 20, 2025
21272a6
Lower case "rsc stream" debug info (#34921)
sebmarkbage Oct 20, 2025
02c80f0
[DevTools] fix: dont ship source maps for css in prod builds (#34913)
hoxyq Oct 20, 2025
aaad0ea
[DevTools] chore: read from build/COMMIT_SHA fle as fallback for comm…
hoxyq Oct 20, 2025
2bcbf25
[compiler] Fix false positive for useMemo reassigning context vars (#…
josephsavona Oct 20, 2025
1d36646
[DevTools] Text layout fixes for stack traces with badges (#34925)
eps1lon Oct 20, 2025
3cde211
React DevTools 7.0.0 -> 7.0.1 (#34926)
hoxyq Oct 20, 2025
031595d
[DevTools] Title color tweak (#34927)
sebmarkbage Oct 20, 2025
ea0c17b
[compiler] loosen computed key restriction for compiler (#34902)
nathanmarks Oct 20, 2025
613cf80
[DevTools] chore: add useSyncExternalStore examples to shell (#34932)
hoxyq Oct 21, 2025
39c6545
Fix indices of hooks in devtools when using useSyncExternalStore (#34…
blazejkustra Oct 21, 2025
71b3a03
[forgive] Various fixes to prepare for internal sync (#34928)
poteto Oct 21, 2025
6b344c7
Switch to `export =` to fix eslint-plugin-react-hooks types (#34949)
karlhorky Oct 22, 2025
bbb7a1f
[eprh] Type `configs.flat` more strictly (#34950)
poteto Oct 22, 2025
723b25c
Add hint for Node.js cjs-module-lexer for eslint-plugin-react-hook ty…
karlhorky Oct 22, 2025
eb2f784
Add hint for Node.js cjs-module-lexer for eslint-plugin-react-hook ty…
karlhorky Oct 22, 2025
6160773
[playground] Refactor ConfigEditor to use <Activity> component (#34958)
0xlau Oct 23, 2025
e0654be
[eprh] Update changelog for 7.0.1 (#34964)
poteto Oct 23, 2025
c91783c
[eprh] Bump ReactVersions for next version (#34965)
poteto Oct 23, 2025
09056ab
[Compiler] Improve error for calculate in render useEffect validation…
jorge-cab Oct 23, 2025
408b38e
[compiler] Improve display of errors on multi-line expressions (#34963)
josephsavona Oct 23, 2025
ba0590f
[playground] Upgrade playwright (#34991)
EugeneChoi4 Oct 27, 2025
d3d0ce3
[script] Add yarn generate-changelog (#34962)
poteto Oct 27, 2025
0d721b6
[Flight] Don't hang after resolving cyclic references (#34988)
unstubbable Oct 27, 2025
90817f8
[rn] delete the legacy renderers from the sync (#34946)
rickhanlonii Oct 27, 2025
dd53a94
[rn] enabled disableLegacyMode everywhere (#34947)
rickhanlonii Oct 27, 2025
69f3e9d
[generate-changelog] Add `--format` option (#34992)
poteto Oct 27, 2025
17b3765
[generate-changelog] Refactor (#34993)
poteto Oct 27, 2025
b4455a6
[react-dom] Include all Node.js APIs in Bun entrypoint for `/server` …
RiskyMH Oct 27, 2025
fb0d960
[tests] disableLegacyMode in test-renderer (#35002)
rickhanlonii Oct 28, 2025
0fa3250
[Flight] Clone subsequent I/O nodes if it's resolved more than once (…
sebmarkbage Oct 28, 2025
4f93170
[Flight] Cache the value if we visit the same I/O or Promise multiple…
sebmarkbage Oct 29, 2025
0a5fb67
[DevTools] Sort suspense timeline by end time instead of just documen…
sebmarkbage Oct 29, 2025
3a0ab8a
[DevTools] Synchronize Scroll Position Between Suspense Tab and Main …
sebmarkbage Oct 30, 2025
6fb7754
[DevTools] Render selected outline on top of every other rect (#35012)
sebmarkbage Oct 30, 2025
c9ddee7
[DevTools] Reset forced states when changing component filters (#34929)
eps1lon Oct 31, 2025
26cf280
Switch the default revealOrder to "forwards" and tail "hidden" on Sus…
sebmarkbage Oct 31, 2025
488d88b
Render children passed to "backwards" SuspenseList in reverse mount o…
sebmarkbage Oct 31, 2025
561ee24
[Fizz] Push halted await to the owner stack for late-arriving I/O inf…
unstubbable Nov 1, 2025
67f7d47
[Flight] Fix debug info filtering to include later resolved I/O (#35036)
unstubbable Nov 3, 2025
edd05f1
Add fragment handles to children of FragmentInstances (#34935)
jackpope Nov 3, 2025
f646e8f
[Flight] Fix `hasReadable` flag in Node.js clients' debug channel (#3…
unstubbable Nov 4, 2025
d000261
[Tracks] Annotate devtools.performanceIssue for Cascading Updates in …
huntie Nov 4, 2025
8f8b336
[eslint] Fix useEffectEvent checks in component syntax (#35041)
jbrown215 Nov 4, 2025
986323f
[Fiber] SuspenseList with "hidden" tail row should "catch" suspense (…
sebmarkbage Nov 5, 2025
c308cb5
Disable enablePostpone flag in experimental (#31042)
sebmarkbage Nov 5, 2025
dd048c3
Clean up enablePostpone Experiment (#35048)
sebmarkbage Nov 5, 2025
0ba2f01
Rename <Suspense unstable_expectedLoadTime> to <Suspense defer> and i…
sebmarkbage Nov 5, 2025
fa767da
Remove unstable_expectedLoadTime option (#35051)
sebmarkbage Nov 5, 2025
5a2205b
Update bug report template for eslint plugin label (#34959)
kachkaev Nov 5, 2025
1a31a81
Escape View Transition Name Strings as base64 (#35060)
sebmarkbage Nov 6, 2025
37b089a
Don't skip content in visible offscreen trees for View Transitions (#…
sebmarkbage Nov 6, 2025
a44e750
Store instance handles in an internal map behind flag (#35053)
jackpope Nov 6, 2025
38bdda1
Don't skip content in visible offscreen trees for Gesture View Transi…
sebmarkbage Nov 7, 2025
1e986f5
[Fizz] Unify prerender only fields to save a field (#35067)
sebmarkbage Nov 7, 2025
fa50caf
[Fizz] Unify preamble only fields to save a field (#35068)
sebmarkbage Nov 7, 2025
a10ff9c
Upgrade devtools dependency update-notifier to 5.x (#31655)
stianjensen Nov 7, 2025
717e708
Fix: Errors should not escape a hidden Activity (#35074)
acdlite Nov 7, 2025
5a9921b
[DevTools] Apply Activity slice filter when double clicking Activity …
eps1lon Nov 8, 2025
6362b5c
[DevTools] Special case the selected root outline (#35071)
sebmarkbage Nov 9, 2025
c83be7d
[Fizz] Simplify createSuspenseBoundary path (#35087)
sebmarkbage Nov 9, 2025
5268492
Fix: Activity should hide portal contents (#35091)
acdlite Nov 10, 2025
be48396
Remove Dead Code in WWW JS
facebook-github-bot Nov 10, 2025
21c1d51
[DevTools] Don't attempt to draw bounding box if inspected element is…
eps1lon Nov 10, 2025
ce4054e
[DevTools] Measure when reconnecting Suspense (#35098)
eps1lon Nov 10, 2025
01fb328
[compiler] Prevent overriding a derivationEntry on effect mutation an…
jorge-cab Nov 10, 2025
6347c6d
[compiler] Fix false negatives and add data flow tree to compiler err…
jorge-cab Nov 10, 2025
7296120
[compiler] Update ValidateNoDerivedComputationsInEffects_exp to log t…
jorge-cab Nov 10, 2025
f76c361
[compiler] Switch to track setStates by aliasing and id instead of id…
jorge-cab Nov 10, 2025
92ac4e8
[compiler] Don't validate when effect cleanup function depends on eff…
jorge-cab Nov 10, 2025
100fc4a
[compiler] Prevent local state source variables from depending on oth…
jorge-cab Nov 10, 2025
04ee54c
[tests] add more portal activity tests (#35095)
rickhanlonii Nov 11, 2025
db8273c
[compiler] Update test snap to include fixture comment (#35100)
jorge-cab Nov 11, 2025
5e94655
[compiler] _exp version of ValidateNoDerivedComputationsInEffects tak…
jorge-cab Nov 11, 2025
8c15edd
[DevTools] Send root unmount as a regular removal operation (#35107)
eps1lon Nov 11, 2025
1ea46df
[DevTools] Batch updates when updating component filters (#35093)
eps1lon Nov 11, 2025
bbe3f4d
[flags] disableLegacyMode in native-fb (#35120)
rickhanlonii Nov 12, 2025
3a495ae
[compiler] source location validator (#35109)
nathanmarks Nov 13, 2025
093b324
[react-dom] Batch updates from `resize` until next frame (#35117)
eps1lon Nov 13, 2025
93fc574
[Flight] Fix broken byte stream parsing caused by buffer detachment (…
unstubbable Nov 13, 2025
de97ef9
[Compiler] Don't count a setState in the dependency array of the effe…
jorge-cab Nov 14, 2025
257b033
[Compiler] Avoid capturing global setStates for no-derived-computatio…
jorge-cab Nov 14, 2025
21f2824
[compiler] Allow ref access in callbacks passed to event handler prop…
kolvian Nov 14, 2025
dbf2538
[compiler] Repro for false positive mutation of a value derived from …
josephsavona Nov 14, 2025
19b769f
[compiler] Fix for inferring props-derived-value as mutable (#35140)
josephsavona Nov 14, 2025
647e133
[compiler] fix bad rebase from sapling (#35145)
josephsavona Nov 14, 2025
fb2177c
[Flight] Fix pending chunks count for streams & async iterables in DE…
unstubbable Nov 14, 2025
45bc3c9
[Flight] Reduce risk of maximum call stack exceeded when emitting asy…
eps1lon Nov 17, 2025
7df96b0
[Flight] Complete list of Node.js' internal Promise awaits (#35161)
eps1lon Nov 17, 2025
b315a0f
[compiler] Fix for destructuring with mixed declaration/reassignment …
josephsavona Nov 17, 2025
d6b1a05
[compiler] Extract reusable logic for control dominators (#35146)
josephsavona Nov 17, 2025
b946a24
[compiler] Improve setState-in-effects rule to account for ref-gated …
josephsavona Nov 17, 2025
ea4899e
[compiler][snap] Support pattern of files to test as CLI argument (#3…
josephsavona Nov 17, 2025
7f1a085
[DevTools] Show list of named Activities in Suspense tab (#35092)
eps1lon Nov 18, 2025
194c12d
[DevTools] Name root "Transition" when focusing on Activity (#35108)
eps1lon Nov 18, 2025
0972e23
[compiler] Consider setter from useOptimistic non-reactive (#35141)
rickhanlonii Nov 18, 2025
eb89912
Add expertimental `optimisticKey` behind a flag (#35162)
sebmarkbage Nov 18, 2025
8ac5f4e
Fix form status reset when component state is updated (#34075)
eps1lon Nov 19, 2025
7ee974d
[compiler] Prevent innaccurate derivation recording on FunctionExpres…
jorge-cab Nov 20, 2025
7d67591
[compiler] Remove useState argument constraint. no-derived-computatio…
jorge-cab Nov 20, 2025
4cf770d
[compiler][poc] Quick experiment with SSR-optimization pass (#35102)
josephsavona Nov 20, 2025
50e7ec8
[compiler] Deprecate noEmit, add outputMode (#35112)
josephsavona Nov 20, 2025
bcc3fd8
[compiler] Implement exhaustive dependency checking for manual memoiz…
josephsavona Nov 21, 2025
df75af4
[compiler] Auto-fix for non-exhaustive deps (#34471)
josephsavona Nov 21, 2025
40b4a5b
[compiler] ValidateExhaustiveDeps disallows unnecessary non-reactive …
josephsavona Nov 21, 2025
fd524fe
[DevTools] hotkey to start/stop profiling (#35160)
emily8rown Nov 21, 2025
fca172e
[compiler] Ignore ESLint suppressions when ValidateMemoDeps enabled (…
josephsavona Nov 24, 2025
c9a8cf3
[compiler] Allow nonreactive stable types as extraneous deps (#35185)
josephsavona Nov 24, 2025
454e01e
[compiler] Allow manual dependencies to have different optionality th…
josephsavona Nov 24, 2025
67c1487
[compiler] Allow extraneous non-reactive locals (#35190)
josephsavona Nov 24, 2025
9599e7a
[compiler] Adjustments to exhaustive deps messages, disable the lint …
josephsavona Nov 24, 2025
16e16ec
[compiler] Script to enable a feature by default and update tests (#3…
josephsavona Nov 24, 2025
d39a1d6
[compiler] Distingush optional/extraneous deps (#35204)
josephsavona Nov 25, 2025
ddff354
[compiler] Enable validateExhaustiveMemoizationDependencies by defaul…
josephsavona Nov 25, 2025
fb18ad3
[compiler] Exhaustive deps: extra tests, improve diagnostic (#35213)
josephsavona Nov 25, 2025
627b583
[compiler][snap] Fix for filter mode with nested files, 'error.' pref…
josephsavona Nov 25, 2025
74fa166
[DevTools] Move "Back to full tree view" into Activity list item (#35…
eps1lon Nov 26, 2025
6875c3e
[test] Only run tests overriding fallback and error states in support…
eps1lon Nov 27, 2025
1721e73
[test] Fix Error Proxy in Node.js 21+ (#35227)
eps1lon Nov 29, 2025
0af4fd8
[test] Update ESLint e2e tests (#35233)
eps1lon Dec 1, 2025
09f0569
[compiler] Extend setState in effect validation to useEffectEvent (#3…
jackpope Dec 1, 2025
36df5e8
[release] Allow building single release channel with processed versio…
eps1lon Dec 2, 2025
7dc903c
Patch FlightReplyServer with fixes from ReactFlightClient (#35277)
sebmarkbage Dec 3, 2025
0526c79
Update changelog with latest releases (#35279)
eps1lon Dec 3, 2025
bf1afad
[react-dom/server] Fix hanging on Deno (#35235)
fraidev Dec 4, 2025
66ae640
[eprh] fix react-compiler rules missing `meta.docs.url` property (#35…
k-yle Dec 4, 2025
f99241b
[compiler] Add enableUseKeyedState flag and improve setState-in-rende…
poteto Dec 4, 2025
3016ff8
[Flight] Never parse "then" functions (#35289)
sebmarkbage Dec 5, 2025
378973b
[Flight] Move `react-server-dom-webpack/*.unbundled` to private `reac…
eps1lon Dec 5, 2025
ad5971f
fix[devtools]: no-op unsupported backend bridge events (#35296)
hoxyq Dec 5, 2025
2cb08e6
[compiler] Fix bug w functions depending on hoisted primitives (#35284)
josephsavona Dec 5, 2025
c0b7c0d
[scripts] Remove `perf-counters` (#35308)
eps1lon Dec 6, 2025
4174533
Run CI for backport releases (#35313)
eps1lon Dec 7, 2025
380778d
[test] Cleanup stack assertions in tests mixing React Server and Clie…
eps1lon Dec 7, 2025
ec9cc00
[compiler][poc] Reuse ValidateExhaustiveDeps for effect dep validatio…
josephsavona Dec 8, 2025
3640f38
[compiler] Add enableVerboseNoSetStateInEffect to suggest options to …
poteto Dec 8, 2025
55480b4
[playground] Downgrade Next.js to a secure version (#35317)
eps1lon Dec 8, 2025
61331f3
Fix ViewTransition crash in Mobile Safari (#35337)
gaearon Dec 9, 2025
734f1bf
[eprh] Enable enableUseKeyedState and enableVerboseNoSetStateInEffect…
poteto Dec 9, 2025
d763f31
[Devtools] Navigating commits performance panel hotkey (#35238)
emily8rown Dec 10, 2025
eade0d0
Attach instance handle to DOM in DEV for enableInternalInstanceMap (#…
jackpope Dec 10, 2025
5d80124
fix[devtools]: still show overlay, if getClientRects is not implement…
hoxyq Dec 10, 2025
5a97093
fix[devtools]: feature-check structure stack trace methods (#35293)
hoxyq Dec 10, 2025
37bcdcd
fix[devtools]: feature-check document with typeof instead of direct r…
hoxyq Dec 11, 2025
d3eb566
[compiler] Fix VariableDeclarator source location (#35129)
nathanmarks Dec 11, 2025
894bc73
[Flight] Patch Promise cycles and toString on Server Functions (#35345)
sebmarkbage Dec 11, 2025
80cb7a9
Revert "[compiler] Fix VariableDeclarator source location (#35129)" (…
sebmarkbage Dec 11, 2025
b45bb33
[Flight] Add extra loop protection (#35351)
sebmarkbage Dec 11, 2025
b85cf6a
[compiler] Fix VariableDeclarator source location (#35348)
nathanmarks Dec 11, 2025
38a6f4e
[compiler] Only run validations with env.logErrors on outputMode: 'li…
jorge-cab Dec 12, 2025
b061b59
Upgrade nextjs for compiler playground (#35353)
jackpope Dec 12, 2025
ba5b843
[test] Exclude repository root from assertions (#35361)
eps1lon Dec 15, 2025
bcf97c7
Devtools disable log dimming strict mode setting (#35207)
emily8rown Dec 15, 2025
88ee1f5
Add reporting modes for react-hooks/exhaustive-effect-dependencies an…
jackpope Dec 15, 2025
b731fe2
Improve cyclic thenable detection in ReactFlightReplyServer (#35369)
cvan20191 Dec 17, 2025
f93b9fd
Skip hydration errors when a view transition has been applied (#35380)
sebmarkbage Dec 17, 2025
454fc41
[test] Add tests for cyclic arrays in Flight and Flight Reply (#35347)
unstubbable Dec 17, 2025
65eec42
Use `FormData` `submitter` parameter (#29028)
jenseng Dec 18, 2025
0e18014
[ci] Separate DevTools test-build into dedicated job with fewer shard…
poteto Jan 7, 2026
00908be
[ci] Increase DevTools test shards and bump timeout (#35459)
poteto Jan 7, 2026
d6cae44
[ci] Add size-balanced test sequencer for better shard distribution (…
poteto Jan 7, 2026
5aec1b2
[DevTools] Attach async info in filtered fallback to parent of Suspen…
eps1lon Jan 10, 2026
8a83073
[test] Fix DevTools regression tests (#35501)
eps1lon Jan 13, 2026
583e200
[DevTools] Enable minimal support in pages with `sandbox` Content-Sec…
mochiya98 Jan 13, 2026
c186624
[Fiber] Correctly handle replaying when hydrating (#35494)
gnoff Jan 13, 2026
3e1abcc
[tests] Require exact error messages in assertConsole helpers (#35497)
rickhanlonii Jan 13, 2026
4a3d993
Add the suffix to cancelled view transition names (#35485)
sebmarkbage Jan 14, 2026
53daaf5
Improve the detection of changed hooks (#35123)
blazejkustra Jan 15, 2026
fae15df
[DevTools] Add React Element pane to browser Elements panel (#35240)
eps1lon Jan 15, 2026
bb8a76c
[DevTools] Show fallback in inspected element pane when no element is…
eps1lon Jan 15, 2026
f0fbb0d
[Fiber] fix useId tracking on replay (#35518)
gnoff Jan 16, 2026
4028aaa
Commit the Gesture lane if a gesture ends closer to the target state …
sebmarkbage Jan 16, 2026
35a81ce
Entangle Gesture revert commit with the corresponding Action commit (…
sebmarkbage Jan 16, 2026
eac3c95
Defer useDeferredValue updates in Gestures (#35511)
sebmarkbage Jan 16, 2026
4cf9063
Optimize gesture by allowing the original work in progress tree to be…
sebmarkbage Jan 16, 2026
db71391
[Fiber] Instrument the lazy initializer thenable in all cases (#35521)
gnoff Jan 16, 2026
cbc4d40
Typecheck React DevTools extension main script (#35519)
eps1lon Jan 16, 2026
01c4d03
[DevTools] Clear element inspection if host element not owned by any …
eps1lon Jan 16, 2026
bef88f7
[DevTools] Stop setting unused global variables (#35532)
eps1lon Jan 16, 2026
6baff7a
[Flight] Allow cyclic references to be serialized when unwrapping laz…
unstubbable Jan 16, 2026
3926e24
Fix ViewTransition null stateNode with SuspenseList (#35520)
jackpope Jan 16, 2026
23e5edd
[flags] clean up enableUseEffectEventHook (#35541)
rickhanlonii Jan 17, 2026
be3fb29
[internal] revert change merged accidentally (#35546)
rickhanlonii Jan 17, 2026
d87298a
[tests] add silent reporter (#35547)
rickhanlonii Jan 18, 2026
195fd22
[tests] Fix flaky flight tests (#35513)
rickhanlonii Jan 18, 2026
41b3e9a
[Fizz] Push a stalled use() to the ownerStack/debugTask (#35226)
eps1lon Jan 19, 2026
4bcf67e
Support onGestureEnter/Exit/Share/Update events (#35556)
sebmarkbage Jan 20, 2026
a49952b
Properly clean up gesture Animations (#35559)
sebmarkbage Jan 20, 2026
c55ffb5
Add Clean Up Callbacks to View Transition and Gesture Transition Even…
sebmarkbage Jan 20, 2026
1ecd99c
Temporarily Mount useInsertionEffect while a Gesture snapshot is bein…
sebmarkbage Jan 20, 2026
d343c39
Remove Gesture warning when cloning the root (#35566)
sebmarkbage Jan 20, 2026
d290875
Cancel animation when a custom Timeline is used (#35567)
sebmarkbage Jan 20, 2026
7fccd6b
[DevTools] Fix console links not being openable (#35229)
eps1lon Jan 21, 2026
b546603
[Fiber] getNearestMountedFiber should consider fibers with alternates…
sebmarkbage Jan 21, 2026
cdbd55f
Type `react-devtools-hook-installer` and `react-devtools-hook-setting…
eps1lon Jan 21, 2026
03ee29d
[eslint-plugin-react-hooks] Skip compilation for non-React files (#35…
josephsavona Jan 21, 2026
6a0ab4d
Add worktree script (#35593)
josephsavona Jan 22, 2026
2d8e7f1
[flags] Remove enableHydrationLaneScheduling (#35549)
rickhanlonii Jan 22, 2026
94913cb
[flags] cleanup renameElementSymbol (#35600)
hoxyq Jan 23, 2026
24d8716
Gitignore local Claude files (#35610)
eps1lon Jan 23, 2026
2af6822
[compiler] Claude file/settings (#35523)
josephsavona Jan 23, 2026
03613cd
[compiler] Improve snap usability (#35537)
josephsavona Jan 23, 2026
2c8725f
[compiler] snap fails if nothing compiled, unless @expectNothingCompi…
josephsavona Jan 23, 2026
a688a3d
worktree script improvements (#35603)
josephsavona Jan 23, 2026
006ae37
[compiler] Collapse CompilerError.{invariant,simpleInvariant} (#35614)
josephsavona Jan 23, 2026
c3b95b0
[compiler] Improve snap workflow for debugging errors (#35539)
josephsavona Jan 23, 2026
870cccd
[compiler] Summaries of the compiler passes to assist agents in devel…
josephsavona Jan 23, 2026
a056625
[repo] init claude config (#35617)
rickhanlonii Jan 24, 2026
2c30ebc
[DevTools] Update inspected element on component filter changes (#35599)
eps1lon Jan 26, 2026
3e319a9
[DevTools] Apply component filters on initial load (#35587)
eps1lon Jan 26, 2026
699abc8
[flags] make enableComponentPerformanceTrack static everywhere (#35629)
hoxyq Jan 26, 2026
1068027
[Flight] Add more DoS mitigations to Flight Reply, and harden Flight …
unstubbable Jan 26, 2026
8c34556
[Flight] Fix react-markup types for server references (#35634)
eps1lon Jan 26, 2026
e66ef64
[tests] remove withoutStack from assertConsole helpers (#35498)
rickhanlonii Jan 28, 2026
ff191f2
[Perf Tracks] Handle arrays with bigints in deep objects (#35648)
eps1lon Jan 28, 2026
87ae75b
[Perf Tracks] Use minus (`-`) instead of en dash for removed props (#…
eps1lon Jan 28, 2026
c0c3706
[Flight] Restore original function name in dev, server callstacks ser…
eps1lon Jan 28, 2026
d4d099f
[flags] make `enableTrustedTypesIntegration` dynamic (#35646)
hybrist Jan 28, 2026
875b064
Add text node support to FragmentInstance operations (#35630)
jackpope Jan 28, 2026
90b2dd4
Add additional fixtures for FragmentInstance text node support (#35631)
jackpope Jan 28, 2026
230772f
[tests] Fix ReactDOMAttribute-test (#35654)
rickhanlonii Jan 28, 2026
da64117
[Perf Tracks] Handle function names that aren't strings (#35659)
eps1lon Jan 29, 2026
64b4605
[compiler] fix source location for return statements (#35660)
nathanmarks Jan 30, 2026
ed4bd54
[Flight] Warn once if `eval` is disabled in dev environment (#35661)
eps1lon Feb 2, 2026
b8a6bfa
[compiler] Support optional/logical/etc within try/catch (#35606)
josephsavona Feb 2, 2026
dcab44d
[react-dom] Fire onReset when automatically resetting forms (#35176)
eps1lon Feb 2, 2026
7b023d7
[react-dom] Include `submitter` in `submit` events (#35590)
eps1lon Feb 2, 2026
d4a325d
[compiler] Add snap subcommand to minimize a test input (#35663)
josephsavona Feb 3, 2026
748ee74
Use modern JSX runtime in Flight fixture (#35677)
eps1lon Feb 3, 2026
5dad2b4
[DevTools] Fix commit index reset when switching profiler roots (#35672)
hoxyq Feb 3, 2026
b1533b0
[Flight] Allow overriding `request.timeOrigin` via `options.startTime…
lubieowoce Feb 3, 2026
3419420
[flags] Cleanup `enableActivity` (#35681)
eps1lon Feb 3, 2026
3e00319
[Flight] allow context providers from client modules (#35675)
rickhanlonii Feb 3, 2026
e32c126
[flags] Turn on `enableAsyncDebugInfo` everywhere (#35683)
eps1lon Feb 3, 2026
6853d7a
[Perf Tracks] Prevent crash when accessing `$$typeof` (#35679)
eps1lon Feb 3, 2026
cd0c487
[compiler] Fix `for` loops in try/catch (#35686)
josephsavona Feb 3, 2026
3ce1316
[compiler][snap] Fixes to relative path resolution; compile subcomman…
josephsavona Feb 4, 2026
c9ff56e
[DevTools] Disable Activity slices by default (#35685)
eps1lon Feb 4, 2026
f84ce5a
[flags] Turn on `enableViewTransition` in OSS `react-test-renderer` (…
eps1lon Feb 4, 2026
90c6d1b
[compiler][snap] More minimization improvements (#35689)
josephsavona Feb 4, 2026
22a20e1
[compiler] Fix setState-in-effect for React.useEffect namespace calls…
AntonChesnokov Feb 4, 2026
c137dd6
Fix exhaustive deps bug with flow type casting. (#35691)
jorge-cab Feb 4, 2026
cf993fb
[Flight] Fix stack overflow in `visitAsyncNode` with deep async chain…
unstubbable Feb 4, 2026
6913ea4
[flags] Add `enableParallelTransitions` (#35392)
rickhanlonii Feb 4, 2026
087a346
[test] add activity test with gSBU and enableViewTransition bugfix (#…
rickhanlonii Feb 4, 2026
3aaab92
[flags] add enableEffectEventMutationPhase (#35548)
rickhanlonii Feb 4, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
538 changes: 0 additions & 538 deletions .circleci/config.yml

This file was deleted.

46 changes: 46 additions & 0 deletions .claude/instructions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# React

**Scope**: All code EXCEPT `/compiler/` (compiler has its own instructions).

## Project Structure

| Directory | Purpose |
|-----------|---------|
| `/packages/` | Publishable packages (react, react-dom, scheduler, etc.) |
| `/scripts/` | Build, test, and development scripts |
| `/fixtures/` | Test applications for manual testing |
| `/compiler/` | React Compiler (separate sub-project) |

## Key Packages

| Package | Purpose |
|---------|---------|
| `react` | Core React library |
| `react-dom` | DOM renderer |
| `react-reconciler` | Core reconciliation algorithm |
| `scheduler` | Cooperative scheduling |
| `react-server-dom-*` | Server Components |
| `react-devtools-*` | Developer Tools |
| `react-refresh` | Fast Refresh runtime |

## Requirements

- **Node**: Must be installed. Stop and prompt user if missing.
- **Package Manager**: Use `yarn` only.

## Verification

**IMPORTANT**: Use `/verify` to validate all changes before committing.

## Commands

| Command | Purpose |
|----------|----------------------|
| `/fix` | Lint and format code |
| `/test` | Run tests |
| `/flow` | Type check with Flow |
| `/flags` | Check feature flags |

## Building

Builds are handled by CI. Do not run locally unless instructed.
44 changes: 44 additions & 0 deletions .claude/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
{
"hooks": {
"SessionStart": [
{
"hooks": [
{
"type": "command",
"command": "if [[ \"$PWD\" != */compiler* ]]; then cat .claude/instructions.md 2>/dev/null || true; fi"
}
]
}
]
},
"permissions": {
"allow": [
"Skill(extract-errors)",
"Skill(feature-flags)",
"Skill(fix)",
"Skill(flags)",
"Skill(flow)",
"Skill(test)",
"Skill(verify)",
"Bash(yarn test:*)",
"Bash(yarn test-www:*)",
"Bash(yarn test-classic:*)",
"Bash(yarn test-stable:*)",
"Bash(yarn linc:*)",
"Bash(yarn lint:*)",
"Bash(yarn flow:*)",
"Bash(yarn prettier:*)",
"Bash(yarn build:*)",
"Bash(yarn extract-errors:*)",
"Bash(yarn flags:*)"
],
"deny": [
"Bash(yarn download-build:*)",
"Bash(yarn download-build-for-head:*)",
"Bash(npm:*)",
"Bash(pnpm:*)",
"Bash(bun:*)",
"Bash(npx:*)"
]
}
}
12 changes: 12 additions & 0 deletions .claude/skills/extract-errors/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
name: extract-errors
description: Use when adding new error messages to React, or seeing "unknown error code" warnings.
---

# Extract Error Codes

## Instructions

1. Run `yarn extract-errors`
2. Report if any new errors need codes assigned
3. Check if error codes are up to date
79 changes: 79 additions & 0 deletions .claude/skills/feature-flags/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
---
name: feature-flags
description: Use when feature flag tests fail, flags need updating, understanding @gate pragmas, debugging channel-specific test failures, or adding new flags to React.
---

# React Feature Flags

## Flag Files

| File | Purpose |
|------|---------|
| `packages/shared/ReactFeatureFlags.js` | Default flags (canary), `__EXPERIMENTAL__` overrides |
| `packages/shared/forks/ReactFeatureFlags.www.js` | www channel, `__VARIANT__` overrides |
| `packages/shared/forks/ReactFeatureFlags.native-fb.js` | React Native, `__VARIANT__` overrides |
| `packages/shared/forks/ReactFeatureFlags.test-renderer.js` | Test renderer |

## Gating Tests

### `@gate` pragma (test-level)

Use when the feature is completely unavailable without the flag:

```javascript
// @gate enableViewTransition
it('supports view transitions', () => {
// This test only runs when enableViewTransition is true
// and is SKIPPED (not failed) when false
});
```

### `gate()` inline (assertion-level)

Use when the feature exists but behavior differs based on flag:

```javascript
it('renders component', async () => {
await act(() => root.render(<App />));

if (gate(flags => flags.enableNewBehavior)) {
expect(container.textContent).toBe('new output');
} else {
expect(container.textContent).toBe('legacy output');
}
});
```

## Adding a New Flag

1. Add to `ReactFeatureFlags.js` with default value
2. Add to each fork file (`*.www.js`, `*.native-fb.js`, etc.)
3. If it should vary in www/RN, set to `__VARIANT__` in the fork file
4. Gate tests with `@gate flagName` or inline `gate()`

## Checking Flag States

Use `/flags` to view states across channels. See the `flags` skill for full command options.

## `__VARIANT__` Flags (GKs)

Flags set to `__VARIANT__` simulate gatekeepers - tested twice (true and false):

```bash
/test www <pattern> # __VARIANT__ = true
/test www variant false <pattern> # __VARIANT__ = false
```

## Debugging Channel-Specific Failures

1. Run `/flags --diff <channel1> <channel2>` to compare values
2. Check `@gate` conditions - test may be gated to specific channels
3. Run `/test <channel> <pattern>` to isolate the failure
4. Verify flag exists in all fork files if newly added

## Common Mistakes

- **Forgetting both variants** - Always test `www` AND `www variant false` for `__VARIANT__` flags
- **Using @gate for behavior differences** - Use inline `gate()` if both paths should run
- **Missing fork files** - New flags must be added to ALL fork files, not just the main one
- **Wrong gate syntax** - It's `gate(flags => flags.name)`, not `gate('name')`
17 changes: 17 additions & 0 deletions .claude/skills/fix/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
---
name: fix
description: Use when you have lint errors, formatting issues, or before committing code to ensure it passes CI.
---

# Fix Lint and Formatting

## Instructions

1. Run `yarn prettier` to fix formatting
2. Run `yarn linc` to check for remaining lint issues
3. Report any remaining manual fixes needed

## Common Mistakes

- **Running prettier on wrong files** - `yarn prettier` only formats changed files
- **Ignoring linc errors** - These will fail CI, fix them before committing
39 changes: 39 additions & 0 deletions .claude/skills/flags/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
---
name: flags
description: Use when you need to check feature flag states, compare channels, or debug why a feature behaves differently across release channels.
---

# Feature Flags

Arguments:
- $ARGUMENTS: Optional flags

## Options

| Option | Purpose |
|--------|---------|
| (none) | Show all flags across all channels |
| `--diff <ch1> <ch2>` | Compare flags between channels |
| `--cleanup` | Show flags grouped by cleanup status |
| `--csv` | Output in CSV format |

## Channels

- `www`, `www-modern` - Meta internal
- `canary`, `next`, `experimental` - OSS channels
- `rn`, `rn-fb`, `rn-next` - React Native

## Legend

✅ enabled, ❌ disabled, 🧪 `__VARIANT__`, 📊 profiling-only

## Instructions

1. Run `yarn flags $ARGUMENTS`
2. Explain the output to the user
3. For --diff, highlight meaningful differences

## Common Mistakes

- **Forgetting `__VARIANT__` flags** - These are tested both ways in www; check both variants
- **Comparing wrong channels** - Use `--diff` to see exact differences
30 changes: 30 additions & 0 deletions .claude/skills/flow/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
---
name: flow
description: Use when you need to run Flow type checking, or when seeing Flow type errors in React code.
---

# Flow Type Checking

Arguments:
- $ARGUMENTS: Renderer to check (default: dom-node)

## Renderers

| Renderer | When to Use |
|----------|-------------|
| `dom-node` | Default, recommended for most changes |
| `dom-browser` | Browser-specific DOM code |
| `native` | React Native |
| `fabric` | React Native Fabric |

## Instructions

1. Run `yarn flow $ARGUMENTS` (use `dom-node` if no argument)
2. Report type errors with file locations
3. For comprehensive checking (slow), use `yarn flow-ci`

## Common Mistakes

- **Running without a renderer** - Always specify or use default `dom-node`
- **Ignoring suppressions** - Check if `$FlowFixMe` comments are masking real issues
- **Missing type imports** - Ensure types are imported from the correct package
46 changes: 46 additions & 0 deletions .claude/skills/test/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
---
name: test
description: Use when you need to run tests for React core. Supports source, www, stable, and experimental channels.
---

Run tests for the React codebase.

Arguments:
- $ARGUMENTS: Channel, flags, and test pattern

Usage Examples:
- `/test ReactFiberHooks` - Run with source channel (default)
- `/test experimental ReactFiberHooks` - Run with experimental channel
- `/test www ReactFiberHooks` - Run with www-modern channel
- `/test www variant false ReactFiberHooks` - Test __VARIANT__=false
- `/test stable ReactFiberHooks` - Run with stable channel
- `/test classic ReactFiberHooks` - Run with www-classic channel
- `/test watch ReactFiberHooks` - Run in watch mode (TDD)

Release Channels:
- `(default)` - Source/canary channel, uses ReactFeatureFlags.js defaults
- `experimental` - Source/experimental channel with __EXPERIMENTAL__ flags = true
- `www` - www-modern channel with __VARIANT__ flags = true
- `www variant false` - www channel with __VARIANT__ flags = false
- `stable` - What ships to npm
- `classic` - Legacy www-classic (rarely needed)

Instructions:
1. Parse channel from arguments (default: source)
2. Map to yarn command:
- (default) → `yarn test --silent --no-watchman <pattern>`
- experimental → `yarn test -r=experimental --silent --no-watchman <pattern>`
- stable → `yarn test-stable --silent --no-watchman <pattern>`
- classic → `yarn test-classic --silent --no-watchman <pattern>`
- www → `yarn test-www --silent --no-watchman <pattern>`
- www variant false → `yarn test-www --variant=false --silent --no-watchman <pattern>`
3. Report test results and any failures

Hard Rules:
1. **Use --silent to see failures** - This limits the test output to only failures.
2. **Use --no-watchman** - This is a common failure in sandboxing.

Common Mistakes:
- **Running without a pattern** - Runs ALL tests, very slow. Always specify a pattern.
- **Forgetting both www variants** - Test `www` AND `www variant false` for `__VARIANT__` flags.
- **Test skipped unexpectedly** - Check for `@gate` pragma; see `feature-flags` skill.
24 changes: 24 additions & 0 deletions .claude/skills/verify/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
---
name: verify
description: Use when you want to validate changes before committing, or when you need to check all React contribution requirements.
---

# Verification

Run all verification steps.

Arguments:
- $ARGUMENTS: Test pattern for the test step

## Instructions

Run these first in sequence:
1. Run `yarn prettier` - format code (stop if fails)
2. Run `yarn linc` - lint changed files (stop if fails)

Then run these with subagents in parallel:
1. Use `/flow` to type check (stop if fails)
2. Use `/test` to test changes in source (stop if fails)
3. Use `/test www` to test changes in www (stop if fails)

If all pass, show success summary. On failure, stop immediately and report the issue with suggested fixes.
15 changes: 9 additions & 6 deletions .codesandbox/ci.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
{
"packages": ["packages/react", "packages/react-dom", "packages/scheduler"],
"buildCommand": "build --type=NODE react/index,react-dom/index,react-dom/server,react-dom/test-utils,scheduler/index,scheduler/tracing",
"packages": ["packages/react", "packages/react-dom", "packages/react-server-dom-webpack", "packages/scheduler"],
"buildCommand": "download-build-in-codesandbox-ci",
"node": "20",
"publishDirectory": {
"react": "build/node_modules/react",
"react-dom": "build/node_modules/react-dom",
"scheduler": "build/node_modules/scheduler"
"react": "build/oss-experimental/react",
"react-dom": "build/oss-experimental/react-dom",
"react-server-dom-webpack": "build/oss-experimental/react-server-dom-webpack",
"scheduler": "build/oss-experimental/scheduler"
},
"sandboxes": ["new"]
"sandboxes": ["new"],
"silent": true
}
2 changes: 0 additions & 2 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,9 @@ indent_size = 2
indent_style = space
insert_final_newline = true
max_line_length = 80
trim_trailing_whitespace = true

[*.md]
max_line_length = 0
trim_trailing_whitespace = false

[COMMIT_EDITMSG]
max_line_length = 0
Loading