Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
716 commits
Select commit Hold shift + click to select a range
de5a1b2
[compiler][playground] (3/N) Config override panel (#34371)
EugeneChoi4 Sep 5, 2025
c4e2508
[react-devtools-shared] Fix URL construction when base URL is invalid…
KimCookieYa Sep 6, 2025
60d9b97
[compiler] Derive ErrorSeverity from ErrorCategory (#34401)
poteto Sep 6, 2025
1fef581
[compiler] Deprecate CompilerErrorDetail (#34402)
poteto Sep 6, 2025
474f258
[compiler] Migrate CompilerError.invariant to new CompilerDiagnostic …
poteto Sep 6, 2025
80d7aa1
[compiler] Fix error description inconsistency (#34404)
poteto Sep 6, 2025
7899252
[compiler] Filter out disabled errors from being reported (#34409)
poteto Sep 6, 2025
f5e96b9
[compiler] Add missing source locations to statements, expressions (#…
josephsavona Sep 6, 2025
3fb190f
[DevTools] Avoid renders of stale Suspense store (#34396)
eps1lon Sep 8, 2025
294c33f
[Flight] Always initialize a debug info array for each Chunk (#34419)
sebmarkbage Sep 8, 2025
3f2a42a
[compiler] Handle empty list of eslint suppression rules (#34323)
josephsavona Sep 8, 2025
d4374b3
[compiler] [playground] Show internals toggle (#34399)
EugeneChoi4 Sep 8, 2025
3d9d22c
[playground] Fix CompilerError mismatch (#34420)
EugeneChoi4 Sep 8, 2025
8943025
[DevTools] Fix handling of host roots on mount (#34400)
eps1lon Sep 8, 2025
b2cff47
[DevTools] feat: propagate fetchFileWithCaching from initialization o…
hoxyq Sep 9, 2025
6b70072
[DevTools] Finalize heuristic for naming unnamed `<Suspense>` (#34428)
eps1lon Sep 9, 2025
a9410fb
[compiler] Option to infer names for anonymous functions (#34410)
josephsavona Sep 9, 2025
eec50b1
[Flight] Only use debug component info for parent stacks (#34431)
eps1lon Sep 9, 2025
1836b46
[compiler] Have react-compiler eslint plugin return a RuleModule (#34…
jorge-cab Sep 9, 2025
eda778b
[compiler] Fix false positive memo validation (alternative) (#34319)
mofeiZ Sep 9, 2025
665de2e
[compiler] Improve name hints for outlined functions (#34434)
josephsavona Sep 9, 2025
969a979
[Flight] Track I/O Entry for the RSC Stream itself (#34425)
sebmarkbage Sep 9, 2025
acada30
[compiler] Fix false positive hook return mutation error (#34424)
josephsavona Sep 9, 2025
3bf8ab4
Add missing Activity export to development mode (#34439)
sebmarkbage Sep 10, 2025
a34c5df
Ignore generic InvalidStateError in View Transitions (#34450)
sebmarkbage Sep 10, 2025
288d428
[DevTools] Only show the highest end/byteSize I/O of RSC streams (#34…
sebmarkbage Sep 10, 2025
886b3d3
[DevTools] Show suspended by subtree from Activity to next Suspense b…
sebmarkbage Sep 10, 2025
e2ba45b
[DevTools] fix: keep search query in a local sync state (#34423)
hoxyq Sep 10, 2025
835b009
[compiler] Allow setStates in use{Layout,Insertion}Effect where the s…
poteto Sep 10, 2025
bd9e6e0
[compiler] More flexible/helpful lazy ref initialization (#34449)
josephsavona Sep 10, 2025
8c15014
[DevTools] Preserve Suspense lineage when clicking through breadcrumb…
eps1lon Sep 11, 2025
b1c519f
[DevTools] Only show boundaries with unique suspenders by default in …
eps1lon Sep 11, 2025
fe84397
[compiler][playground] (4/N) Config override panel (#34436)
EugeneChoi4 Sep 11, 2025
f3a8036
[Flight] Ensure async info owners are outlined properly (#34465)
unstubbable Sep 11, 2025
67415c8
[DevTools] Stop using native `title` for buttons/icons (#34379)
eps1lon Sep 11, 2025
7fc888d
[DevTools] Stop recording reorders in disconnected subtrees (#34464)
eps1lon Sep 11, 2025
a9ad64c
[DevTools] Stop mounting empty roots (#34467)
eps1lon Sep 11, 2025
0c813c5
[Tracks]: display method name and component name for updates in DEV (…
hoxyq Sep 12, 2025
0e10ee9
[Reconciler] Set ProfileMode for Host Root Fiber by default in dev (#…
hoxyq Sep 12, 2025
1a27af3
[playground] Update the playground UI (#34468)
EugeneChoi4 Sep 12, 2025
20e5431
[Flight][Fiber] Encode owner in the error payload in dev and use it a…
sebmarkbage Sep 12, 2025
93d7aa6
[Fiber] Add context for the display: inline warning (#34461)
sebmarkbage Sep 12, 2025
68f00c9
Release Activity in Canary (#34374)
rickhanlonii Sep 12, 2025
8a8e9a7
move devtools notify to different channel (#34476)
rickhanlonii Sep 12, 2025
5502d85
[DevTools] Unmount fallbacks in the context of the parent Suspense (#…
eps1lon Sep 13, 2025
47664de
Allow running `download_devtools_regression_build.js` on a clean repo…
eps1lon Sep 13, 2025
3fa927b
Fix some DevTools regression test actions and assertions (#34459)
eps1lon Sep 15, 2025
67a44bc
Playground applied configs (#34474)
EugeneChoi4 Sep 15, 2025
92d7ad5
[DevTools] fix: validate url in file fetcher bridging calls (#34498)
hoxyq Sep 15, 2025
e12b0bd
[compiler]: add `@tanstack/react-virtual` to known incompatible libra…
stipsan Sep 15, 2025
e3f1918
[Fiber] Adjust the suspensey image/css timeout based on already elaps…
sebmarkbage Sep 15, 2025
ae22247
[Fiber] Don't wait on Suspensey Images if we guess that we don't load…
sebmarkbage Sep 15, 2025
5d49b2b
[Fiber] Track SuspendedState on stack instead of global (#34486)
sebmarkbage Sep 15, 2025
348a4e2
[Fiber] Wait for suspensey image in the viewport before starting an a…
sebmarkbage Sep 15, 2025
5e0c951
Add forwards fill mode to animations in view transition fixture (#34502)
sebmarkbage Sep 16, 2025
851bad0
[DevTools] Ignore repeated removals of the same IO (#34495)
eps1lon Sep 16, 2025
941cd80
[DevTools] Don't keep stale root instances we never mounted around (#…
eps1lon Sep 16, 2025
a51f925
[DevTools] Only check if we previously removed IO if its removal fail…
eps1lon Sep 16, 2025
7899729
[compiler] Option to treat "set-" prefixed callees as setState functi…
josephsavona Sep 16, 2025
16df13b
[DevTools] Minify backend (#34507)
eps1lon Sep 17, 2025
6a4c8f5
[DevTools] Store Webpack stats when building extensions (#34514)
eps1lon Sep 17, 2025
81d6692
[DevTools] Stop polyfilling `Buffer` (#34512)
eps1lon Sep 17, 2025
27b4076
[DevTools] Use a single Webpack config for the extensions (#34513)
eps1lon Sep 17, 2025
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
2a18d35
[compiler] Cleanup and enable validateNoVoidUseMemo
josephsavona Oct 16, 2025
55bf051
[compiler][wip] Fix for ValidatePreserveMemo edge case w multiple ret…
josephsavona Oct 16, 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