# What changed in react-native

> 222 changes in react-native 0.79 to 0.88 from its official release notes, upgrade guides and advisories: 21 breaking, 7 deprecations, 29 new APIs and options. Each one cited. Sources checked 2026-10-18. HTML: https://unstale.sh/npm/react-native/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## react-native 0.88

### Breaking changes

- Recycled ScrollViews no longer retain automatic keyboard inset behavior. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- Removed the experimental_ prefix from backgroundPosition. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- Removed the experimental_ prefix from backgroundRepeat. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- Removed the experimental_ prefix from backgroundSize. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- Async CallInvoker work is buffered alongside callable module calls and no longer runs before the JS bundle finishes evaluating. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- Codegen no longer crawls node_modules or follows symlinks when discovering components. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- FileReader now fires loadstart, throws InvalidStateError on overlapping reads, and exposes error as a DOMException; aborting a read also leaves it in the correct state. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- Platform.OS and Platform.select(...) inlining in react-native/babel-preset now requires inlinePlatform in addition to platform. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- The minimum Metro version is now 0.87.1 so upgrading projects resolve the same Metro as freshly created ones. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- Programmatic, non-user-initiated scrolls no longer cancel active touches in enclosing scroll views. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- Text aligns right by default in RTL when textAlign is unset, matching Android. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)

### Deprecations

- Deprecated InputAccessoryView on Android. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- Deprecated this import path; use react-native/setup-env instead. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- Deprecated fabricEnabled on Android ReactFragment. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- The String? overload is deprecated. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- The String? overload is deprecated. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- iOS prints warning advice when shadow styles are used without a solid background color. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)

### New APIs and options

- Added Java ArrayBuffer support for TurboModules with an explicit byte-ownership contract. Borrowed bytes are scoped to the synchronous call; copy them with arrayBufferWithCopiedBytes to retain them. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- Copy borrowed ArrayBuffer bytes with this method to keep them beyond the synchronous call that received them. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- Added a feature flag for image transparent tint color support. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- When enabled, a top-level JS null TurboModule argument is passed to Objective-C as nil instead of NSNull. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- Added an Android feature flag for the mounting coordinator pull model. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- Added object syntax for fontVariationSettings. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- Added fontVariationSettings support for Text and TextInput on Android and for Text on iOS. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- Android exposes network event reporting to third-party networking stacks as an unstable API. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- Users and agents can capture app screenshots with this command; performance screenshots support is also added to the experimental channel. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- iOS consumers can opt into removing legacy component interop through CocoaPods and SwiftPM; the option defaults off and may become the default in a future release. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- iOS consumers can opt into removing legacy module interop through CocoaPods and SwiftPM; the option defaults off and may become the default in a future release. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- Added a C++ umbrella header as the public entry point for react/featureflags. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- Added a C++ umbrella header as the public entry point for react/renderer/bridging. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- Added a C++ umbrella header as the public entry point for react/timing. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- Added iOS SceneDelegate lifecycle support. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)

### Performance

- The C++ method now takes moduleName and props by value. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)

### Behavior and default changes

- The imperative addEventListener, removeEventListener, and dispatchEvent API is enabled on native view refs in canary. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- Views with the listed checkbox, radio, combobox, dropdownlist, menuitem, spinbutton, tab, option, searchbox, slider, and treeitem roles are reachable via Full Keyboard Access. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- The app pbxproj no longer embeds an absolute, machine-specific HERMES_CLI_PATH; hermesc is resolved at build time instead. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- Generated SwiftPM manifests derive their iOS platform floor from the app deployment target, allowing dependencies with a higher minimum to be autolinked. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- Missing native component registrations are logged on iOS and Android. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- Supports a lazy raw color fallback when native tokens fail to resolve. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- Pull model mounting is deferred until the root attaches. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- If the desktop app fails to launch, the fallback opens DevTools as a standard window in the default browser without attempting Microsoft Edge. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- Long single-line TextInput placeholders are ellipsized to match iOS. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- The C++ method now takes moduleName and props by value. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- Android network requests now default to an app name and version User-Agent header, matching iOS. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)

### Tooling

- Codegen discovers third-party component libraries that do not have an iOS configuration. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- Added the clearAllLogs() method to LogBox TypeScript declarations. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- Added the isInstalled() method to LogBox TypeScript declarations. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- TypeScript module augmentation can now extend generated props and style types. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- The Babel preset now inlines Platform.OS and Platform.select(...) for React Native Platform imports in additional cases. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- Added TypeScript declarations for requestIdleCallback and cancelIdleCallback. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- Scaffolding reads the SwiftPM name from the podspec and stores it in package.json. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- React Native DevTools adds inspection of WebSocket events in the Network panel to the canary channel. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)

