Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1160 commits
Select commit Hold shift + click to select a range
98286cf
[DevTools] Send suspense nodes to frontend store (#34070)
eps1lon Aug 10, 2025
594fb5e
[DevTools] Always skip 1 frame (#34167)
sebmarkbage Aug 11, 2025
72965f3
[DevTools] Restore reconciling Suspense stack after fallback was reco…
eps1lon Aug 11, 2025
59ef3c4
[DevTools] Allow Introspection of React Elements and React.lazy (#34129)
sebmarkbage Aug 11, 2025
7a934a1
[DevTools] Show Owner Stacks in "rendered by" View (#34130)
sebmarkbage Aug 11, 2025
ab5238d
[DevTools] Show name prop of Suspense / Activity in the Components Tr…
sebmarkbage Aug 11, 2025
6445b31
[Fiber] Add additional debugInfo to React.lazy constructors in DEV (#…
sebmarkbage Aug 11, 2025
34ce3ac
[DevTools] Pick up suspended by info from React.lazy in type position…
sebmarkbage Aug 11, 2025
53d0794
[Fiber] Assign implicit debug info to used thenables (#34146)
sebmarkbage Aug 11, 2025
62a634b
[DebugTools] Use thenables from the _debugThenableState if available …
sebmarkbage Aug 11, 2025
ca292f7
[DevTools] Don't show "awaited by" if there's nothing to show (#34163)
sebmarkbage Aug 11, 2025
d587434
[DevTools] Pick up suspended by info from use() (#34148)
sebmarkbage Aug 11, 2025
f1e70b5
[easy] remove leftover reference to disableDefaultPropsExceptForClass…
kassens Aug 11, 2025
2c9a42d
[DevTools] If the await doesn't have a stack use the stack from use()…
sebmarkbage Aug 11, 2025
3c67bbe
[DevTools] Track suspensey CSS on "suspended by" (#34166)
sebmarkbage Aug 11, 2025
ac7820a
Create fresh Offscreen instance when replaying (#34127)
eps1lon Aug 11, 2025
de06211
[DevTools] Send Suspense rects to frontend (#34170)
eps1lon Aug 12, 2025
1dc3bde
Remove unused arguments from ReactElement (#34174)
kassens Aug 12, 2025
47fd2f5
[DevTools] Fix index (#34187)
sebmarkbage Aug 12, 2025
0422a00
[DevTools] Fix missing key warning (#34186)
eps1lon Aug 12, 2025
9baecbf
[Fizz] Avoid hanging when suspending after aborting while rendering (…
gnoff Aug 12, 2025
f1222f7
[Fiber] Don't bind retry listener if it's in the cache (#34183)
sebmarkbage Aug 13, 2025
14c50e3
[DevTools] Use Visually Lighter Skeletons (#34185)
sebmarkbage Aug 13, 2025
0032b2a
[Flight] Log error if prod elements are rendered (#34189)
eps1lon Aug 13, 2025
9433fe3
Fail tests if unasserted console calls contain `undefined` (#34191)
eps1lon Aug 13, 2025
db06f6b
[DevTools] Track virtual debug info from suspensey images (#34181)
sebmarkbage Aug 13, 2025
534bed5
Use `yarn run` in Flight fixture (#34197)
eps1lon Aug 13, 2025
379a083
Include stack of cause in React instrumentation errors (#34198)
eps1lon Aug 13, 2025
02a8811
[SuspenseTab] Scuffed version of Suspense rects (#34188)
eps1lon Aug 14, 2025
a96a0f3
Fix fragmentInstance#compareDocumentPosition nesting and portal cases…
jackpope Aug 15, 2025
2ba7b07
[DevTools] Compute a min and max range for the currently selected sus…
sebmarkbage Aug 15, 2025
2d98b45
[DevTools] Fix Suspense boundaries always being marked as not suspend…
eps1lon Aug 15, 2025
8dba931
[DevTools] Handle fallback unmount in Suspense update path (#34199)
eps1lon Aug 15, 2025
45a6532
Add compareDocumentPosition to Fabric FragmentInstance (#34103)
jackpope Aug 15, 2025
724b324
[compiler] Add hint to name variables with "Ref" suffix (#34125)
josephsavona Aug 15, 2025
6ffcac8
[compiler] Add support for diagnostic hints (#34126)
josephsavona Aug 15, 2025
eaf6adb
[compiler][wip] Remove old mutation/aliasing implementation (#34028)
josephsavona Aug 15, 2025
5063b32
[compiler] Remove now-unused FunctionEffect type (#34029)
josephsavona Aug 15, 2025
431bb0b
[DevTools] Mark Unknown Reasons for Suspending with a Note (#34200)
sebmarkbage Aug 15, 2025
2cb8edb
[DevTools] Handle dehydrated Suspense boundaries (#34196)
eps1lon Aug 16, 2025
546bac7
[DevTools] Always attempt to mount dehydrated roots (#34209)
eps1lon Aug 16, 2025
7a36dfe
[Fizz] Delay retrying hydration until after an animation frame (#34220)
sebmarkbage Aug 16, 2025
42b1b33
[DevTools] Add byteSize field to ReactIOInfo and show this in the too…
sebmarkbage Aug 17, 2025
b58a8e3
[DevTools] Handle mount of disconnected Suspense boundaries (#34208)
eps1lon Aug 18, 2025
01ed0e9
[DevTools] Avoid uncached Promise when symbolicating sources in envir…
eps1lon Aug 18, 2025
87a45ae
[eslint-plugin-react-hooks][RulesOfHooks] handle React.useEffect in a…
Ayc0 Aug 18, 2025
0c89b16
[Flight] Add DebugInfo for Bundler Chunks (#34226)
sebmarkbage Aug 18, 2025
f508edc
[compiler] Stop publishing eslint-plugin-react-compiler to npm (#34228)
poteto Aug 18, 2025
0bdb920
[Fizz] If we haven't painted yet, wait to reveal everything until nex…
sebmarkbage Aug 19, 2025
ae5c2f8
[DevTools] Handle reorders when resuspending while fallback contains …
eps1lon Aug 19, 2025
3e20dc8
[DevTools] Fix crash when inspecting Components suspended on data awa…
eps1lon Aug 20, 2025
0bc71e6
[Flight] Add `debugChannel` option to Edge and Node clients (#34236)
unstubbable Aug 20, 2025
03fda05
[DevTools] Fix display of stack frames with anonymous sources (#34237)
eps1lon Aug 20, 2025
c2ac8b4
[ci] Fix permissions for direct sync branch PRs workflow (#34241)
poteto Aug 20, 2025
83c7379
Add flow suppression for Constant Condition rollout (#34243)
kassens Aug 20, 2025
243a56b
Update Flow to 0.246 (#34244)
kassens Aug 21, 2025
5f06c3d
Update Flow to 0.247 (#34245)
kassens Aug 21, 2025
873f711
Update Flow to 0.248 (#34248)
kassens Aug 21, 2025
3770ff3
Update Flow to 0.256 (#34252)
kassens Aug 21, 2025
8120753
[DevTools] fix: always send a response to fetch-file request in the e…
hoxyq Aug 21, 2025
ec5dd0a
Update Flow to 0.257 (#34253)
kassens Aug 21, 2025
d5586e2
Update Flow to 0.258 (#34254)
kassens Aug 21, 2025
d73b6f1
Update Flow to 0.261 (#34255)
kassens Aug 21, 2025
253abc7
[Flight] Transfer Debug Info from a synchronous Reference to another …
sebmarkbage Aug 21, 2025
7d29ecb
[compiler] Aggregate error reporting, separate eslint rules (#34176)
josephsavona Aug 21, 2025
a85ec04
[DevTools] Ignore List Stack Traces (#34210)
sebmarkbage Aug 21, 2025
11d7bcf
[DevTools] Use source maps to infer name asynchronously (#34212)
sebmarkbage Aug 21, 2025
698bb4d
Add support for ARIA 1.3 attributes (#34264)
Abdul-Omira Aug 22, 2025
6de32a5
Update Flow to 0.263 (#34269)
kassens Aug 22, 2025
425ba0a
[compiler] Script to produce markdown of lint rule docs (#34260)
josephsavona Aug 22, 2025
d260b0d
Update Flow to 0.265 (#34270)
kassens Aug 22, 2025
05addfc
Update Flow to 0.266 (#34271)
kassens Aug 22, 2025
06cfa99
Update Flow to 0.267 (#34272)
kassens Aug 22, 2025
e67e3be
Update Flow to 0.272 (#34273)
kassens Aug 22, 2025
4049cfe
Update Flow to 0.273 (#34274)
kassens Aug 22, 2025
090777d
Update Flow to 0.274 (#34275)
kassens Aug 22, 2025
9eede45
Stop treating all Node.js builtins implicitly as externals (#34249)
eps1lon Aug 25, 2025
67e743f
[compiler] Fix missing dependency in eslint-plugin-react-hooks (#34287)
eps1lon Aug 25, 2025
e42f3d3
[DevTools] Include `name` prop when highlighting host instances (#34258)
eps1lon Aug 25, 2025
df10309
Update Flow to 0.279 (#34277)
kassens Aug 25, 2025
75dc002
[DevTools] Initial version of Suspense timeline (#34233)
eps1lon Aug 25, 2025
26e87b5
Fix Flow issue from land race (#34293)
kassens Aug 25, 2025
ad4ecb6
[DevTools] Fix symbolication with Index Source Maps (#34300)
eps1lon Aug 26, 2025
44f8451
[DevTools] Avoid tearing Suspense store (#34294)
eps1lon Aug 26, 2025
bb7c9c1
Create more realistic containers in DevTools fixture (#34296)
eps1lon Aug 26, 2025
cacc20e
[Flight] Wait for both streams to end before closing the response (#3…
unstubbable Aug 26, 2025
cb1e73b
[DevTools] Batch Suspense toggles when advancing the Suspense timelin…
eps1lon Aug 26, 2025
4123f6b
[Fizz] Skip past hidden inputs when attempting to hydrate hydration b…
eps1lon Aug 26, 2025
9c2e2b8
[Flight] Don't drop debug info if there's only a readable debug chann…
unstubbable Aug 27, 2025
2135948
[DevTools] Better scrolling in Suspense tab (#34299)
eps1lon Aug 27, 2025
33a1095
[compiler] Infer render helpers for additional validation (#33647)
josephsavona Aug 27, 2025
b870042
[compiler] Validate against component/hook factories (#34305)
poteto Aug 27, 2025
0a1f1fc
[ci] Cache playwright in run_devtools_e2e_tests (#34320)
poteto Aug 27, 2025
bd5b1b7
[compiler] Emit better error for unsupported syntax `this` (#34322)
poteto Aug 27, 2025
3434ff4
Add scrollIntoView to fragment instances (#32814)
jackpope Aug 27, 2025
8d7b5e4
[compiler] Show a ref name hint when assigning to non-ref in a callba…
josephsavona Aug 28, 2025
89a803f
[DevTools] Add breadcrumbs to Suspense tab (#34312)
eps1lon Aug 28, 2025
c5362a3
[compiler][playground] (1/N) Config override panel (#34303)
EugeneChoi4 Aug 28, 2025
872b4fe
[eprh] Update installation instructions in readme (#34331)
poteto Aug 28, 2025
6b49c44
Update Code Sandbox CI to Node 20 to Match .nvmrc (#34329)
iamsmruti Aug 28, 2025
4082b0e
[compiler] Detect known incompatible libraries (#34027)
josephsavona Aug 28, 2025
3fe51c9
[Flight] Use more robust web socket implementation in fixture (#34338)
unstubbable Aug 29, 2025
aad7c66
[Flight] Don't try to close debug channel twice (#34340)
unstubbable Aug 29, 2025
bb6f0c8
[Flight] Fix wrong missing key warning when static child is blocked (…
unstubbable Sep 1, 2025
1549bda
[Flight] Only assign `_store` in dev mode when creating lazy types (#…
unstubbable Sep 1, 2025
b1b0955
[DevTools] Fix inspected element scroll in Suspense tab (#34355)
eps1lon Sep 1, 2025
6a58b80
[DevTools] Only inspect elements on left mouseclick (#34361)
eps1lon Sep 2, 2025
8e60cb7
[DevTools] Remove markers from Suspense timeline (#34357)
eps1lon Sep 2, 2025
ac3e705
[compiler][playground] (2/N) Config override panel (#34344)
EugeneChoi4 Sep 2, 2025
2805f0e
Performance Tracks: log properties diff for renders in DEV if no cons…
hoxyq Sep 3, 2025
3168e08
[flags] enable opt-in for enableDefaultTransitionIndicator (#34373)
rickhanlonii Sep 3, 2025
7697a9f
[playground] Upgrade to latest next (#34375)
poteto Sep 3, 2025
3302d1f
Fix: uDV skipped initial value if earlier transition suspended (#34376)
acdlite Sep 3, 2025
5d64f74
[compiler] Fix for scopes with unreachable fallthroughs (#34335)
josephsavona Sep 4, 2025
735e9ac
[compiler] enablePreserveExistingMemo memoizes primitive-returning fu…
josephsavona Sep 4, 2025
2710795
[compiler] Cleanup for @enablePreserveExistingMemoizationGuarantees (…
josephsavona Sep 4, 2025
ba6590d
[DevTools] Rerender boundaries when they unsuspend when advancing the…
eps1lon Sep 4, 2025
5a31758
[DevTools] Allow inspection before streaming has finished in Chrome (…
eps1lon Sep 4, 2025
e2cc315
[DevTools] Don't suspend shell while retrieving original source for "…
eps1lon Sep 4, 2025
b9a0453
[DevTools] Allow inspecting root when navigating Suspense timeline (#…
eps1lon Sep 4, 2025
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
6c42228
Update README.md
AIC-HMV Sep 30, 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
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
5 changes: 3 additions & 2 deletions .codesandbox/ci.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
{
"packages": ["packages/react", "packages/react-dom", "packages/scheduler"],
"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",
"react-server-dom-webpack": "build/oss-experimental/react-server-dom-webpack",
"scheduler": "build/oss-experimental/scheduler"
},
"sandboxes": ["new"],
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/
66 changes: 55 additions & 11 deletions .eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -303,7 +303,6 @@ module.exports = {
ERROR,
{isProductionUserAppCode: true},
],
'react-internal/no-to-warn-dev-within-to-throw': ERROR,
'react-internal/warning-args': ERROR,
'react-internal/no-production-logging': ERROR,
},
Expand Down Expand Up @@ -447,10 +446,7 @@ module.exports = {
},
},
{
files: [
'scripts/eslint-rules/*.js',
'packages/eslint-plugin-react-hooks/src/*.js',
],
files: ['scripts/eslint-rules/*.js'],
plugins: ['eslint-plugin'],
rules: {
'eslint-plugin/prefer-object-rule': ERROR,
Expand All @@ -472,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 @@ -497,16 +494,21 @@ module.exports = {
{
files: [
'packages/react-devtools-extensions/**/*.js',
'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',
],
globals: {
__IS_CHROME__: 'readonly',
__IS_FIREFOX__: 'readonly',
__IS_EDGE__: 'readonly',
__IS_NATIVE__: 'readonly',
__IS_INTERNAL_MCP_BUILD__: 'readonly',
__IS_INTERNAL_VERSION__: 'readonly',
chrome: 'readonly',
},
},
{
Expand All @@ -515,6 +517,34 @@ 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'],
parser: '@typescript-eslint/parser',
plugins: ['@typescript-eslint', 'eslint-plugin'],
rules: {
'@typescript-eslint/no-explicit-any': OFF,
'@typescript-eslint/no-non-null-assertion': OFF,
'@typescript-eslint/array-type': [ERROR, {default: 'generic'}],

'es/no-optional-chaining': OFF,

'eslint-plugin/prefer-object-rule': ERROR,
'eslint-plugin/require-meta-fixable': [
ERROR,
{catchNoFixerButFixableProperty: true},
],
'eslint-plugin/require-meta-has-suggestions': ERROR,
},
},
],

env: {
Expand All @@ -525,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 @@ -540,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 @@ -556,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 @@ -585,11 +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',
ScrollTimeline: 'readonly',
EventListenerOptionsOrUseCapture: 'readonly',
FocusOptions: 'readonly',
OptionalEffectTiming: 'readonly',

spyOnDev: 'readonly',
spyOnDevAndProd: 'readonly',
Expand All @@ -607,5 +650,6 @@ module.exports = {
AsyncLocalStorage: 'readonly',
async_hooks: 'readonly',
globalThis: 'readonly',
navigation: 'readonly',
},
};
18 changes: 0 additions & 18 deletions .github/ISSUE_TEMPLATE/19.md

This file was deleted.

49 changes: 49 additions & 0 deletions .github/workflows/compiler_discord_notify.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
name: (Compiler) Discord Notify

on:
pull_request_target:
types: [opened, ready_for_review]
paths:
- compiler/**
- .github/workflows/compiler_**.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.COMPILER_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 }}
26 changes: 20 additions & 6 deletions .github/workflows/compiler_playground.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ on:
- compiler/**
- .github/workflows/compiler_playground.yml

permissions: {}

concurrency:
group: ${{ github.workflow }}-${{ github.ref_name }}-${{ github.event.pull_request.number || github.run_id }}
cancel-in-progress: true
Expand Down Expand Up @@ -36,14 +38,25 @@ jobs:
uses: actions/cache@v4
id: node_modules
with:
path: "**/node_modules"
key: compiler-node_modules-${{ runner.arch }}-${{ runner.os }}-${{ hashFiles('compiler/**/yarn.lock') }}
- name: yarn install compiler
run: yarn install --frozen-lockfile
path: |
**/node_modules
key: compiler-and-playground-node_modules-v6-${{ runner.arch }}-${{ runner.os }}-${{ hashFiles('compiler/**/yarn.lock') }}
- run: yarn install --frozen-lockfile
if: steps.node_modules.outputs.cache-hit != 'true'
working-directory: compiler
- name: yarn install playground
run: yarn install --frozen-lockfile
- run: yarn install --frozen-lockfile
if: steps.node_modules.outputs.cache-hit != 'true'
- name: Check Playwright version
id: playwright_version
run: echo "playwright_version=$(npm ls @playwright/test | grep @playwright | sed 's/.*@//' | head -1)" >> "$GITHUB_OUTPUT"
- name: Cache Playwright Browsers for version ${{ steps.playwright_version.outputs.playwright_version }}
id: cache_playwright_browsers
uses: actions/cache@v4
with:
path: ~/.cache/ms-playwright
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: CI=true yarn test
- run: ls -R test-results
if: '!cancelled()'
Expand All @@ -53,3 +66,4 @@ jobs:
with:
name: test-results
path: compiler/apps/playground/test-results
if-no-files-found: ignore
14 changes: 10 additions & 4 deletions .github/workflows/compiler_prereleases.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,15 +16,19 @@ on:
version_name:
required: true
type: string
tag_version:
required: false
type: string
secrets:
NPM_TOKEN:
required: true

permissions: {}

env:
TZ: /usr/share/zoneinfo/America/Los_Angeles
# https://github.com/actions/cache/blob/main/tips-and-workarounds.md#cache-segment-restore-timeout
SEGMENT_DOWNLOAD_TIMEOUT_MINS: 1
GH_TOKEN: ${{ github.token }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}

defaults:
Expand All @@ -46,10 +50,12 @@ jobs:
uses: actions/cache@v4
id: node_modules
with:
path: "**/node_modules"
key: compiler-node_modules-${{ runner.arch }}-${{ runner.os }}-${{ hashFiles('compiler/**/yarn.lock') }}
path: |
**/node_modules
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
run: |
cp ./scripts/release/ci-npmrc ~/.npmrc
scripts/release/publish.js --frfr --ci --versionName=${{ inputs.version_name }} --tag ${{ inputs.dist_tag }}
scripts/release/publish.js --frfr --ci --versionName=${{ inputs.version_name }} --tag=${{ inputs.dist_tag }} ${{ inputs.tag_version && format('--tagVersion={0}', inputs.tag_version) || '' }}
6 changes: 6 additions & 0 deletions .github/workflows/compiler_prereleases_manual.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,11 @@ on:
version_name:
required: true
type: string
tag_version:
required: false
type: string

permissions: {}

env:
TZ: /usr/share/zoneinfo/America/Los_Angeles
Expand All @@ -27,5 +32,6 @@ jobs:
release_channel: ${{ inputs.release_channel }}
dist_tag: ${{ inputs.dist_tag }}
version_name: ${{ inputs.version_name }}
tag_version: ${{ inputs.tag_version }}
secrets:
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
2 changes: 2 additions & 0 deletions .github/workflows/compiler_prereleases_nightly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ on:
# At 10 minutes past 16:00 on Mon, Tue, Wed, Thu, and Fri
- cron: 10 16 * * 1,2,3,4,5

permissions: {}

env:
TZ: /usr/share/zoneinfo/America/Los_Angeles

Expand Down
21 changes: 0 additions & 21 deletions .github/workflows/compiler_prereleases_weekly.yml

This file was deleted.

Loading