## react/react-native — v0.87.1…v0.88.0-rc.0

_536+ commits._

### Features
- **Make element inspector dev support modules Flow strict-local (#57741)** (a9dc32c)
- **Add an internal option to skip Native Animated frames while inactive (#58295)** (3f9f385)
- **Add @expo/code-review-cli (#58021)** (4f95564)
- **Add stable public Debug C++ entry point (#58160)** (20d0605)
- **Add stable public CallInvoker C++ entry point (#58159)** (42a3721)
- **Support 'react-native/react-private-interface' in build-types (#58075)** (cec189b)
- **Add Maestro Cloud CI for RNTester (#58151)** (4eee1cd)
- **Add changelog for v0.87.1 (#58153)** (f826318)
- **Update apps for SceneDelegate support (#57717)** (609bddd)
- **Add changelog for v0.86.3 (#58098)** (a2f0a43)
- **Add asset utils resource identifier tests (#57999)** (6f90ef7)

### Fixes
- **Fix Image.getSize failing for data: URIs on Android (#58353)** (8cfde6d)
- **fix(image): preserve source headers with crossOrigin and referrerPolicy (#58319)** (08c7781)
- **Fix require cycle (#58330)** (d5dcd2f)
- **fix(text): avoid mutating accessibilityState (#58318)** (c300f84)
- **Restore `paperComponentName: 'RCTSwitch'` to fix `@testing-library/react-native` queries (#58323)** (38fd9d5)
- **Fix per-node memory regression caused by Grid styles (#58311)** (63d118a)
- **Fix Animated listeners on nodes derived from Animated.Value (#58037)** (ce621bb)
- **Fix Cxx WebSocket write queue state (#58201)** (92cd588)
- **fix: stale VoiceOver value from async UI updates to Text (#58169)** (082d787)
- **Fix intermittent CoreServices XPC crash in RCTBlobManager blob name derivation (#58172)** (671705d)
- **Fix EventEmitter prototype-key event types (#58229)** (790289c)
- **Fix Maestro image flow keyboard handling (#58272)** (a344b4b)
- **fix: upgrade shell-quote to 1.8.4 (CVE-2026-9277) (#57663)** (fea5e11)
- **fix: make `codegenNativeComponent`'s return type nameable by consumers (#58102)** (391723e)
- **Fix Core dSYM Maven URLs in GitHub release notes (#58114)** (5d91707)
- **Fix Double prop defaults losing precision in generated Android delegates (#58070)** (2c4278d)
- **Fix asset catalog scale-to-file pairing for assets with non-standard scales (#57825)** (74b9847)
- **Fix viewability for zero-sized lists (#58074)** (c057b1f)
- **Fix DimensionValue props crashing ViewManagers on Android (#58039)** (091ac61)
- **Fix nullable float props crashing ViewManagers on Android (#58038)** (8d23b14)

### Backend
- **Release 0.88.0-rc.0** (f065722)
- **Bump hermes version** (981724d)
- **[LOCAL] Bump hermes-v1 to 260318099.0.1** (b113cf5)
- **Buffer async CallInvoker work with module calls (#58313)** (3ca6ea3)
- **Deploy 0.331.0 to xplat (#58332)** (f072ddb)
- **Cover react/renderer/imagemanager with Stable API guards (#58307)** (d44efb0)
- **Make assorted Libraries modules Flow strict-local (#57733)** (50a7d46)
- **Make AppRegistry and Core timers Flow strict-local (#57735)** (5211157)
- **Make assorted Components Flow strict-local (#57732)** (2920b6e)
- **Make Utilities modules Flow strict-local (#57729)** (a593f1a)
- **Make StyleSheet modules Flow strict-local (#57731)** (590ca97)
- **Make Blob/File/URL modules Flow strict-local (#57728)** (c72e8c7)
- **Make deprecated native module specs Flow strict-local (#57724)** (1a7c318)
- **Run codegen for formatted native component calls (#58257)** (0d64c9a)
- **Cover react/renderer/animationbackend with Stable API guards (#58304)** (5e9cce8)
- **stop baking an absolute HERMES_CLI_PATH into the app pbxproj (#58292)** (fcbeda1)
- **Reduce JNI allocations when importing native maps (#58274)** (bf0e377)
- **Cover react/runtime with Stable API guards (#58167)** (1b30a1f)
- **Cover `react/renderer/mounting` with guards (#58303)** (9be9186)
- **Cover `react/renderer/telemetry` with guards (#58301)** (477e14a)
- **Replace UAF death test with deterministic stale-delegate assertion (#58321)** (d9ad3f0)
- **Fold optional TextAttributes fields into a presence mask when hashing (#57984)** (8cf8e09)
- **Stop using `paperComponentName` in React Native core component specs (#58188)** (9048120)
- **Cover `react/featureflags` with Stable API guards (#58083)** (f970054)
- **Upgrade RendererBridging visibility to "for frameworks" (#58286)** (556e648)
- **Upgrade ScrollView visibility to "for frameworks" (#58287)** (6302cfe)
- **Upgrade Root visibility to "for frameworks" (#58282)** (2994ff2)
- **Upgrade Text visibility to "for frameworks" (#58284)** (02cb3ca)
- **Upgrade Modal visibility to "for frameworks" (#58285)** (e70d9e0)
- **Cover `react/renderer/animated` with guards (#58269)** (19e1cc7)
- **Attach TurboModule identity to exceptions rethrown from async and void calls (#58264)** (253a84c)
- **Upgrade Image visibility to "for frameworks" (#58283)** (d3b7893)
- **Guard private syntax preservation by transform profile (#58253)** (0c0e9f0)
- **Inline the last duplicate Platform.select key (#58249)** (bbdeb7d)
- **Wait for Maestro template app startup (#58289)** (49bcae1)
- **Make Maestro keyboard dismissal Android-only (#58288)** (ebab8d9)
- **xplat/js/react-native-github/packages/react-native/ReactAndroid/src/main/jni/react/reactnativeblob/BlobCollector.cpp (#58300)** (e0921e9)
- **Stop reading `buttons` back out of the pointer payload under construction (#58297)** (d4c8569)
- **Revert D118563281: Revert D118438065: [react-native][PR] Apply preset defaults without a Babel API** (bdce09d)
- **Revert D118438065: Apply preset defaults without a Babel API** (6306c4a)
- **Include preset dependencies in main cache keys (#58251)** (9c6efa2)
- **Apply preset defaults without a Babel API (#58254)** (9ad8c83)
- **Turn on `experimental.new_this_typing` in xplat (#58293)** (fdcce4f)
- **Cover `idlecallbacks` with Stable API guards (#58139)** (c148be6)
- **Cover `react/nativemodule/microtasks:microtasks` with Stable API guards (#58027)** (16f8889)
- **Cover `componentregistry/native` with guards (#58141)** (9994431)
- **Cover `react/nativemodule/dom` with Stable API guards (#58127)** (911e8fc)
- **Cover `react/nativemodule/devtoolsruntimesettings` with Stable API guards (#58122)** (db1d29e)
- **Update umbrella subspecs configuration (#58260)** (8e1559a)
- **Make the umbrella context nest (#58261)** (be2c14b)
- **Detect formatted React.createClass calls (#58256)** (619c8ae)
- **xplat/js/react-native-github/packages/react-native/Libraries/TypeSafety/RCTConvertHelpers.h (#58263)** (1b40443)
- **Cover `nativemodule/cputime` with guards (#58142)** (e54aea4)
- **Cover `react/renderer/animations` with guards (#58185)** (73778b3)
- **Cover `jsitooling` with guards (#58262)** (3557ce1)
- **Upgrade UIManager visibility to "for frameworks" (#58273)** (66de16d)
- **Cover `react/renderer/element` with Stable API guards (#58178)** (79d9ffe)
- **Reduce MatrixMathHelper allocations (#58275)** (90b2ba5)
- **Deploy 0.330.0 to xplat (#58268)** (ebdd848)
- **Pass a top-level JS null TurboModule arg to ObjC as nil, not NSNull (#58190)** (ea291d7)
- **Sort IntersectionObserver thresholds numerically (#58245)** (ee32dfc)
- **Make native event type cache prototype-safe (#58203)** (621ced7)
- **xplat/js/react-native-github/packages/react-native/ReactCommon/hermes/inspector-modern/chrome/HermesRuntimeSamplingProfileSerializer.cpp (#58276)** (049c24f)
- **Cover `jserrorhandler` with Stable API guards (#58180)** (4f003c4)
- **translation auto-update for batch 4/65 on master** (2fa37b1)
- **Cover `devtoolsruntimesettings` with Stable API guards (#58131)** (a862ba7)
- **Cover `jsc:JSCRuntime` with Stable API guards (#58023)** (bea8d9e)
- **Upgrade Flow in fbsource (#58192)** (2fa055f)
- **Remove unimplemented sendIntent from RCTLinkingManager (#58154)** (c6b137c)
- **Cover react/renderer/runtimescheduler with Stable API guards (#58150)** (183969b)
- **Defer the pull model's synchronous mount batch until the root view is attached (#58152)** (2f5a833)
- **Cover `jsiexecutor` with Stable API guards (#58133)** (eda9f45)
- **Cover the mutation observer modules with Stable API guards (#58126)** (ac2f12b)
- **Android: default User-Agent includes app name and version (#58147)** (04e50d5)
- **Skip non-owned subtrees in roundLayoutResultsToPixelGrid (#58144)** (6f03ca5)
- **Skip device-specific screenshot flows in Maestro Cloud (#58166)** (8a75a4d)
- **Convert additional Props/Style types to interface (#58062)** (593ae02)
- **Cover the intersection observer modules with Stable API guards (#58125)** (7eafaa2)
- **Eliminate untyped section in react-native (#58155)** (d6ba88e)
- **Cover `react/renderer/observers/events:events` with Stable API guards (#58121)** (94566e2)
- **Cover `react/nativemodule/webperformance` with Stable API guards (#58123)** (60b08c6)
- **Remove enableSchedulerDelegateInvalidation feature flag and guard (#58138)** (9682967)
- **Remove enableRuntimeSchedulerQueueClearingOnError feature flag (#58132)** (38cd932)
- **Cover `react/networking:networking` with Stable API guards (#58008)** (d83d106)
- **Stabilize Android E2E tests for ARM64 APKs (#58140)** (ea06a31)
- **Enable RuntimeScheduler queue clearing on error by default (#58129)** (14184ec)
- **Hold an app's spm.modules names to the same rules as a library's (#58060)** (39cd1df)
- **Resolve SwiftPM manifest naming collisions (#58044)** (962aeec)
- **Drop RCT_EXPORT_METHOD from RCTTestModule TurboModule (#58095)** (21f0889)
- **Refresh DeviceInfo constants on each read (#57715)** (9d10e39)
- **Cover 'react/performance' subtree with C++ stable API guards (#58116)** (9b12ba4)
- **Cover `react/renderer/scheduler` with Stable API guards (#58135)** (2751802)
- **Document the Native Animated architecture (#58106)** (969f9be)
- **Cover `react/nativemodule/defaults:defaults` with Stable API guards (#58118)** (e988b12)
- **Cover `react/timing:timing` with Stable API guards (#58026)** (70f172d)
- **Give devsupport networking its own dispatcher and pool (#58094)** (cc5dd59)
- **Cover the Hermes executor with Stable API guards (#58055)** (e519d03)
- **Remove FileIoHandler (#58096)** (e3598fa)
- **Cover `react/renderer/bridging` with Stable API guards (#58086)** (5b680c5)
- **Cover `react/renderer/leakchecker` with Stable API guards (#58090)** (a106fdf)
- **Animate filter without forcing a Fabric commit every frame (#58071)** (5a29c68)
- **Update AGENTS.md (#58099)** (f66a39d)
- **Remove glob: prefix in oss projects (#58100)** (c35d3b4)
- **Use legacy JNI packaging for ARM64 Android E2E APKs (#58103)** (4f9f24e)
- **Align TurboModule EventEmitter payload types across platforms (#58063)** (ab2ea64)
- **Honor a library's spm.name when scaffolding its Package.swift (#58033)** (482acee)
- **Fail with clear error message when a dep depends on an autolinking plugin host (#58087)** (90a539c)
- **Run Android E2E with ARM64 APKs (#58092)** (25ebffd)
- **Prevent DeviceInfo crash when WindowMetrics API is missing (#58077)** (3f9cc72)
- **Cover `react/runtime/nativeviewconfig` with Stable API guards (#58045)** (802cdd9)
- **Cover `jsinspector-modern/tracing` with Stable API guards (#58043)** (e877b16)
- **Cover `jsinspector-modern/cdp:jsinspector_cdp` with Stable API guards (#58042)** (847b443)
- **Cover `jsinspector-modern/tracing:profile` with Stable API guards (#57977)** (5858a05)
- **Drop the inert publicHeadersPath from spm.modules (#58059)** (5168f5f)
- **Read both export styles from a library's react-native.config.js (#58034)** (ed76640)
- **Cover the resize observer modules with Stable API guards (#58040)** (7de7b77)
- **Deploy 0.329.0 to xplat (#58082)** (e47416c)
- **Upgrade Flow in fbsource (#58076)** (0c7f63a)

### Docs
- **docs(readme): use relative links for LICENSE and SUPPORT.md (#58179)** (ba398a5)

_Recap by [Repo Wrapped](https://repowrapped.com/gh/react/react-native?utm_source=github-action)._