### Fixes and other changes

- Using accessibilityRole="tabbar" no longer crashes on Android. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- A view is properly re-enabled when disabled resets from true, so Pressable no longer remains partly untappable. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- addListener fires again for natively driven Animated values derived with add, subtract, multiply, divide, modulo, diffClamp, or interpolate. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- Text is no longer clipped when its container height decreases dynamically. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- aria-* state props are no longer ignored when accessibilityState is also present. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- Added missing TypeScript types for the public AssetRegistry API. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- Imagesets no longer pair the wrong files for assets with non-standard scales. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- Resetting border widths no longer clips children in rounded overflow-hidden views. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- Setting a percentage borderRadius on Image no longer crashes. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- Debug server host changes made through Change Bundle Location are persisted. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- Incremental iOS builds no longer encounter a ReactCodegen dependency-cycle error when this directory contains no Native* or *NativeComponent spec files. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- WebSockets no longer throttle bundle downloads or other dev server requests. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- DeviceInfo constants refresh after interface dimension changes. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- A ViewManager DimensionValue prop annotated with ReactProp no longer fails with an unrecognized YogaValue type. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- Reverted codegen rejection of ArrayBuffer TurboModule EventEmitter payloads so declarations that worked in 0.87 continue to build. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- A fatal JS error is reported instead of aborting the process if reading the error's extra data fails. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- Added the missing strictMode prop to FlatList TypeScript types. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- RCTReactNativeFactory forwards the callback to the user delegate. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- Image source headers are preserved when using crossOrigin or referrerPolicy. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- Image.getSize no longer rejects data: URIs. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- Image.getSizeWithHeaders no longer rejects data: URIs. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- Android represents tintColor as std::optional to support transparent (0) with props 2.0. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- Inline views inside Text no longer shrink with Android system font scale. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- The reactnative prefab exports jserrorhandler headers so external consumers of cxxreact/ErrorUtils.h can build. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- Changing keyboardType while a TextInput is focused updates the keyboard, matching legacy architecture behavior. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- Cell metrics are cleared on orientation change, and divide-by-zero is guarded against. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- Providing outlineColor as a numeric color value no longer crashes. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- The dotted and dashed outline styles render on views without border radii. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- The RCTSwitch paperComponentName is restored, fixing testing-library/react-native queries. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- The method no longer causes a main-thread watchdog hang. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- Calling RCTAppearance.setColorScheme() no longer crashes CarPlay apps when connectedScenes contains a non-UIWindowScene. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- Reverted the codegen change, restoring NSMutableData * for Objective-C TurboModule methods that take or return an ArrayBuffer, preserving compatibility with modules adopted in 0.87. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- Deriving blob names for network responses no longer intermittently causes a CoreServices/UTType XPC native crash. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- A debug-only crash from UITextView text-selection gestures on iOS 17 and later is fixed. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- A child-index mismatch is reported instead of raising NSRangeException while formatting the assert message. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- Resetting EmptyLayoutMetrics during recycling clears UIView.hidden on recycled views. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- Third-party New Architecture CocoaPods gain a React-cxxstableapi dependency to resolve React Native C++ API guard headers. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- Restored the .js fallback for legacy deep imports of untyped modules under the react-native-legacy-deep-imports condition. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- Bridgeless on-demand JS segment loading no longer causes an unhandled exception when the segment file is missing from cache. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- RedBox auto-retry no longer reloads while the app is backgrounded. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- Fixed the timeout option being ignored. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- Changing returnKeyType while a TextInput is focused updates the keyboard, matching legacy architecture behavior. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- RTL is detected from the active locale rather than an arbitrary installed locale. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- Pending tasks and rendering updates are now cleared when a task throws. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- Fixed behavior with rapid data updates. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- Autolinking no longer recreates library package roots on every sync, avoiding Xcode build failures for libraries that ship their own Package.swift. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- The final text line or trailing glyph is no longer clipped due to pixel-grid rounding precision loss. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- TextInput preserves its selection color when multiline changes. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- The soft keyboard appears when a long-press starts text selection in TextInput. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- Event emitters no longer throw when an event is emitted before the emitter callback is installed. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- Exceptions rethrown from async and void TurboModule calls include the module and method name. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- Extralight fonts are correctly classified as UIFontWeightUltraLight in RCTGetFontWeight. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- Added the missing ListItemComponent type to VirtualizedList props. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- VoiceOver text readout works when elements change asynchronously. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- Startup no longer crashes when the WindowMetrics API is missing on an inconsistent Android runtime. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- A nullable float ViewManager prop annotated with ReactProp no longer fails with an unrecognized Float type. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)
- Duplicate request headers are now appended according to the specification. (0.88.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.88.0)

