Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
779 commits
Select commit Hold shift + click to select a range
e3c9656
Ensure Performance Track are Clamped and Don't overlap (#34509)
sebmarkbage Sep 17, 2025
128abcf
[DevTools] Don't inline workers for extensions (#34508)
eps1lon Sep 17, 2025
84af908
Log Performance Track Entries for View Transitions (#34510)
sebmarkbage Sep 17, 2025
1bcdd22
[compiler] Don't show hint about ref-like naming if we infer another …
josephsavona Sep 18, 2025
5813211
[Compiler Bug] Complier mark ts instantiation expression as reorderab…
zekariasasaminew Sep 18, 2025
755ceba
[DevTools] Elevate Suspense rects to visualize hierarchy (#34455)
eps1lon Sep 18, 2025
03a96c7
[DevTools] Record Suspense node for roots in legacy renderers (#34516)
eps1lon Sep 18, 2025
ad578aa
Log Suspended startViewTransition Phase (#34511)
sebmarkbage Sep 18, 2025
c03a51d
Move `getDebugInfo` test util function to `internal-test-utils` (#34523)
unstubbable Sep 18, 2025
6eda534
[playground] bug fixes & UX improvements (#34499)
EugeneChoi4 Sep 18, 2025
01cad9e
[Flight] Support Async Modules in Turbopack Server References (#34531)
lubieowoce Sep 19, 2025
5e3cd53
Update MAINTAINERS (#34534)
jackpope Sep 19, 2025
d415fd3
[Flight] Handle Lazy in `renderDebugModel` (#34536)
unstubbable Sep 19, 2025
565eb78
Unwrap a reference to a Lazy value (#34535)
sebmarkbage Sep 19, 2025
115e3ec
[ci] Document that full git shas are required for manual prereleases …
unstubbable Sep 20, 2025
b204edd
Log Custom Reason for the Suspended Commit Track (#34522)
sebmarkbage Sep 20, 2025
b4fe1e6
Log the time until the Animation finishes as "Animating" (#34538)
sebmarkbage Sep 20, 2025
d91d28c
Use the JSX of the ViewTransition as the Stack Trace of "Animating" T…
sebmarkbage Sep 20, 2025
07e4974
[compiler] Don't leak global `__DEV__` type (#34551)
eps1lon Sep 22, 2025
cd85bb5
Include Fizz runtime diff in CI (#34525)
eps1lon Sep 22, 2025
1eca9a2
[playground] Add compiler playground tests (#34528)
EugeneChoi4 Sep 22, 2025
720bb13
[compiler] Export `PluginOptions` as a type that can be used in input…
eps1lon Sep 22, 2025
cad813a
Fix CI from stale merge (#34555)
eps1lon Sep 23, 2025
83c88ad
Handle fabric root level fragment with compareDocumentPosition (#34533)
jackpope Sep 23, 2025
012b371
[DevTools] Handle LegacyHidden Fibers like Offscreen Fibers. (#34564)
eps1lon Sep 23, 2025
24a2ba0
[DevTools] fix: dedupe file fetch requests and define a timeout (#34566)
hoxyq Sep 23, 2025
e02c173
[lint] Allow useEffectEvent in useLayoutEffect and useInsertionEffect…
jbrown215 Sep 23, 2025
2ee6147
[DevTools] Switch sourcemap-codec dependency (#34569)
hoxyq Sep 24, 2025
e0c421a
Include SyncLane in includesBlockingLane helper (#34543)
sebmarkbage Sep 24, 2025
05b61f8
Add Gesture Track in Performance Tab (#34546)
sebmarkbage Sep 24, 2025
e233218
Track "Animating" Entry for Gestures while the Gesture is Still On-go…
sebmarkbage Sep 24, 2025
2c6d92f
[compiler] Name anonymous functions from inlined useCallbacks (#34586)
josephsavona Sep 24, 2025
58d1791
Fix failing React DevTools regression tests (#34585)
eps1lon Sep 24, 2025
8ad773b
[compiler] Add support for commonjs (#34589)
josephsavona Sep 24, 2025
c44fbf4
[DevTools] Fix instrumentation error when reconciling promise-as-a-ch…
eps1lon Sep 24, 2025
ac2c1a5
[Flight] Ensure blocked debug info is handled properly (#34524)
unstubbable Sep 25, 2025
6eb5d67
[Fizz] Outline a Suspense Boundary if it has Suspensey CSS or Images …
sebmarkbage Sep 25, 2025
b0c1dc0
[Flight] Add approximate parent context for FormatContext (#34601)
sebmarkbage Sep 25, 2025
250f1b2
[playground] Fix useEffect on tabify (#34594)
EugeneChoi4 Sep 25, 2025
047715c
[Flight] Preload <img> and <link> using hints before they're rendered…
sebmarkbage Sep 26, 2025
1fd291d
[DevTools] Disable the tree list for now (#34606)
sebmarkbage Sep 26, 2025
6a51a9f
[DevTools] Track Server Environment Names of Each SuspenseNode (#34605)
sebmarkbage Sep 26, 2025
8d557a6
[DevTools] Only show Suspense rects matching "unique-suspenders-only"…
eps1lon Sep 26, 2025
8bb7241
Bump useEffectEvent to Canary (#34610)
jackpope Sep 26, 2025
df38ac9
Ensure `useEffectEvent` implementation is available in Canary (#34614)
eps1lon Sep 26, 2025
c552618
flags: make enableAsyncDebugInfo dynamic for www (#34430)
hoxyq Sep 26, 2025
8a24ef3
[DevTools] Show Transition indicator when "suspended by" rows are exp…
eps1lon Sep 26, 2025
2622487
[DevTools] Move Timeline to footer instead of header (#34617)
sebmarkbage Sep 26, 2025
e08f53b
Match `react-dom/static` test entrypoints and published entrypoints (…
eps1lon Sep 28, 2025
f78b234
[DevTools] Recursively compute the bounding rect of the roots (#34629)
sebmarkbage Sep 28, 2025
09d3cd8
[DevTools] Larger panel buttons and center (#34619)
sebmarkbage Sep 28, 2025
8309724
[Fiber][DevTools] Add scheduleRetry to DevTools Hook (#34635)
sebmarkbage Sep 28, 2025
a7d8ddd
[DevTools] Add Settings button on Suspense Tab (#34624)
sebmarkbage Sep 28, 2025
e2d19bf
[DevTools] Use pretty icon with icon for unique suspenders toggle (#3…
sebmarkbage Sep 28, 2025
7c0fff6
[DevTools] Add Play/Pause and Skip Controls to the Timeline (#34620)
sebmarkbage Sep 28, 2025
dce1f6c
[DevTools] Custom Scrubber Design (#34627)
sebmarkbage Sep 29, 2025
2bbb7be
[DevTools] Don't call Hooks conditionally (#34644)
eps1lon Sep 29, 2025
24e260d
Enable rules-of-hooks for DevTools (#34645)
eps1lon Sep 29, 2025
8674c3b
[DevTools] Enable Suspense tab for Canary releases (#34591)
eps1lon Sep 29, 2025
d15d7fd
[DevTools] Double click a Suspense Rect to jump to its position in th…
sebmarkbage Sep 29, 2025
319a786
[playground] ViewTransition on config expand (#34595)
EugeneChoi4 Sep 29, 2025
3580584
[playground] ViewTransition on tab switch (#34596)
EugeneChoi4 Sep 29, 2025
ecb2ce6
[Flight] Compute better I/O description for exotic types (#34650)
eps1lon Sep 29, 2025
ba2214e
Apply build script changes for RN to main (#34640)
jackpope Sep 30, 2025
e6f2a8a
Allow running `yarn lint` on subset of paths (#34646)
eps1lon Sep 30, 2025
ef88944
Rollout enablePersistedModeClonedFlag (#34520)
javache Sep 30, 2025
5dd163b
[DevTools] Auto-scroll when stepping through the timeline (#34653)
sebmarkbage Sep 30, 2025
554a373
[DevTools] Use the scrollWidth/Height for the root when the root is t…
sebmarkbage Sep 30, 2025
0d8ff4d
[DevTools] Show "Initial Paint" in the breadcrumbs when root is selec…
sebmarkbage Sep 30, 2025
d8a15c4
[Fiber] Reset remaining child lanes after propagating context inside …
sebmarkbage Sep 30, 2025
063394c
[Perf Tracks]: Always log effect that spawned blocking update (#34648)
hoxyq Sep 30, 2025
a55e98f
[playground] ViewTransition on internals toggle & tab expansion (#34597)
EugeneChoi4 Sep 30, 2025
92cfdc3
[lint] Enable custom hooks configuration for useEffectEvent calling r…
jbrown215 Sep 30, 2025
2a04bae
[lint] Use settings for additional hooks in exhaustive deps (#34637)
jbrown215 Sep 30, 2025
57b16e3
[lint] Remove experimental gating useEffectEvent rules (#34660)
jackpope Sep 30, 2025
cf88408
[eprh] Temporarily disable compiler rules (#34649)
poteto Sep 30, 2025
5667a41
Bump next prerelease version numbers (#34639)
eps1lon Oct 1, 2025
7bccdbd
Fix "Consecutive" Event Logs in Performance Track (#34659)
sebmarkbage Oct 1, 2025
2f0649a
[Fizz] Remove `nonce` option from resume-and-prerender APIs (#34664)
eps1lon Oct 1, 2025
1f460f3
[DevTools] Fix host instance highlighting (#34661)
eps1lon Oct 1, 2025
548235d
Enable React performance tracks in Canary (#34665)
eps1lon Oct 1, 2025
1bd1f01
Ship partial-prerendering APIs to Canary (#34633)
eps1lon Oct 1, 2025
bbc2d59
Traverse down an updated tree even if it has no passive effects in pr…
sebmarkbage Oct 1, 2025
67e24bc
Improve lint error messages for useEffectEvent (#34669)
jackpope Oct 1, 2025
aef8b1b
19.2 changelog (#34655)
eps1lon Oct 1, 2025
7f9d997
Land enableHiddenSubtreeInsertionEffectCleanup (#34372)
rickhanlonii Oct 1, 2025
8618113
Bump scheduler version (#34671)
eps1lon Oct 1, 2025
ae74234
[eprh] Allow compiler rules to be opted-in but not in the preset (#34…
poteto Oct 1, 2025
79ca5ae
Bump next prerelease version numbers (#34674)
eps1lon Oct 1, 2025
f7254ef
[playground] Persist open tabs on compiler error (#34673)
EugeneChoi4 Oct 2, 2025
d74f061
[Fiber] Clean up ViewTransition when it fails to start (#34676)
sebmarkbage Oct 2, 2025
a757cb7
Fix DevTools fixture crash due to usage of renamed APIs (#34682)
eps1lon Oct 2, 2025
bc828bf
[DevTools] Recommend React Performance tracks if supported when Timel…
eps1lon Oct 2, 2025
57d5a59
[compiler] enablePreserveMemo treats manual deps as non-nullable (#34…
josephsavona Oct 2, 2025
e4a27db
[DevTools] Defer Suspense tab to 19.3.0-canary (#34688)
eps1lon Oct 2, 2025
4a28227
[DevTools] Inspect the Initial Paint when inspecting a Root (#34454)
eps1lon Oct 2, 2025
70b52be
[compiler] `@enablePreserveExistingMemoizationGuarantees` on by defau…
josephsavona Oct 2, 2025
ced705d
[DevTools] Always include the root in the timeline and select it by d…
sebmarkbage Oct 2, 2025
2e68dc7
[DevTools] Give a distinct color to the root (#34690)
sebmarkbage Oct 2, 2025
c825f03
[DevTools] Hide State and Props in the Sidebar for Suspense (#34630)
sebmarkbage Oct 2, 2025
b56907d
[DevTools] Show Props as Read-only for Suspense/Activity but below (#…
sebmarkbage Oct 2, 2025
df3562d
Fix DevTools regression tests (#34696)
eps1lon Oct 2, 2025
7d9f876
[Fizz] Detatch boundary after flushing segment with boundary (#34694)
gnoff Oct 2, 2025
f89ed71
[DevTools] Track whether to auto select when new timeline entries com…
sebmarkbage Oct 2, 2025
6a8a8ef
[Flight] Add `<Activity>` (#34697)
eps1lon Oct 2, 2025
289f070
[playground] Improve DiffEditor scrollbar + view (#34691)
EugeneChoi4 Oct 2, 2025
5cc3d49
[eprh] Add compiler rules to recommended preset (#34675)
poteto Oct 2, 2025
056a586
[fixtures] Update eslint fixture lockfiles (#34699)
poteto Oct 2, 2025
26b177b
[eprh] Fix `recommended` config for flat config compatibility (#34700)
poteto Oct 2, 2025
19f65ff
[eprh] Remove NoUnusedOptOutDirectives (#34703)
poteto Oct 2, 2025
e866b1d
Add getRootNode to fabric fragment instance (#34544)
jackpope Oct 3, 2025
74dee8e
Add getClientRects to fabric fragment instance (#34545)
jackpope Oct 3, 2025
0eebd37
[playground] Config panel quality fixes (#34611)
EugeneChoi4 Oct 3, 2025
02bd445
[DevTools] Double clicking the root should jump to the beginning of t…
sebmarkbage Oct 3, 2025
85c427d
[compiler] Remove @babel/plugin-proposal-private-methods (#34715)
josephsavona Oct 3, 2025
f24d3bb
Update readme for eprh (#34714)
josephsavona Oct 3, 2025
71753ac
[eprh] Remove hermes-parser (#34719)
poteto Oct 3, 2025
d6eb735
[compiler] Update for Zod v3/v4 compatibility (#34717)
josephsavona Oct 3, 2025
614a945
React DevTools 7.0.0 (#34692)
eps1lon Oct 3, 2025
4fdf7cf
[ci] Fix runtime_prereleases (#34722)
poteto Oct 3, 2025
bc23561
[ci] Fix incorrect filtering logic for prereleases (#34725)
poteto Oct 3, 2025
d3f84a4
[DevTools] Bump version for extensions (#34723)
hoxyq Oct 3, 2025
a2329c1
[eprh] 6.1.1 changelog (#34726)
poteto Oct 3, 2025
0e79784
[DevTools] Use documentElement to override cmd+F (#34734)
sebmarkbage Oct 5, 2025
62ff1e6
Revert "[DevTools] Always include the root in the timeline and select…
hoxyq Oct 5, 2025
3b2a398
[DevTools] Bump version of react-devtools-core for react-devtools (#3…
hoxyq Oct 5, 2025
1be3ce9
[Fiber] Bail out of diffing wide objects and arrays (#34742)
eps1lon Oct 5, 2025
c786258
[eprh] Fix config type not being exported correctly (#34746)
poteto Oct 6, 2025
b65e6fc
Revert [eprh] Remove hermes-parser (#34747)
poteto Oct 6, 2025
6a8c7fb
Release `<ViewTransition />` to Canary (#34712)
eps1lon Oct 7, 2025
a4eb2df
Release Fragment refs to Canary (#34720)
eps1lon Oct 7, 2025
3025aa3
[Flight] Don't serialize toJSON in Debug path and omit wide arrays (#…
sebmarkbage Oct 7, 2025
1384ea8
[compiler] Update release script for latest tag (#34763)
poteto Oct 7, 2025
a664f5f
[compiler] Fix incorrect version name (#34764)
poteto Oct 7, 2025
69b4cb8
[ci] Allow dry run (#34765)
poteto Oct 7, 2025
5c15c1c
[ci] Dry run with debug mode (#34767)
poteto Oct 7, 2025
848e0e3
[eprh] Update plugin config to be compatible with flat and legacy (#3…
poteto Oct 7, 2025
9724e3e
[DevTools] Gate SuspenseTab (#34754)
hoxyq Oct 8, 2025
7568e71
[eprh] Prepare for 7.0.0 (#34757)
poteto Oct 8, 2025
3e1b34d
[compiler] Setup RecommendedLatest preset (#34782)
poteto Oct 8, 2025
4b3e662
[compiler] Add VoidUseMemo rule to RecommendedLatest (#34783)
poteto Oct 8, 2025
91e5c3d
fix(devtools): remove duplicated "Display density" field in General s…
Anatole-Godard Oct 9, 2025
06fcc8f
[playground] Fix syntax error from crashing the Compiler playground (…
ianduvall Oct 9, 2025
8454a32
devtools: fix ellipsis truncation for key values (#34796)
sophiebits Oct 10, 2025
d446597
[Flight] Fix preload `as` attribute for stylesheets (#34760)
unstubbable Oct 10, 2025
ead9218
[Flight] Avoid unnecessary indirection when serializing debug info (#…
unstubbable Oct 10, 2025
1d68bce
[Fiber] Don't unhide a node if a direct parent offscreen is still hid…
sebmarkbage Oct 12, 2025
93d4458
[Fiber] Ensure `useEffectEvent` reads latest values in `forwardRef` a…
eps1lon Oct 13, 2025
b467c6e
[DevTools] Explicitly say which id to scroll to and only once (#34823)
sebmarkbage Oct 13, 2025
34b1567
[DevTools] Ignore suspense boundaries, without visual representation,…
sebmarkbage Oct 13, 2025
e2ce64a
[DevTools] Don't show the root as being non-compliant (#34827)
sebmarkbage Oct 13, 2025
d7215b4
[DevTools] Preserve the original index when sorting suspended by (#34…
sebmarkbage Oct 13, 2025
026abea
[Flight] Respect displayName of Promise instances on the server (#34825)
sebmarkbage Oct 13, 2025
83ea655
[DevTools] Group consecutive suspended by rows by the same name (#34830)
sebmarkbage Oct 13, 2025
7b971c0
Current behavior for excluding Component render with unchanged props …
eps1lon Oct 13, 2025
47905a7
Fix/add missing else branch for renders with no props change (#34837)
hoxyq Oct 13, 2025
b9ec735
[Perf Tracks]: Clear potentially large measures (#34803)
hoxyq Oct 13, 2025
03a62b2
[Flight] Look for moved debugInfo when logging component performance …
sebmarkbage Oct 14, 2025
73507ec
[DevTools] Exclude Suspense boundaries in hidden Activity (#34756)
eps1lon Oct 14, 2025
19b7167
[Flight] Forward the current environment when forwarding I/O entries …
sebmarkbage Oct 14, 2025
56e8469
[Flight] Exclude RSC Stream if the stream resolves in a task (#34838)
sebmarkbage Oct 14, 2025
5f2b571
[DevTools] Filter out built-in stack frames (#34828)
sebmarkbage Oct 14, 2025
e798465
[playground] Allow accordion tabs to open on error (#34844)
EugeneChoi4 Oct 14, 2025
6cfc9c1
[DevTools] Don't measure fallbacks when suspended (#34850)
sebmarkbage Oct 15, 2025
751edd6
[DevTools] Measure text nodes (#34851)
sebmarkbage Oct 15, 2025
5747cad
[DevTools] Don't hide overflow rectangles (#34852)
sebmarkbage Oct 15, 2025
6773248
[DevTools] Track whether a boundary is currently suspended and make t…
sebmarkbage Oct 15, 2025
77b2f90
[DevTools] Attempt at a better "unique suspender" text (#34854)
sebmarkbage Oct 15, 2025
1873ad7
[DevTools] The bridge event types should only be defined in one direc…
sebmarkbage Oct 15, 2025
e096403
[compiler] Infer types for properties after holes in array patterns (…
josephsavona Oct 15, 2025
0fbb9b3
[DevTools] Don't highlight on timeline (#34861)
sebmarkbage Oct 15, 2025
903366b
[DevTools] Don't select on hover (#34860)
sebmarkbage Oct 15, 2025
85f415e
[compiler] Fix fbt for the ∞th time (#34865)
josephsavona Oct 15, 2025
7385d1f
[DevTools] Add inspection button to Suspense tab (#34867)
sebmarkbage Oct 16, 2025
7bd8716
[DevTools] Don't try to load anonymous or empty urls (#34869)
sebmarkbage Oct 16, 2025
4e00747
[DevTools] Don't pluralize if already plural (#34870)
sebmarkbage Oct 16, 2025
03ba0c7
[DevTools] Include some sub-pixel precision in rects (#34873)
sebmarkbage Oct 16, 2025
d8aa94b
Only capture stacks for up to 10 frames for Owner Stacks (#34864)
eps1lon Oct 16, 2025
dc1becd
[DevTools] Remove steps title from scrubber (#34878)
sebmarkbage Oct 16, 2025
93f8593
[DevTools] Adjust the rects size by one pixel smaller (#34876)
sebmarkbage Oct 16, 2025
ed1351c
[compiler] improve zod v3 backwards compat (#34877)
henryqdineen Oct 16, 2025
5418d8b
Fix changelog link (#34879)
rickhanlonii Oct 16, 2025
2381ecc
[ESLint] Disallow passing effect event down when inlined as a prop (#…
jf-eirinha Oct 16, 2025
0e32da7
Add MIT license header to feature flag utility script (#34833)
pet210702 Oct 16, 2025
7f5ea1b
[compiler] More useMemo validation (#34868)
josephsavona Oct 16, 2025
1324e1b
[compiler] Cleanup and enable validateNoVoidUseMemo (#34882)
josephsavona Oct 16, 2025
adbc32d
[compiler] More fbt compatibility (#34887)
josephsavona Oct 17, 2025
c35f6a3
[compiler] Optimize props spread for common cases (#34900)
josephsavona Oct 17, 2025
dc485c7
[Flight] Fix detached `ArrayBuffer` error when streaming typed arrays…
unstubbable Oct 17, 2025
ef88c58
[DevTools] Tweak the rects design and create multi-environment color …
sebmarkbage Oct 17, 2025
724e7bf
[DevTools] Repeat the "name" if there's no short description in group…
sebmarkbage Oct 17, 2025
f970d5f
[DevTools] Highlight the rect when the corresponding timeline bean is…
sebmarkbage Oct 17, 2025
423c44b
[DevTools] Don't highlight the root rect if no roots has unique suspe…
sebmarkbage Oct 17, 2025
a083344
[DevTools] Compute environment names for the timeline (#34892)
sebmarkbage Oct 17, 2025
3a66917
[DevTools] Assign a different color and label based on environment (#…
sebmarkbage Oct 17, 2025
40c7a7f
[DevTools] Use same Suspense naming heuristics when reconnecting (#34…
eps1lon Oct 18, 2025
ec7d9a7
Resolve the .default export of a React.lazy as the canonical value (#…
sebmarkbage Oct 19, 2025
bf11d2f
[DevTools] Infer name from stack if it's the generic "lazy" name (#34…
sebmarkbage Oct 19, 2025
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
452553a
Fix Profiler crash: ensure .map is called on array in SidebarEventInf…
Abhra0404 Nov 6, 2025
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
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .codesandbox/ci.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"packages": ["packages/react", "packages/react-dom", "packages/react-server-dom-webpack", "packages/scheduler"],
"buildCommand": "download-build-in-codesandbox-ci",
"node": "18",
"node": "20",
"publishDirectory": {
"react": "build/oss-experimental/react",
"react-dom": "build/oss-experimental/react-dom",
Expand Down
3 changes: 3 additions & 0 deletions .eslintignore
Original file line number Diff line number Diff line change
Expand Up @@ -28,3 +28,6 @@ packages/react-devtools-shared/src/hooks/__tests__/__source__/__untransformed__/
packages/react-devtools-shell/dist
packages/react-devtools-timeline/dist
packages/react-devtools-timeline/static

# Imported third-party Flow types
flow-typed/
31 changes: 24 additions & 7 deletions .eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -468,13 +468,14 @@ module.exports = {
files: ['packages/react-server-dom-webpack/**/*.js'],
globals: {
__webpack_chunk_load__: 'readonly',
__webpack_get_script_filename__: 'readonly',
__webpack_require__: 'readonly',
},
},
{
files: ['packages/react-server-dom-turbopack/**/*.js'],
globals: {
__turbopack_load__: 'readonly',
__turbopack_load_by_url__: 'readonly',
__turbopack_require__: 'readonly',
},
},
Expand All @@ -496,6 +497,7 @@ module.exports = {
'packages/react-devtools-shared/src/devtools/views/**/*.js',
'packages/react-devtools-shared/src/hook.js',
'packages/react-devtools-shared/src/backend/console.js',
'packages/react-devtools-shared/src/backend/fiber/renderer.js',
'packages/react-devtools-shared/src/backend/shared/DevToolsComponentStackFrame.js',
'packages/react-devtools-shared/src/frontend/utils/withPermissionsCheck.js',
],
Expand All @@ -504,6 +506,7 @@ module.exports = {
__IS_FIREFOX__: 'readonly',
__IS_EDGE__: 'readonly',
__IS_NATIVE__: 'readonly',
__IS_INTERNAL_MCP_BUILD__: 'readonly',
__IS_INTERNAL_VERSION__: 'readonly',
chrome: 'readonly',
},
Expand All @@ -514,6 +517,14 @@ module.exports = {
__IS_INTERNAL_VERSION__: 'readonly',
},
},
{
files: ['packages/react-devtools-*/**/*.js'],
excludedFiles: '**/__tests__/**/*.js',
plugins: ['eslint-plugin-react-hooks-published'],
rules: {
'react-hooks-published/rules-of-hooks': ERROR,
},
},
{
files: ['packages/eslint-plugin-react-hooks/src/**/*'],
extends: ['plugin:@typescript-eslint/recommended'],
Expand Down Expand Up @@ -544,13 +555,10 @@ module.exports = {
},

globals: {
$Call: 'readonly',
$ElementType: 'readonly',
$Flow$ModuleRef: 'readonly',
$FlowFixMe: 'readonly',
$Keys: 'readonly',
$NonMaybeType: 'readonly',
$PropertyType: 'readonly',
$ReadOnly: 'readonly',
$ReadOnlyArray: 'readonly',
$ArrayBufferView: 'readonly',
Expand All @@ -559,11 +567,13 @@ module.exports = {
ConsoleTask: 'readonly', // TOOD: Figure out what the official name of this will be.
ReturnType: 'readonly',
AnimationFrameID: 'readonly',
WeakRef: 'readonly',
// For Flow type annotation. Only `BigInt` is valid at runtime.
bigint: 'readonly',
BigInt: 'readonly',
BigInt64Array: 'readonly',
BigUint64Array: 'readonly',
CacheType: 'readonly',
Class: 'readonly',
ClientRect: 'readonly',
CopyInspectedElementPath: 'readonly',
Expand All @@ -575,15 +585,19 @@ module.exports = {
$AsyncIterator: 'readonly',
Iterator: 'readonly',
AsyncIterator: 'readonly',
IntervalID: 'readonly',
IteratorResult: 'readonly',
JSONValue: 'readonly',
JSResourceReference: 'readonly',
mixin$Animatable: 'readonly',
MouseEventHandler: 'readonly',
NavigateEvent: 'readonly',
PerformanceMeasureOptions: 'readonly',
PropagationPhases: 'readonly',
PropertyDescriptor: 'readonly',
React$AbstractComponent: 'readonly',
PropertyDescriptorMap: 'readonly',
Proxy$traps: 'readonly',
React$Component: 'readonly',
React$ComponentType: 'readonly',
React$Config: 'readonly',
React$Context: 'readonly',
React$Element: 'readonly',
Expand All @@ -604,19 +618,21 @@ module.exports = {
symbol: 'readonly',
SyntheticEvent: 'readonly',
SyntheticMouseEvent: 'readonly',
SyntheticPointerEvent: 'readonly',
Thenable: 'readonly',
TimeoutID: 'readonly',
WheelEventHandler: 'readonly',
FinalizationRegistry: 'readonly',
Exclude: 'readonly',
Omit: 'readonly',
Keyframe: 'readonly',
PropertyIndexedKeyframes: 'readonly',
KeyframeAnimationOptions: 'readonly',
GetAnimationsOptions: 'readonly',
Animatable: 'readonly',
ScrollTimeline: 'readonly',
EventListenerOptionsOrUseCapture: 'readonly',
FocusOptions: 'readonly',
OptionalEffectTiming: 'readonly',

spyOnDev: 'readonly',
spyOnDevAndProd: 'readonly',
Expand All @@ -634,5 +650,6 @@ module.exports = {
AsyncLocalStorage: 'readonly',
async_hooks: 'readonly',
globalThis: 'readonly',
navigation: 'readonly',
},
};
2 changes: 2 additions & 0 deletions .github/workflows/compiler_discord_notify.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,12 @@ permissions: {}

jobs:
check_access:
if: ${{ github.event.pull_request.draft == false }}
runs-on: ubuntu-latest
outputs:
is_member_or_collaborator: ${{ steps.check_is_member_or_collaborator.outputs.is_member_or_collaborator }}
steps:
- run: echo ${{ github.event.pull_request.author_association }}
- name: Check is member or collaborator
id: check_is_member_or_collaborator
if: ${{ github.event.pull_request.author_association == 'MEMBER' || github.event.pull_request.author_association == 'COLLABORATOR' }}
Expand Down
2 changes: 0 additions & 2 deletions .github/workflows/compiler_playground.yml
Original file line number Diff line number Diff line change
Expand Up @@ -57,8 +57,6 @@ jobs:
key: playwright-browsers-v6-${{ runner.arch }}-${{ runner.os }}-${{ steps.playwright_version.outputs.playwright_version }}
- run: npx playwright install --with-deps chromium
if: steps.cache_playwright_browsers.outputs.cache-hit != 'true'
- run: npx playwright install-deps
if: steps.cache_playwright_browsers.outputs.cache-hit == 'true'
- run: CI=true yarn test
- run: ls -R test-results
if: '!cancelled()'
Expand Down
11 changes: 10 additions & 1 deletion .github/workflows/compiler_prereleases.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,9 @@ on:
tag_version:
required: false
type: string
dry_run:
required: false
type: boolean
secrets:
NPM_TOKEN:
required: true
Expand Down Expand Up @@ -55,7 +58,13 @@ jobs:
key: compiler-node_modules-v6-${{ runner.arch }}-${{ runner.os }}-${{ hashFiles('compiler/yarn.lock') }}
- run: yarn install --frozen-lockfile
if: steps.node_modules.outputs.cache-hit != 'true'
- name: Publish packages to npm
- if: inputs.dry_run == true
name: Publish packages to npm (dry run)
run: |
cp ./scripts/release/ci-npmrc ~/.npmrc
scripts/release/publish.js --frfr --debug --ci --versionName=${{ inputs.version_name }} --tag=${{ inputs.dist_tag }} ${{ inputs.tag_version && format('--tagVersion={0}', inputs.tag_version) || '' }}
- if: inputs.dry_run != true
name: Publish packages to npm
run: |
cp ./scripts/release/ci-npmrc ~/.npmrc
scripts/release/publish.js --frfr --ci --versionName=${{ inputs.version_name }} --tag=${{ inputs.dist_tag }} ${{ inputs.tag_version && format('--tagVersion={0}', inputs.tag_version) || '' }}
4 changes: 4 additions & 0 deletions .github/workflows/compiler_prereleases_manual.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,9 @@ on:
tag_version:
required: false
type: string
dry_run:
required: false
type: boolean

permissions: {}

Expand All @@ -33,5 +36,6 @@ jobs:
dist_tag: ${{ inputs.dist_tag }}
version_name: ${{ inputs.version_name }}
tag_version: ${{ inputs.tag_version }}
dry_run: ${{ inputs.dry_run }}
secrets:
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
1 change: 1 addition & 0 deletions .github/workflows/compiler_prereleases_nightly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,5 +19,6 @@ jobs:
release_channel: experimental
dist_tag: experimental
version_name: '0.0.0'
dry_run: false
secrets:
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
49 changes: 49 additions & 0 deletions .github/workflows/devtools_discord_notify.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
name: (DevTools) Discord Notify

on:
pull_request_target:
types: [opened, ready_for_review]
paths:
- packages/react-devtools**
- .github/workflows/devtools_**.yml

permissions: {}

jobs:
check_access:
if: ${{ github.event.pull_request.draft == false }}
runs-on: ubuntu-latest
outputs:
is_member_or_collaborator: ${{ steps.check_is_member_or_collaborator.outputs.is_member_or_collaborator }}
steps:
- run: echo ${{ github.event.pull_request.author_association }}
- name: Check is member or collaborator
id: check_is_member_or_collaborator
if: ${{ github.event.pull_request.author_association == 'MEMBER' || github.event.pull_request.author_association == 'COLLABORATOR' }}
run: echo "is_member_or_collaborator=true" >> "$GITHUB_OUTPUT"

check_maintainer:
if: ${{ needs.check_access.outputs.is_member_or_collaborator == 'true' || needs.check_access.outputs.is_member_or_collaborator == true }}
needs: [check_access]
uses: facebook/react/.github/workflows/shared_check_maintainer.yml@main
permissions:
# Used by check_maintainer
contents: read
with:
actor: ${{ github.event.pull_request.user.login }}

notify:
if: ${{ needs.check_maintainer.outputs.is_core_team == 'true' }}
needs: check_maintainer
runs-on: ubuntu-latest
steps:
- name: Discord Webhook Action
uses: tsickert/discord-webhook@86dc739f3f165f16dadc5666051c367efa1692f4
with:
webhook-url: ${{ secrets.DEVTOOLS_DISCORD_WEBHOOK_URL }}
embed-author-name: ${{ github.event.pull_request.user.login }}
embed-author-url: ${{ github.event.pull_request.user.html_url }}
embed-author-icon-url: ${{ github.event.pull_request.user.avatar_url }}
embed-title: '#${{ github.event.number }} (+${{github.event.pull_request.additions}} -${{github.event.pull_request.deletions}}): ${{ github.event.pull_request.title }}'
embed-description: ${{ github.event.pull_request.body }}
embed-url: ${{ github.event.pull_request.html_url }}
4 changes: 2 additions & 2 deletions .github/workflows/devtools_regression_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ jobs:
uses: actions/upload-artifact@v4
with:
name: react-devtools
path: build/devtools.tgz
path: build/devtools
if-no-files-found: error
# Simplifies getting the extension for local testing
- name: Archive chrome extension
Expand Down Expand Up @@ -201,5 +201,5 @@ jobs:
- uses: actions/upload-artifact@v4
with:
name: screenshots
path: ./tmp/screenshots
path: ./tmp/playwright-artifacts
if-no-files-found: warn
Loading
Loading