Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
8803 commits
Select commit Hold shift + click to select a range
c148be6
Cover `idlecallbacks` with Stable API guards (#58139)
Sep 2, 2026
fdcce4f
Turn on `experimental.new_this_typing` in xplat (#58293)
Sep 2, 2026
9ad8c83
Apply preset defaults without a Babel API (#58254)
Sep 2, 2026
9c6efa2
Include preset dependencies in main cache keys (#58251)
Sep 2, 2026
6306c4a
Revert D118438065: Apply preset defaults without a Babel API
Sep 3, 2026
bdce09d
Revert D118563281: Revert D118438065: [react-native][PR] Apply preset…
Sep 3, 2026
d4c8569
Stop reading `buttons` back out of the pointer payload under construc…
Sep 3, 2026
e0921e9
xplat/js/react-native-github/packages/react-native/ReactAndroid/src/m…
Sep 3, 2026
ebab8d9
Make Maestro keyboard dismissal Android-only (#58288)
Sep 3, 2026
49bcae1
Wait for Maestro template app startup (#58289)
Sep 3, 2026
bbdeb7d
Inline the last duplicate Platform.select key (#58249)
Sep 3, 2026
0c0e9f0
Guard private syntax preservation by transform profile (#58253)
Sep 3, 2026
d3b7893
Upgrade Image visibility to "for frameworks" (#58283)
Sep 3, 2026
3f9f385
Add an internal option to skip Native Animated frames while inactive …
Sep 3, 2026
253a84c
Attach TurboModule identity to exceptions rethrown from async and voi…
Sep 3, 2026
19e1cc7
Cover `react/renderer/animated` with guards (#58269)
Sep 3, 2026
e70d9e0
Upgrade Modal visibility to "for frameworks" (#58285)
Sep 3, 2026
02cb3ca
Upgrade Text visibility to "for frameworks" (#58284)
Sep 3, 2026
2994ff2
Upgrade Root visibility to "for frameworks" (#58282)
Sep 3, 2026
6302cfe
Upgrade ScrollView visibility to "for frameworks" (#58287)
Sep 3, 2026
556e648
Upgrade RendererBridging visibility to "for frameworks" (#58286)
Sep 3, 2026
f970054
Cover `react/featureflags` with Stable API guards (#58083)
Sep 3, 2026
9048120
Stop using `paperComponentName` in React Native core component specs …
Sep 3, 2026
8cf8e09
Fold optional TextAttributes fields into a presence mask when hashing…
Sep 3, 2026
d9ad3f0
Replace UAF death test with deterministic stale-delegate assertion (#…
Sep 3, 2026
477e14a
Cover `react/renderer/telemetry` with guards (#58301)
Sep 4, 2026
9be9186
Cover `react/renderer/mounting` with guards (#58303)
Sep 4, 2026
1b30a1f
Cover react/runtime with Stable API guards (#58167)
Sep 4, 2026
bf0e377
Reduce JNI allocations when importing native maps (#58274)
Sep 4, 2026
fcbeda1
stop baking an absolute HERMES_CLI_PATH into the app pbxproj (#58292)
Sep 4, 2026
5e9cce8
Cover react/renderer/animationbackend with Stable API guards (#58304)
Sep 4, 2026
63d118a
Fix per-node memory regression caused by Grid styles (#58311)
Sep 4, 2026
0d64c9a
Run codegen for formatted native component calls (#58257)
Sep 4, 2026
1a7c318
Make deprecated native module specs Flow strict-local (#57724)
Sep 4, 2026
c72e8c7
Make Blob/File/URL modules Flow strict-local (#57728)
Sep 4, 2026
590ca97
Make StyleSheet modules Flow strict-local (#57731)
Sep 4, 2026
a593f1a
Make Utilities modules Flow strict-local (#57729)
Sep 4, 2026
2920b6e
Make assorted Components Flow strict-local (#57732)
Sep 4, 2026
5211157
Make AppRegistry and Core timers Flow strict-local (#57735)
Sep 4, 2026
a9dc32c
Make element inspector dev support modules Flow strict-local (#57741)
Sep 4, 2026
50a7d46
Make assorted Libraries modules Flow strict-local (#57733)
Sep 4, 2026
38fd9d5
Restore `paperComponentName: 'RCTSwitch'` to fix `@testing-library/re…
Sep 4, 2026
d44efb0
Cover react/renderer/imagemanager with Stable API guards (#58307)
Sep 4, 2026
c300f84
fix(text): avoid mutating accessibilityState (#58318)
Sep 4, 2026
d5dcd2f
Fix require cycle (#58330)
Sep 4, 2026
f072ddb
Deploy 0.331.0 to xplat (#58332)
Sep 4, 2026
3ca6ea3
Buffer async CallInvoker work with module calls (#58313)
Sep 4, 2026
08c7781
fix(image): preserve source headers with crossOrigin and referrerPoli…
Sep 4, 2026
8cfde6d
Fix Image.getSize failing for data: URIs on Android (#58353)
Sep 5, 2026
25c5539
Cover react/renderer/attributedstring with Stable API guards (#58305)
Sep 7, 2026
a385cec
Drop unused Hermes import from RCTAppSetupUtils (#58056)
Sep 7, 2026
96518a8
Fix Android text mis-measurement when using fontVariationSettings (#5…
Sep 7, 2026
3e897cf
Emit tvOS focus events after focus updates (#58372)
Sep 7, 2026
f2d6596
translation auto-update for batch 2/66 on master
Sep 8, 2026
bc64b26
Cover `react/renderer/consistency:consistency` with Stable API guards…
Sep 8, 2026
b8dc216
Forward declare CDP reporters and ViewTransitionModule in Scheduler.h…
Sep 8, 2026
9b2a54e
Remove remaining private includes from scheduler headers (#58137)
Sep 8, 2026
25b6fd5
Add RN_BUILDING to fantom (#58392)
Sep 8, 2026
d6a5f15
fix(android): bump androidx.collection to 1.4.4 to avoid MutableIntOb…
Sep 8, 2026
07a6e1f
Cover react/renderer/css with Stable API guards (#58387)
Sep 8, 2026
0eb9b30
Fix Android WebSocket cookie lookup stripping the URL path (#58365)
Sep 8, 2026
e8f50cd
Tidy the bridgeless runtime executor plumbing (#58325)
Sep 8, 2026
51020ed
xplat/js/react-native-github/packages/react-native/ReactAndroid/src/m…
Sep 8, 2026
9a49fc2
Bump `flow-{api-translator,eslint,parser}` to 0.331.0 (#58391)
Sep 8, 2026
156a9a2
Include errno in iOS bundle open/stat failure messages (#58383)
Sep 8, 2026
a506ed6
Expose ReactNativeFeatureFlags through react-private-interface (#57940)
Sep 8, 2026
e4a7e4e
Bump Hermes to 260318099.0.2 (#58397)
Sep 8, 2026
981cd12
Add changelog for v0.88.0-rc.0 (#58409)
Sep 8, 2026
e0159c1
Preserve TextInput returnKeyType when changing multiline (#58355)
Sep 8, 2026
12e979c
xplat/js/react-native-github/packages/react-native/ReactAndroid/src/m…
Sep 8, 2026
b830082
Use current PR state in analyze workflow (#58411)
Sep 8, 2026
583c8f3
fix(codegen): read react-native.config.cjs so ESM projects are not si…
Sep 9, 2026
7aff51e
Forward-declare private-target types in RuntimeScheduler.h (#58271)
Sep 9, 2026
7ad2642
Cover `react/renderer/uimanager/consistency:consistency` with Stable …
Sep 9, 2026
1b83899
Cover reactperflogger with Stable API guards (#58382)
Sep 9, 2026
ff3ea5e
Forward declare LeakChecker in UIManager.h (#58091)
Sep 9, 2026
8f9232b
Cover textlayoutmanager with Stable API guards (#58312)
Sep 9, 2026
2b83552
Remove dead include from RCTInstance.h (#58181)
Sep 9, 2026
97bea46
Change default transform profile to 'hermes-stable' #2 (#57911)
Sep 9, 2026
29533e0
Cover jsinspector-modern with Stable API guards (#58309)
Sep 9, 2026
73a76dd
Export the native Fabric UI manager for React (#58398)
Sep 9, 2026
df86c5e
Fix iOS Metro reload after initial bundle failure (#58352)
Sep 9, 2026
935f733
Remove RCTInstance runtime diagnostic flags getter/setter (#58384)
Sep 9, 2026
022458f
Distinguish transparent colors from undefined props (#58093)
Sep 9, 2026
5d84f62
fix(image): emit onLoadStart before subscribing the response observer…
Sep 9, 2026
f82830d
Use a variable for the Maestro Cloud project ID (#58408)
Sep 9, 2026
adb688a
Correct three entries in the v0.88.0-rc.0 changelog (#58421)
Sep 9, 2026
a3ed344
Cover `react/utils` with Stable API guards (#58184)
Sep 9, 2026
0a92bae
Cover `cxxreact:jsbigstring` with Stable API guards (#58393)
Sep 9, 2026
4078468
Cover cxxreact:messagequeuethread with Stable API guards (#58401)
Sep 9, 2026
5cd5e39
Cover cxxreact:tracesection with Stable API guards (#58400)
Sep 9, 2026
ad3ed6e
Cover cxxreact:module with Stable API guards (#58402)
Sep 9, 2026
5464221
Cover cxxreact:bridge with Stable API guards (#58404)
Sep 9, 2026
5dcbbae
Classify iosswitch headers as private (#58405)
Sep 9, 2026
fea820f
fix(iOS) - Prevent SwiftUI based `filter` from insetting content by t…
Sep 9, 2026
eba7f28
Enable Kotlin warnings as errors (#58390)
Sep 9, 2026
f654cad
fix(babel-preset): preserve Platform.select initializers (#58350)
Sep 9, 2026
88748a7
Clone ObjectMethod before toExpression in preset (#58424)
Sep 9, 2026
ca7acf6
Layout breaks when the first element has a different minWidth than th…
Sep 9, 2026
9b87159
Do not fail superseded Maestro Cloud runs (#58422)
Sep 9, 2026
c1ad8ae
Revert D119305530: Clone ObjectMethod before toExpression in preset
Sep 9, 2026
679a7b7
Revert D119065685: fix(babel-preset): preserve Platform.select initia…
Sep 9, 2026
1cfc5f2
Derive an SPM library's Swift name from its podspec (#58290)
Sep 9, 2026
03ed284
Add experimental longest-line sizing for wrapped Text (#58351)
Sep 10, 2026
ab47284
xplat/js/react-native-github/packages/react-native/ReactCommon/yoga/y…
Sep 10, 2026
5283626
Forward declare ShadowTreeRevisionConsistencyManager (#58370)
Sep 10, 2026
5837659
Forward declare ShadowTreeRevisionProvider in UIManager.h (#58371)
Sep 10, 2026
a35313a
Add ReactNativeVersion.h to react/utils (#58403)
Sep 10, 2026
506165d
Exclude Yoga tests from iOS build (#58439)
Sep 10, 2026
f109c0a
Skip HMR client setup when bundle is not from Metro (#58428)
Sep 10, 2026
4edac1c
Classify react/nativemodule/defaults as for-frameworks (#58423)
Sep 10, 2026
0654db9
Make Lists, Networking, and UIManager modules Flow strict-local (#57726)
Sep 10, 2026
f68f981
Make remaining ReactNative and Core modules Flow strict-local (#57730)
Sep 10, 2026
0ae6234
Make remaining Utilities modules Flow strict-local (#57739)
Sep 10, 2026
a9d0591
Make Settings modules Flow strict-local (#57736)
Sep 10, 2026
18f96a4
Make processTransform Flow strict-local (#57734)
Sep 10, 2026
6d4e456
Make assorted remaining modules Flow strict-local (#57737)
Sep 10, 2026
43d677e
Type ImageLoader native module headers as a string map (#57740)
Sep 10, 2026
2487860
Make Animated modules Flow strict-local (#57738)
Sep 10, 2026
328ed63
Make remaining library modules Flow strict-local (#57727)
Sep 10, 2026
373385e
Make `+moduleName` optional so New Arch modules can drop `RCT_EXPORT_…
Sep 10, 2026
5646c31
fix: rootMargin ignored when IntersectionObserver root clips (#58177)
Sep 10, 2026
9b18b95
Remove `bridgelessEnabled` from `DefaultNewArchitectureEntryPoint` (#…
Sep 10, 2026
260dd49
Add prepared text layout RNTester E2E setup (#58426)
Sep 10, 2026
0e01003
Remove legacy RCTTimingModule (#57037)
Sep 10, 2026
2a9eca8
Remove `bridgelessEnabled` from `RCTRootViewFactoryConfiguration` (#5…
Sep 10, 2026
4666232
Delete legacy RCTNativeAnimatedModule from RN iOS (#57904)
Sep 10, 2026
3ba8ee5
Align Fabric UI manager proxy with native binding (#58443)
Sep 10, 2026
e15b667
Remove legacy TimingModule.kt (#57070)
Sep 10, 2026
5ef4087
Remove useRefEffect (#58451)
Sep 10, 2026
2364ae1
Fix failing iOS text width mode Maestro test (#58457)
Sep 10, 2026
b0b7142
React 19.3.0 sync int React Native OSS (#58446)
Sep 11, 2026
a82827e
Remove isOSS guards from Fantom renderer tests (#58447)
Sep 11, 2026
31d33ce
Ship enableNativeEventTargetEventDispatching by default (#58450)
Sep 11, 2026
625df0c
Remove unused UIManager binding from React private interface (#58399)
Sep 11, 2026
c613b34
Remove deprecated Libraries/ReactPrivate forwarding modules (#58452)
Sep 11, 2026
309d1a6
Remove globals defined for the React renderer that are now unused (#5…
Sep 11, 2026
7754512
Remove unused bindings from the React private interface (#58455)
Sep 11, 2026
3eb901e
Forward declare JSExecutorFactory in RCTAppSetupUtils (#58134)
Sep 11, 2026
1a48d82
Forward declare NativeModulePerfLogger in TurboModulePerfLogger.h (#5…
Sep 11, 2026
a9203b8
Make `react/renderer/components/image` public (#58437)
Sep 11, 2026
f20f857
Fix Modal staying onscreen when dismissed while presenting a child co…
Sep 11, 2026
25f48bd
Run SPM-generated shell scripts under bash, not /bin/sh (#58362)
Sep 11, 2026
cf97656
Downgrade HMR client console.warn to console.log (#58478)
Sep 11, 2026
025a862
xplat/js/react-native-github/packages/react-native/ReactCommon/yoga/y…
Sep 11, 2026
dcdb52b
fix(android): keep ReactTextView line breaking advance-based on Andro…
Sep 11, 2026
b5c1522
Fix builds to not probe Maven for `1000.0.0` versioned artifacts (#58…
Sep 11, 2026
8480b86
Enable the imperative EventTarget API in canary (#58479)
Sep 11, 2026
2975534
Cover `componentregistry` with Stable API guards (#58302)
Sep 11, 2026
936ab1f
Revert D117646058: xplat/js/react-native-github/packages/react-native…
Sep 11, 2026
be53e3a
Make `react/renderer/imagemanager` public (#58438)
Sep 11, 2026
ea2ca1b
Run RCTAccessibilityManager methods on the main queue (#58476)
Sep 11, 2026
ca2e11a
Keep only release level on DefaultNewArchitectureEntryPoint (#58469)
Sep 11, 2026
e0224fd
fix: validate PerformanceObserver observe options
Sep 11, 2026
b936db9
Resolve umbrella headers in CMake builds (#58483)
Sep 12, 2026
b2ddd06
Cover `react/nativemodule/core` with Stable API guards (#58327)
Sep 13, 2026
f3fb550
fix(babel-preset): preserve Platform.select initializers (#58350)
Sep 14, 2026
9038350
Cover `runtimeexecutor` with Stable API guards (#58324)
Sep 14, 2026
8796dc9
Update descriptions in KeyboardAvoidingViewExample (#58430)
Sep 15, 2026
7591312
Fix CloseButton alignment in KeyboardAvoidingViewExample (#58431)
Sep 15, 2026
df6ca86
Add ScrollView example in KeyboardAvoidingViewExample (#58432)
Sep 15, 2026
d813915
Auto offscreen-composite elevated descendants under reduced opacity o…
Sep 15, 2026
fe7c7d2
Add Switch screenshot coverage for props reconciliation (#58470)
Sep 15, 2026
e0d88c4
Update module umbrella headers (#58533)
Sep 15, 2026
dcc872a
Cover `react/renderer/core` with stable API guards (#58374)
Sep 15, 2026
39751d8
fix(codegen): skip node_modules and symlinks when crawling for compon…
Sep 15, 2026
5ad1d5c
Cover react/renderer/debug with Stable API guards (#58183)
Sep 15, 2026
92564f3
Derive the generated manifests' iOS platform floor from the app (#58379)
Sep 15, 2026
29900fc
Align the no-deep-imports auto-fix map with the public API (#58536)
Sep 15, 2026
932b34a
Export ViewabilityConfig and ViewabilityConfigCallbackPair (#58537)
Sep 15, 2026
da03097
Type the unstable-internals-do-not-use entry point with Flow (#58538)
Sep 15, 2026
1a46df5
Make react/bridging public (#58485)
Sep 15, 2026
d365e64
Improve diagnostics when the packager cannot be reached or used (#58519)
Sep 15, 2026
0ca5cec
Fix Android URL keyboard input type (#58505)
Sep 15, 2026
810e2a3
Document needsOffscreenAlphaCompositing workaround for elevation unde…
Sep 15, 2026
7d7b585
Match Prettier coverage with `arc f` (#58460)
Sep 15, 2026
ec9952a
Check all C-family sources with clang-format (#58461)
Sep 15, 2026
07e4bf3
Add Kotlin to `yarn format` (#58462)
Sep 15, 2026
fe0a20c
Remove the ktfmt Gradle plugin (#58467)
Sep 15, 2026
c9c293d
Add Java to `yarn format` (#58466)
Sep 15, 2026
2334bf7
Add Python to `yarn format` (#58465)
Sep 15, 2026
30b4c7e
Add Swift to `yarn format` (#58463)
Sep 15, 2026
d302be5
Apply ktfmt 0.59.0 (#58468)
Sep 15, 2026
7a2963f
Report formatting fixes on pull requests (#58464)
Sep 15, 2026
6e862f9
Fix cache-key test on release branches (#58546)
Sep 15, 2026
0c35f57
Fix VirtualizedSectionList.scrollToLocation off-by-one and sticky hea…
Sep 15, 2026
b4d57ab
Fix Android navigation bar transparency for Modal (#58491)
Sep 16, 2026
954cb23
xplat/js/react-native-github/packages/react-native/ReactAndroid/src/m…
Sep 16, 2026
a9473b5
Name the no-tag sentinel and use it for the hardcoded -1 tags (#58531)
Sep 16, 2026
a493a8a
Revert preserve Platform.select initializers (#58541)
Sep 16, 2026
a17fbb4
Add changelog for v0.88.0-rc.1 (#58547)
Sep 16, 2026
faa7aa0
Use Bridging umbrella in generated modules (#58486)
Sep 16, 2026
b9adf95
fix: use ES import for Platform instead of require (#58453)
Sep 16, 2026
7e02fc7
Remove the unused `maximumFontSize` paragraph attribute (#58529)
Sep 16, 2026
7fc66cc
Document the repository formatting command (#58458)
Sep 16, 2026
0b1561a
Fix misleading ListItemComponent JSDoc in VirtualizedList types (#58500)
Sep 16, 2026
0d47e12
Revert D119658518: Use Bridging umbrella in generated modules
Sep 16, 2026
2771618
Remove split bundle loading logic (#58556)
Sep 16, 2026
562fe34
Remove Fabric and TurboModule dead config (#58434)
Sep 16, 2026
7ce27d0
Fix KeyboardAvoidingView behavior for multi-line TextInputs on iOS (#…
Sep 16, 2026
8f53555
Move the SampleTurboModule main-queue annotation back to rn-tester (#…
Sep 16, 2026
76ca12b
Remove Native Animated allowlist mutation APIs (#58560)
Sep 16, 2026
a24bd32
Honour Metro's `experimentalImportSupport` in `react-native/babel-pre…
Sep 17, 2026
86ba0c6
Make View conversion headers Apple warning-clean (#58542)
Sep 17, 2026
665beff
Fix native component event property checks (#58195)
Sep 17, 2026
0e87de0
fix(iOS): reuse prefetched images (#57971)
Sep 17, 2026
a9307d8
Split the iOS E2E template-app workflow and harden the Maestro runner…
Sep 17, 2026
271111c
Use ComponentRegistry umbrella in generated descriptors (#58554)
Sep 17, 2026
3aabdfc
Pre-align console typing with TS typing (#58576)
Sep 17, 2026
a01ee31
Revert D120541798: Pre-align console typing with TS typing
Sep 17, 2026
c9b77ec
Back out "Revert D120541798: [flow] Pre-align console typing with TS …
Sep 18, 2026
d2a6ce5
Adopt lib.dom.d.ts in xplat (#58582)
Sep 18, 2026
c687a35
Fix oss formatting (#58586)
Sep 18, 2026
54f9cdf
Use View umbrella in generated components (#58539)
Sep 18, 2026
15d3bca
Move Android template app E2E builds to Docker (#58564)
Sep 18, 2026
7a63140
Use public APIs in Fantom tests (#58567)
Sep 18, 2026
652d501
Use global DOM types in Fantom tests (#58569)
Sep 18, 2026
ffbca04
Use public imports in Codegen fixtures (#58572)
Sep 18, 2026
4d4bb50
Remove remaining test deep imports (#58573)
Sep 18, 2026
7d136d6
Migrate remaining internal deep imports (#58589)
Sep 18, 2026
3718f62
Reject deep imports in GitHub Flow (#58574)
Sep 18, 2026
ea9e483
Easy: Update IEventLoopControl::scheduleTask doc comment (#58580)
Sep 18, 2026
af4d8eb
Preserve unset accessibilityState.selected in C++ props (#58599)
Sep 18, 2026
15bb7e2
Include the native event timestamp in onHWKeyEvent on Android (#58607)
Sep 19, 2026
6019ea1
Deploy 0.332.0 to xplat (#58608)
Sep 19, 2026
a7e4224
Remove root CLAUDE.md in favor of AGENTS.md (#58600)
Sep 20, 2026
434a306
Cleanup legacy library types in xplat: 1/n (#58609)
Sep 20, 2026
bf892bf
Correctly link umbrella headers for iOS prebuild (#58548)
Sep 21, 2026
68542c5
Use umbrella instead of a direct include in reactperflogger module (#…
Sep 21, 2026
b439ef7
Process synchronous event beats in the frame that requested them (#58…
Sep 21, 2026
8de8e08
Reland Bridging umbrella in generated modules (#58558)
Sep 21, 2026
9da1bac
Configure Swift formatting in CI (#58616)
Sep 21, 2026
5e6c552
Fix RCTSurfacePresenter formatting (#58617)
Sep 21, 2026
17a472e
Use public umbrellas in modal headers (#58570)
Sep 21, 2026
9665168
Make RendererCore conversions Apple warning-clean (#58591)
Sep 21, 2026
31c3240
Mock NativeAnimatedHelper in the Jest preset (#58613)
Sep 21, 2026
3e6b2bf
Retry artifact uploads in CI (#58620)
Sep 21, 2026
17dec8b
Test ResizeObserver structured clone errors (#58592)
Sep 21, 2026
f1d2756
Introduce enableFabricCommitBranchingMergeOnMainThread feature flag (…
Sep 21, 2026
2761132
Upgrade Flow in fbsource
Sep 21, 2026
168a0d7
Allow configuring Babel runtime via caller in @react-native/babel-pre…
Sep 21, 2026
649b404
Expose renderer through unstable internals (#58618)
Sep 21, 2026
ee4fc1d
Remove deep imports from the Jest preset (#58602)
Sep 21, 2026
e0a6a9f
Remove deep imports from generated Codegen modules (#58603)
Sep 21, 2026
d6adb9f
Remove React Native deep imports from Fantom (#58605)
Sep 21, 2026
9b021ce
Remove remaining package deep imports (#58604)
Sep 21, 2026
3d93b5a
Remove disabled accessibility manager integration test (#58612)
Sep 21, 2026
509e672
Remove init-variables clang-tidy workarounds (#58628)
Sep 21, 2026
f03f6c2
Align Kotlin version with the AGP Kotlin Gradle plugin (#58624)
Sep 21, 2026
04e01ef
Compute the paragraph drawing frame at mount time, not in layoutSubviews
Sep 22, 2026
File filter

Filter by extension

Filter by extension


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

This file was deleted.

13 changes: 0 additions & 13 deletions .circleci/config.yml

This file was deleted.

9 changes: 9 additions & 0 deletions .clang-format-ignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
**/Pods/**
**/build/**
**/node_modules/**
packages/react-native/React/I18n/FBXXHashUtils.h
packages/react-native/ReactAndroid/src/main/jni/first-party/yogajni/**
packages/react-native/ReactAndroid/src/main/jni/third-party/**
packages/react-native/ReactCommon/**/platform/windows/third-party/**
packages/react-native/ReactCommon/jsi/jsi/**
packages/react-native/ReactCommon/yoga/**
9 changes: 0 additions & 9 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,3 @@ end_of_line = lf
insert_final_newline = true
indent_style = space
indent_size = 2

[*.gradle]
indent_size = 4

[*.kts]
indent_size = 4

[BUCK]
indent_size = 4
5 changes: 4 additions & 1 deletion .eslintignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,18 @@
docs/generatedComponentApiDocs.js
packages/react-native/flow/
packages/react-native/sdks/
packages/react-native/ReactAndroid/build
packages/react-native/ReactAndroid/hermes-engine/build/
packages/react-native/Libraries/Renderer/*
packages/react-native/Libraries/vendor/**/*
node_modules/
packages/*/node_modules
packages/*/dist
packages/*/types_generated
packages/debugger-frontend/dist/**/*
packages/react-native-codegen/lib
tools/eslint/rules/sort-imports.js
private/react-native-codegen-typescript-test/lib/**/*
**/Pods/*
**/*.macos.js
**/*.windows.js
**/__fixtures__/**
84 changes: 58 additions & 26 deletions .eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,52 +4,75 @@
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @noflow
* @format
*/

'use strict';

const path = require('node:path');

require('eslint-plugin-lint').load(path.join(__dirname, 'tools/eslint/rules'));

module.exports = {
root: true,

extends: ['@react-native'],

plugins: ['@react-native/eslint-plugin-specs', 'lint'],
plugins: ['@react-native/monorepo', '@react-native/specs', 'import'],

overrides: [
// overriding the JS config from @react-native/eslint-config to ensure
// that we use hermes-eslint for all js files
// that we use flow-eslint for all js files
{
files: ['*.js', '*.js.flow', '*.jsx'],
parser: 'hermes-eslint',
parser: 'flow-eslint',
rules: {
// These rules are not required with hermes-eslint
'ft-flow/define-flow-type': 0,
'ft-flow/use-flow-type': 0,
// flow handles this check for us, so it's not required
'no-undef': 0,
'@react-native/monorepo/sort-imports': 'warn',
'eslint-comments/no-unlimited-disable': 'off',
'ft-flow/require-valid-file-annotation': ['error', 'always'],
'no-extra-boolean-cast': 'off',
'no-void': 'off',
// These rules are not required with flow-eslint
'ft-flow/define-flow-type': 'off',
'ft-flow/use-flow-type': 'off',
// Flow handles these checks for us, so they aren't required
'no-undef': 'off',
'no-unreachable': 'off',
// Throwing from function or rejecting promises with non-error values could result in unclear error stack traces and lead to harder debugging
'prefer-promise-reject-errors': 'error',
'no-throw-literal': 'error',
},
},
{
files: ['package.json'],
parser: 'jsonc-eslint-parser',
files: ['*.js', '*.jsx', '*.ts', '*.tsx'],
rules: {
'@react-native/no-deep-imports': 'off',
'import/enforce-node-protocol-usage': ['warn', 'always'],
},
},
{
files: ['package.json'],
files: [
'./packages/react-native/Libraries/**/*.{js,flow}',
'./packages/react-native/src/**/*.{js,flow}',
'./packages/assets-registry/registry.js',
],
parser: 'flow-eslint',
rules: {
'lint/react-native-manifest': 2,
'@react-native/monorepo/no-commonjs-exports': 'warn',
},
},
{
files: ['flow-typed/**/*.js'],
files: ['package.json'],
parser: 'jsonc-eslint-parser',
},
{
files: ['flow-typed/**/*.js', 'packages/react-native/flow/**/*'],
rules: {
'lint/valid-flow-typed-signature': 2,
'no-unused-vars': 0,
quotes: 0,
'@react-native/monorepo/valid-flow-typed-signature': 'error',
'ft-flow/require-valid-file-annotation': 'off',
// These libdefs are kept byte-identical across projects (see
// flow-typed-sync-test), so they must not be migrated independently.
'import/enforce-node-protocol-usage': 'off',
'no-shadow': 'off',
'no-unused-vars': 'off',
quotes: 'off',
},
},
{
Expand All @@ -58,19 +81,22 @@ module.exports = {
'packages/react-native/src/**/*.js',
],
rules: {
'@react-native/platform-colors': 2,
'@react-native/specs/react-native-modules': 2,
'lint/no-haste-imports': 2,
'lint/no-react-native-imports': 2,
'lint/require-extends-error': 2,
'@react-native/monorepo/no-haste-imports': 'error',
'@react-native/monorepo/no-react-default-imports': 'error',
'@react-native/monorepo/no-react-named-type-imports': 'error',
'@react-native/monorepo/no-react-native-imports': 'error',
'@react-native/monorepo/no-react-node-imports': 'error',
'@react-native/monorepo/require-extends-error': 'error',
'@react-native/platform-colors': 'error',
'@react-native/specs/react-native-modules': 'error',
},
},
{
files: [
'**/__fixtures__/**/*.js',
'**/__mocks__/**/*.js',
'**/__tests__/**/*.js',
'packages/react-native/jest/**/*.js',
'packages/jest-preset/jest/**/*.js',
'packages/rn-tester/**/*.js',
],
globals: {
Expand Down Expand Up @@ -113,5 +139,11 @@ module.exports = {
],
},
},
{
files: ['**/__tests__/**'],
rules: {
'@react-native/monorepo/no-react-native-imports': 'off',
},
},
],
};
1 change: 1 addition & 0 deletions .expo-code-review/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
.runs/
54 changes: 54 additions & 0 deletions .expo-code-review/agents/build-release-packaging.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
---
description: Build graph, dependency, packaging, publishing, release, and CI workflow correctness.
---

<!-- @ref glob:.github/workflows/** — CI and release workflow orchestration -->
<!-- @ref glob:packages/react-native/**/*.podspec — CocoaPods package graph -->
<!-- @ref glob:packages/react-native/**/CMakeLists.txt — CMake target graph -->
<!-- @ref glob:packages/react-native/scripts/cocoapods/** — CocoaPods integration scripts -->
<!-- @ref glob:packages/gradle-plugin/** — React Native Gradle Plugin -->
<!-- @ref glob:scripts/releases/** — release tooling -->
<!-- @ref glob:scripts/releases-ci/** — publishing and release CI tooling -->
<!-- @ref packages/react-native/package.json — published React Native package contract -->
# Build, release, and packaging correctness

Review dependency graphs and orchestration across Gradle, CMake, CocoaPods,
Swift Package Manager, npm packaging, release scripts, and GitHub Actions.
Security classification remains with the security reviewer.

## Own these defects

- A target, source, header, library, resource, or generated artifact is present
in one supported build form but missing from another reachable build form.
- Dependency scope, visibility, ordering, variant selection, or platform guards
resolve the wrong artifact or omit a required transitive contract.
- Version, package metadata, export, or release selection logic publishes the
wrong files, package, tag, branch, or artifact for a concrete input.
- Cache keys or restore paths reuse an artifact across incompatible platforms,
toolchain versions, architectures, variants, or source revisions.
- Workflow conditions, outputs, matrices, or job dependencies skip a required
lane, run the wrong lane, or consume an output that cannot exist.
- A subprocess result, partial failure, or retry path is ignored and allows a
release or build to continue with incomplete output.

Compare all supported siblings before reporting parity: Android build variants,
CocoaPods and Swift Package Manager, local and CI paths, source and prebuilt
artifacts, and release channels. State the exact configuration that fails.

Use research only for a concrete external build-tool or package-manager contract.
Repository scripts and pinned tool versions determine which part of that contract
applies. Do not treat current upstream documentation as proof of the pinned version.

## Do not report

- Formatting, naming, or a convention observed in only one sibling.
- A CI failure that an existing syntax checker reports without a separate
orchestration defect.
- Generic requests for more matrix coverage, caching, tests, or comments.
- Native runtime behavior after a successfully built artifact starts; the native
correctness reviewer owns it.
- Credential exposure or execution of untrusted code with secrets; the security
reviewer owns it.

Only report a concrete broken build, missing artifact, incorrect package, or
misrouted workflow path caused by changed code.
67 changes: 67 additions & 0 deletions .expo-code-review/agents/contracts-api-codegen.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
---
description: Public API, Codegen, feature-flag, and cross-language contract correctness.
alwaysRun: true
---

<!-- @ref AGENTS.md#gotchas — authoritative API snapshot and generated-code rules -->
<!-- @ref packages/react-native/index.js — runtime public JavaScript exports -->
<!-- @ref packages/react-native/index.js.flow — typed public JavaScript exports -->
<!-- @ref packages/react-native/ReactNativeApi.d.ts — committed JavaScript API snapshot -->
<!-- @ref packages/react-native/package.json — published package and type entry points -->
<!-- @ref packages/react-native/ReactAndroid/api/ReactAndroid.api — committed Android API snapshot -->
<!-- @ref glob:scripts/cxx-api/** — C++ API snapshots and validator -->
<!-- @ref glob:packages/react-native/**/Native*.js — candidate native-module specifications -->
<!-- @ref glob:packages/react-native/**/*NativeComponent.js — candidate native-component specifications -->
<!-- @ref packages/react-native/scripts/featureflags/ReactNativeFeatureFlags.config.js — feature-flag source of truth -->
<!-- @ref packages/react-native/src/private/featureflags/__docs__/README.md#defining-feature-flags — generation rule -->
<!-- @ref packages/react-native/src/private/featureflags/__docs__/README.md#setting-feature-flag-overrides — override ordering invariant -->
# API and cross-language contracts

You are the cross-cutting reviewer. Own defects created by disagreement between
files, languages, platforms, generated contracts, or public surfaces. Do not
repeat isolated implementation findings from the JavaScript or native reviewers.

## Public API

Compare runtime exports, Flow exports, the committed JavaScript API snapshot,
the package entry points, and relevant native API snapshots. Flag a reachable
breaking change, wrong export target, incompatible type shape, or accidental
public exposure. Distinguish stable API from explicitly private or unstable API.

Do not report only that a filtered generated snapshot was not updated. Infer
compatibility from the changed source and visible contract.

## Codegen contracts

Treat JavaScript native-module and native-component specifications as sources
for generated native contracts. Confirm a matching filename is actually a spec
before applying this rule.

Trace changed method names, optionality, nullability, enums, events, callbacks,
commands, and component props into their consumers. Flag mismatches that produce
a wrong value, missing registration, runtime exception, or native crash. Do not
ask authors to hand-edit generated output.

## Feature flags

The configuration file is the source of truth. Common flags must preserve one
contract across JavaScript, C++, Objective-C++, Kotlin, and Java. Overrides must
happen before the first cached access.

Trace changes to defaults, type, stage, removal, and call sites. Flag stale
branches, incompatible defaults, or override ordering that makes the effective
value depend on access order. Do not report only that generated files are absent.

## Cross-platform behavior

When a change crosses JavaScript, C++, Android, or Apple, identify the actual
producer and every affected consumer. Report missing parity only when a reachable
platform path now behaves incorrectly. Platform-specific behavior is not itself
a defect.

Use research only when a concrete compatibility candidate depends on an external
contract. A standard describes a target, not proof that React Native claims full
support. Confirm that target in repository code or documentation before reporting.

Produce the shared `__overall_pr_risk__` handoff after assessing the complete
change set.
45 changes: 45 additions & 0 deletions .expo-code-review/agents/correctness-js-flow.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
---
description: Runtime correctness in React Native's Flow JavaScript, TypeScript, and Node execution paths.
---

<!-- @ref AGENTS.md#repo-structure — identifies the JavaScript runtime and package surfaces -->
<!-- @ref AGENTS.md#common-commands — identifies Flow, Jest, and Fantom validation -->
<!-- @ref packages/react-native/index.js — runtime public API entry point -->
<!-- @ref packages/react-native/index.js.flow — typed public API entry point -->
# JavaScript and Flow correctness

Review logic inside JavaScript, Flow, TypeScript, and Node execution paths.

## Own these defects

- Incorrect state transitions, conditions, fallback behavior, or platform
selection with a concrete runtime trigger.
- Promise, callback, event subscription, timer, and cleanup defects that can
lose work, duplicate work, retain objects, or update torn-down state.
- Incorrect nullability, union discrimination, or value conversion that passes
static checking but fails for a reachable input.
- Public runtime getters or exports that resolve the wrong module or change
lazy-loading and compatibility behavior.
- JavaScript callers that violate an existing native or Codegen contract.

Trace the changed value through its caller and consumer. Inspect Android and
Apple siblings when platform selection affects the result. Find multiple nearby
implementations before claiming that a repository convention exists.

Use research only when the candidate depends on an external React, React Native,
web, or type-system contract. The fetched source must materially support the
finding; repository behavior remains grounded in the checked-out source.

## Do not own

- Cross-language parity, API snapshots, Codegen, and feature-flag contracts;
the contract reviewer owns them.
- Native implementation logic.
- Build, packaging, publishing, release, and workflow orchestration; the build
and release reviewer owns them.
- Flow, lint, formatting, or syntax failures that CI reports directly.
- A missing test without a concrete broken behavior.
- A style difference or pattern observed in only one sibling.

Only report a reachable failure in changed code. Do not report a theoretical
edge case without a caller and input that can trigger it.
Loading