## react-native 0.87

### Breaking changes

- SwiftPM rejects colliding or invalid module names instead of silently dropping a module from the build. (0.87.1) — [release notes](https://github.com/react/react-native/releases/tag/v0.87.1)
- The unused `spm.modules.publicHeaderFiles` field was removed from the `spm` section of `react-native.config.js`. (0.87.1) — [release notes](https://github.com/react/react-native/releases/tag/v0.87.1)
- SwiftPM now hard-fails with a clear error when an autolinking plugin host is referenced as a dependency. (0.87.1) — [release notes](https://github.com/react/react-native/releases/tag/v0.87.1)

### Tooling

- SwiftPM injection sets `SWIFT_ACTIVE_COMPILATION_CONDITIONS` to `DEBUG`. (0.87.1) — [release notes](https://github.com/react/react-native/releases/tag/v0.87.1)

### Fixes and other changes

- Header search paths containing spaces keep their quotes, preventing paths from being split incorrectly. (0.87.1) — [release notes](https://github.com/react/react-native/releases/tag/v0.87.1)
- The API is typed as an event handler rather than `any`. (0.87.1) — [release notes](https://github.com/react/react-native/releases/tag/v0.87.1)
- The callback payload is typed as `{value: number}` rather than `any`. (0.87.1) — [release notes](https://github.com/react/react-native/releases/tag/v0.87.1)
- Fixes a Hermes runtime/compiler version mismatch that caused “Wrong bytecode version” crashes in SwiftPM Release builds. (0.87.1) — [release notes](https://github.com/react/react-native/releases/tag/v0.87.1)
- The SwiftPM pipeline now reads the configuration file correctly when it uses default exports. (0.87.1) — [release notes](https://github.com/react/react-native/releases/tag/v0.87.1)
- Scaffolding the Swift manifest now reads `spm.name` from `react-native.config.js`. (0.87.1) — [release notes](https://github.com/react/react-native/releases/tag/v0.87.1)
- SwiftPM resolves naming collisions in generated manifests. (0.87.1) — [release notes](https://github.com/react/react-native/releases/tag/v0.87.1)

## react-native 0.86

### Breaking changes

- Custom fonts with an explicit fontWeight no longer render at the heaviest weight on the New Architecture. (0.86.3) — [release notes](https://github.com/react/react-native/releases/tag/v0.86.3)
- Returns true source dimensions rather than Fresco's downsampled values. (0.86.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.86.0)
- Returns true source dimensions rather than Fresco's downsampled values. (0.86.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.86.0)
- observe({type: 'event'}) now defaults durationThreshold to 104ms per the W3C Event Timing spec instead of reporting all events. (0.86.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.86.0)
- Values other than false no longer affect behavior; previously, any falsey value behaved like false. (0.86.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.86.0)
- Views with non-invertible transforms, such as scaleX: 0 or scaleY: 0, no longer receive touches on Android or iOS. (0.86.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.86.0)

### Deprecations

- The hook function's second argument is deprecated because it is not usable by apps; a stub that warns when used is passed instead. (0.86.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.86.0)

### New APIs and options

- Adds an Android interface that lets native modules react to window creation and destruction, such as for Modal dialogs. (0.86.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.86.0)
- Dev-mode Metro bundle loads call methods on this global when it is provided, allowing integrations to receive bundle-load reports. (0.86.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.86.0)
- Android channels hardware play and pause events. (0.86.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.86.0)
- Adds an asynchronous iOS check for whether the DevServer Packager is running, without blocking the UI thread while waiting for the request. (0.86.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.86.0)
- Adds plus-lighter as a supported mixBlendMode value. (0.86.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.86.0)
- Adds an iOS API for selectively modifying HTTP requests. (0.86.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.86.0)
- Adds an iOS API for modifying multipart data task requests before they are sent. (0.86.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.86.0)
- Dispatches FPS performance events for mouse-wheel and trackpad scroll interactions on Android. (0.86.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.86.0)
- Adds an iOS provider for selectively injecting WebSocket headers. (0.86.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.86.0)
- Android TextInput gains support for additional autoComplete autofill hints. (0.86.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.86.0)
- Adds this method to UIManagerBinding for accessing a View Transition instance. (0.86.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.86.0)
- Adds a UIManagerViewTransitionDelegate interface and APIs for React Native View Transitions. (0.86.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.86.0)

### Behavior and default changes

- The Android ripple option now accepts PlatformColor. (0.86.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.86.0)
- Android hardwareBackPress events now pass the event object, making the native event timestamp accessible. (0.86.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.86.0)
- Android NavigationBar now respects the theme's enforceNavigationBarContrast attribute. (0.86.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.86.0)
- On Android, the back button can dismiss LogBox notification toasts and the inspector overlay. (0.86.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.86.0)

### Tooling

- React Native DevTools supports light and dark mode emulation through this method. (0.86.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.86.0)
- React Native DevTools performance traces include a custom track for React Native Renderer operations. (0.86.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.86.0)

### Fixes and other changes

- Fixes a ConcurrentModificationException when getInitialURL re-enters during onHostResume. (0.86.3) — [release notes](https://github.com/react/react-native/releases/tag/v0.86.3)
- For <Modal> and other nested root host views, parentNode and parentElement now return the containing element instead of the document, preserving capture and bubble event propagation to ancestors. (0.86.3) — [release notes](https://github.com/react/react-native/releases/tag/v0.86.3)
- Fixed nodes with display: contents having hasNewLayout set incorrectly. (0.83.10, 0.86.2) — [release notes](https://github.com/react/react-native/releases/tag/v0.86.2), [release notes](https://github.com/react/react-native/releases/tag/v0.83.10)
- Fixes a promise that could remain unresolved indefinitely. (0.86.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.86.0)
- Fixes a promise that could remain unresolved indefinitely. (0.86.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.86.0)
- Fixes a promise that could remain unresolved indefinitely. (0.86.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.86.0)
- Prevents a crash caused by an unsupported background size value. (0.86.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.86.0)
- Fixes the blob content provider not working in the new architecture. (0.86.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.86.0)
- Fixes a crash when props 2.0 is enabled and borderStyle is set to undefined. (0.86.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.86.0)
- Fixes window values on Android versions below 15 when edge-to-edge is enabled. (0.86.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.86.0)
- Handles edge-to-edge when enforced by Android 15 or later, even if the edgeToEdgeEnabled Gradle property does not enable it. (0.86.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.86.0)
- C++ NativeAnimatedNodesManager processes the animation graph synchronously on every scroll event, fixing one-frame latency and matching Java behavior. (0.86.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.86.0)
- Fixes timestamp injection overriding native timestamps and corrects propagation of event timestamps from host platforms to JavaScript. (0.86.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.86.0)
- Uses the stable Hermes V1 release instead of the legacy nightly to fix a startup crash caused by a JSI ABI mismatch. (0.86.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.86.0)
- Fixes Android JNI registration so calling disable no longer invokes enable. (0.86.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.86.0)
- Fixes image content disappearing on Android API 24 when antialiased border-radius clipping is applied. (0.86.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.86.0)
- Fixes IPv6 handling for packager and inspector connections. (0.86.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.86.0)
- Fixes behavior on Android 15 and later, and when edgeToEdgeEnabled is enabled. (0.86.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.86.0)
- Fixes failure to respond to IME height changes, such as toggling the emoji panel or predictive bar. (0.86.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.86.0)
- Fixes an activity context memory leak when using bridgeless mode. (0.86.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.86.0)
- Fixes incorrect coordinates when edge-to-edge is enabled. (0.86.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.86.0)
- Forwards style to Modal's inner container View with precedence that applies consumer styles without overriding transparent or backdropColor. (0.86.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.86.0)
- Catches OutOfMemoryError during response processing to prevent app crashes. (0.86.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.86.0)
- Persists PODFILE_DIR relative to SRCROOT so project.pbxproj is portable across machines. (0.86.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.86.0)
- Fixes an NSRangeException crash when the text range is out of bounds. (0.86.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.86.0)
- Prevents a crash when delegate callbacks fire after module invalidation. (0.86.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.86.0)
- WebSocket scheme and port are derived from the dev server URL, supporting HTTPS dev servers. (0.86.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.86.0)
- Fixes inspector server host resolution for HTTPS bundle URLs by omitting the default port. (0.86.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.86.0)
- Fixes path resolution when Pods/ is a symlink. (0.86.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.86.0)
- Fixes an onHostPause crash in the legacy architecture when no feature flag is set. (0.86.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.86.0)
- Guards against transient non-descendant accessibility traversal crashes on Android. (0.86.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.86.0)
- Fixes an iOS crash when changing the value of `removeClippedSubviews`. (0.83.10, 0.86.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.83.10), [release notes](https://github.com/react/react-native/releases/tag/v0.86.0)
- Prevents the FPS performance listener from being cleared when a ScrollView is recycled. (0.86.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.86.0)
- Applies StatusBar configuration to Modal windows, fixing visual inconsistencies. (0.86.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.86.0)
- Fixes auto-scroll failing to respond to IME height changes, such as toggling the emoji panel or predictive bar. (0.86.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.86.0)
- Fixes setAutoCapitalize stripping numeric input flags, which affected minus-sign input on Samsung keyboards. (0.86.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.86.0)
- Fixes React-CoreModules compilation by providing the missing React-featureflags header path. (0.86.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.86.0)
- Loads RCTDefines.h first in the prebuilt React umbrella and drops the module wildcard so RCT_* macros propagate to consumer pods. (0.86.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.86.0)
- Skips Hermes pods when USE_THIRD_PARTY_JSC is enabled and fixes a compilation error in createJSRuntimeFactory. (0.86.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.86.0)
- Preserves a Cookie header passed through the WebSocket constructor's headers option. (0.86.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.86.0)
- Fixes a crash when clearing zIndex with props 2.0 enabled. (0.86.0) — [release notes](https://github.com/react/react-native/releases/tag/v0.86.0)

## react-native 0.85

### Fixes and other changes

- The build now uses the pinned Hermes version when version.properties is not 1000.0.0, preventing it from selecting the wrong Hermes version. (0.85.3) — [release notes](https://github.com/react/react-native/releases/tag/v0.85.3)

## react-native 0.84

### Fixes and other changes

- Included builds in monorepos now resolve gradle.properties from parent Gradle start parameters before falling back to ../../android/gradle.properties, allowing hermesV1Enabled to be inherited correctly. (0.83.3, 0.84.1) — [release notes](https://github.com/react/react-native/releases/tag/v0.83.3), [release notes](https://github.com/react/react-native/releases/tag/v0.84.1)
- ReactPlugin.kt no longer always sets hermesV1Enabled to true. (0.84.1) — [release notes](https://github.com/react/react-native/releases/tag/v0.84.1)
- Symbol fallbacks are provided for inspector-modern/chrome/Registration.h when HermesV1 is disabled. (0.84.1) — [release notes](https://github.com/react/react-native/releases/tag/v0.84.1)

## react-native 0.83

### New APIs and options

- Android devsupport now supports a custom header. (0.83.3) — [release notes](https://github.com/react/react-native/releases/tag/v0.83.3)

### Performance

- Prebuilt iOS binaries are cached across clean installs and projects, avoiding repeated downloads from Maven. (0.83.10) — [release notes](https://github.com/react/react-native/releases/tag/v0.83.10)

### Tooling

- Adds RCTDevSupportHeaders to the React Umbrella for iOS precompiled binaries. (0.83.4) — [release notes](https://github.com/react/react-native/releases/tag/v0.83.4)

### Fixes and other changes

- Fixes Yoga node ownership for `display: contents` in absolutely positioned subtrees. (0.83.10) — [release notes](https://github.com/react/react-native/releases/tag/v0.83.10)
- The response URL is correct after an Android redirect. (0.83.10) — [release notes](https://github.com/react/react-native/releases/tag/v0.83.10)
- Apps using additional Hermes runtimes, such as Reanimated, are no longer incorrectly flagged as multi-host. (0.83.10) — [release notes](https://github.com/react/react-native/releases/tag/v0.83.10)
- The queue size is limited to prevent the Android inspector from being force-disconnected by large payloads. (0.83.10) — [release notes](https://github.com/react/react-native/releases/tag/v0.83.10)
- Provides symbol fallbacks for inspector-modern/chrome/Registration.h when HERMES_V1_ENABLED is set. (0.83.6) — [release notes](https://github.com/react/react-native/releases/tag/v0.83.6)
- Fixes the iOS banner getting stuck after reloads in quick succession. (0.83.6) — [release notes](https://github.com/react/react-native/releases/tag/v0.83.6)
- The color scheme in appearance state is now fixed after setting it to unspecified. (0.83.5) — [release notes](https://github.com/react/react-native/releases/tag/v0.83.5)
- On Android, file:// URIs passed to fetch no longer fail. (0.83.5) — [release notes](https://github.com/react/react-native/releases/tag/v0.83.5)
- Fixes a Hermes crash when an async void TurboModule method throws NSException by re-throwing instead of converting it to JSError on the wrong thread. (0.83.5) — [release notes](https://github.com/react/react-native/releases/tag/v0.83.5)
- On Android, file:// URIs passed to XMLHttpRequest no longer fail. (0.83.5) — [release notes](https://github.com/react/react-native/releases/tag/v0.83.5)
- Fixed rncore tarball extraction for EdenFS compatibility. (0.83.3) — [release notes](https://github.com/react/react-native/releases/tag/v0.83.3)
- Fixes a Network error that could occur on Android when uploading binary data with FormData. (0.83.1) — [release notes](https://github.com/react/react-native/releases/tag/v0.83.1)

## react-native 0.82

### Fixes and other changes

- Fixes the prebuild cp command so it works with GNU coreutils. (0.80.3, 0.81.5, 0.82.1) — [release notes](https://github.com/react/react-native/releases/tag/v0.80.3), [release notes](https://github.com/react/react-native/releases/tag/v0.81.5), [release notes](https://github.com/react/react-native/releases/tag/v0.82.1)
- Fixes transform representation when a view is originally zero-sized. (0.81.5, 0.82.1) — [release notes](https://github.com/react/react-native/releases/tag/v0.81.5), [release notes](https://github.com/react/react-native/releases/tag/v0.82.1)

## react-native 0.81

### New APIs and options

- ReactTextViewManager can now be extended. (0.81.5) — [release notes](https://github.com/react/react-native/releases/tag/v0.81.5)

### Fixes and other changes

- Fixes an iOS crash when application.delegate.window is nil. (0.80.3, 0.81.5) — [release notes](https://github.com/react/react-native/releases/tag/v0.80.3), [release notes](https://github.com/react/react-native/releases/tag/v0.81.5)
- Fixes permission requests that do not always resolve on Android 16. (0.80.3, 0.81.5) — [release notes](https://github.com/react/react-native/releases/tag/v0.80.3), [release notes](https://github.com/react/react-native/releases/tag/v0.81.5)
- Fixes Switches on the legacy architecture. (0.81.5) — [release notes](https://github.com/react/react-native/releases/tag/v0.81.5)

## react-native 0.80

### Behavior and default changes

- Stabilizes custom accessibility action IDs for TalkBack. (0.80.3) — [release notes](https://github.com/react/react-native/releases/tag/v0.80.3)

### Fixes and other changes

- Fixes a race condition that could leave codegen libraries missing sources. (0.80.3) — [release notes](https://github.com/react/react-native/releases/tag/v0.80.3)
- Fixes missing dependencies in Codegen, preventing dependency-related build issues. (0.80.3) — [release notes](https://github.com/react/react-native/releases/tag/v0.80.3)
- Updates font scale on Android when RootView is recreated. (0.80.3) — [release notes](https://github.com/react/react-native/releases/tag/v0.80.3)
- Accessors inside HeadlessJsTaskService are open again, allowing subclasses to override them. (0.80.3) — [release notes](https://github.com/react/react-native/releases/tag/v0.80.3)
- Fixes an Android freeze in the legacy architecture when Metro refreshes. (0.80.3) — [release notes](https://github.com/react/react-native/releases/tag/v0.80.3)
- Fixes RefreshControl recycling on iOS. (0.80.3) — [release notes](https://github.com/react/react-native/releases/tag/v0.80.3)
- Fixes RefreshControl not refreshing on initial mount on iOS. (0.80.3) — [release notes](https://github.com/react/react-native/releases/tag/v0.80.3)
- Setting maxLength to 0 now prevents typing on iOS. (0.80.3) — [release notes](https://github.com/react/react-native/releases/tag/v0.80.3)

## react-native 0.79

### Breaking changes

- React Native 0.79.7 is out of support, which may affect decisions about continuing to use this release. (0.79.7) — [release notes](https://github.com/react/react-native/releases/tag/v0.79.7)

### Fixes and other changes

- On Android, missing parent view state in updateLayout is now treated as a soft error. (0.79.7) — [release notes](https://github.com/react/react-native/releases/tag/v0.79.7)
