Skip to content

[RN][Changelog] Add changelog for v0.89.0-rc.0 - #59795

Merged
meta-codesync[bot] merged 2 commits into
mainfrom
changelog/v0.89.0-rc.0
Nov 4, 2026
Merged

meta-codesync[bot] merged 2 commits into
mainfrom
changelog/v0.89.0-rc.0

Conversation

@fabriziocucci

@fabriziocucci fabriziocucci commented Nov 4, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Adds the ## v0.89.0-rc.0 section, generated against v0.88.1: 342 entries. Opened by the release copilot.

Before landing:

  • Confirm the 87 prefixes the copilot added (below).
  • Prefix the 252 entries still without one, the ones with no **Scope**: in the diff.
  • Check the 30 flags (below).
  • Drop internal entries and promote user-facing ones.
Prefixes added (87)
  • Image: Fix explicit fadeDuration being ignored on newly created Images
  • CLI: Platform registration config for the Community CLI is removed from the react-native package. No breaking change with react-native-community/cli 21.x (required).
  • Text: Add lineBreak and wordBreak props to Text (CSS line-break / word-break) for strict/loose line breaking and phrase-based breaking on Android 13+
  • New Architecture: Remove DefaultNewArchitectureEntryPoint.bridgelessEnabled and the deprecated three-argument load(turboModulesEnabled, fabricEnabled, bridgelessEnabled) overload; bridgeless is always enabled in the New Architecture
  • Babel: Allow react-native/babel-preset to read enableBabelRuntime and babelRuntimeModuleName from Babel caller data
  • Text: Add experimental longest-line width sizing for wrapped Text
  • CocoaPods: Add RN_STRICT_API and RN_ALLOW_FRAMEWORKS CocoaPods opt-ins to enforce React Native's C++ stable API in app and library native code
  • Yoga: Yoga layout no longer uses dynamic_cast for every child to check its type
  • Metro: Bump Metro minimum to 0.87.2
  • VirtualizedList: VirtualizedList: Skip the cells state update when the render window doesn't change
  • Codegen: Codegen-generated C++ includes React Native through module umbrella headers
  • Animated: Avoid per-call allocations in Animated string and color interpolation
  • ShadowNode: Avoid a redundant copy of the children list in ShadowNode::cloneTree and UIManager::updateShadowTree
  • VirtualizedList: Reduce allocations in the VirtualizedList render and scroll path (avoid per-render Set allocation for stickyHeaderIndices, per-scroll-event Map iterator for the empty nested-list collection, and per-call orientation object allocation)
  • Kotlin: Bumped the Gradle plugin minimum Kotlin API version to 2.1
  • Kotlin: Update Kotlin to 2.3.21
  • Text: Text nodes cloned without changes share their measured layout instead of creating a new JNI global reference
  • Text: Skip an unnecessary measuring pass when laying out Text
  • Kotlin: Bump Kotlin to 2.2.10 to match the version required by AGP 9.2.1
  • StatusBar: Reland iOS 27 StatusBar fix with tvOS guards
  • SwiftPM: SwiftPM: spm add and spm update write React Native's build settings to ReactNativeSPM/ReactNativeSPM.xcconfig and its build scripts to ReactNativeSPM/Scripts/, so a version bump no longer changes project.pbxproj. A configuration that uses its own xcconfig must now #include the generated file, and a target setting that hides React Native's value must add $(inherited). spm prints the exact fix in both cases.
  • TextInput: Remove deprecated TextInput blurOnSubmit prop (use submitBehavior instead)
  • APIs: Remove experimental split-bundle loading APIs
  • API: Remove deprecated RCTProfile systrace API
  • Hermes: Retain Unicode regex semantics while lowering property escapes for Hermes builds
  • VirtualizedList: Avoid delaying urgent VirtualizedList rendering after queued no-op updates
  • Hermes: Babel preset: Hermes profiles no longer lower generators, for...of, optional chaining, nullish coalescing or optional catch binding in dev, matching release
  • Hermes: Babel preset: Hermes profiles no longer lower generators, for...of, optional chaining, nullish coalescing or optional catch binding in dev, matching release
  • Text: Avoid state updates and re-layout of unchanged Text siblings when a sibling changes
  • VirtualizedList: VirtualizedList: clear the pending batch-update timer id in componentWillUnmount so a list hidden and revived by Suspense (react-freeze / freezeOnBlur) resumes rendering new cells
  • Metro: Scope Metro INTERNAL_CALLSITES_REGEX to the react-native package to avoid collapsing unrelated frames
  • React Native DevTools: Fix React Native DevTools staying open but unresponsive after the debugged React Native instance is destroyed
  • TypeScript: Fix the legacy TypeScript ImageStyle type rejecting valid ViewStyle props such as filter, boxShadow and mixBlendMode
  • Image: Fix explicit resizeMode="stretch" being ignored on newly created Android Images
  • New Architecture: Fix minimumFontScale with adjustsFontSizeToFit in the New Architecture
  • ESLint: Fixed the issue when using the flat config with ESLint v9.
  • Babel: experimentalImportSupport in a Metro config now takes effect when react-native/babel-preset is named in a project Babel config
  • Babel: Preserve side effects from discarded Platform.select property initializers in the Babel preset.
  • IntersectionObserver: IntersectionObserver rootMargin now affects intersection against a clipping root
  • Babel: Preserve side effects from discarded Platform.select property initializers in the Babel preset.
  • Codegen: Codegen now also reads react-native.config.cjs, so libraries declared in it are no longer skipped in ESM projects
  • Hermes: Fix Hermes source builds after the Hermes repository move
  • Text: Fix single-line LTR Text being ellipsized inside its measured width on Android 15+
  • TextInput: Fix TextInput outline collapsing when its padding is below the theme default
  • TextInput: Fix TextInput crash when an Enter key-up triggers native focus search
  • TextInput: Prevent TextInput from preventing scroll gestures
  • Text: aria-live on Text now sets accessibilityLiveRegion
  • ScrollView: Finish interrupted ScrollView drags when receiving ACTION_CANCEL.
  • ScrollView: Fix Text letterSpacing and ScrollView scrollsChildToFocus, snapToAlignment, decelerationRate, nestedScrollEnabled and sendMomentumEvents with Props 2.0
  • Modal: Fix crash when dismissing a Modal whose Activity has already been destroyed
  • View: Fix View background, perspective, border width, shadow and gradient props with Props 2.0
  • Image: Fix Image sources, headers and a removed tintColor with Props 2.0
  • Text: Fix multi-paragraph RTL Text with blank or LTR lines being drawn off-screen on Android 15+
  • Text: Fix fontVariant being ignored on Text that doesn't also set fontFamily, fontWeight or fontStyle
  • Hermes: Fix building Hermes from source on Windows failing on the JSI_DIR path
  • Text: Respect maxFontSizeMultiplier for lineHeight and letterSpacing in Text
  • Text: Fix ellipsizeMode="clip" being ignored on newly created Text
  • ScrollView: Fix crash when setting a percentage borderRadius on Text, TextInput, and ScrollView
  • ScrollView: Fix crash in ScrollView accessibility delegate when accessibilityCollection is set and a child (e.g. a list header or footer) has no accessibilityCollectionItem
  • Modal: Fix Android navigation bar transparency for Modal
  • MapBuffer: Make the React/View.h, React/Debug.h and React/MapBuffer.h umbrella headers resolvable in CMake builds
  • Text: Text: the last line no longer disappears on Android 15+ when a font's glyphs overhang their advance (ReactTextView now breaks lines on advances, matching measurement)
  • Switch: Report a disabled Switch as disabled to VoiceOver and XCUITest
  • TextInput: Avoid a synchronous main-thread pasteboard query (and possible app hang) when a focused TextInput's keyboard becomes active on app foreground
  • View: aria-modal on View now sets accessibilityViewIsModal
  • Text: Fix Text containing only "I" being measured zero wide after an empty Text with the same style was measured
  • TextInput: Fix TextInput placeholder drawn below centre after its view is reused from a TextInput with lineHeight
  • TextInput: Preserve transformed TextInput edits without synchronously rewriting text inside UIKit delegate callbacks
  • Switch: Fix crash in Switch when onChange fires after the view has been recycled
  • Text: Text no longer redraws when only its position changes, such as when content above it changes height
  • TextInput: Preserve transformed TextInput edits without synchronously rewriting text inside UIKit delegate callbacks
  • TextInput: Fix caret and text of a single-line TextInput drawn above center while focused, after its view was reused from a TextInput with a larger font
  • Text: Fix words jumping between lines while LayoutAnimation resizes a Text
  • View: Opacity changes no longer rebuild a View's borders, shadows and background layers, which made opacity animations over many styled Views drop frames
  • Hermes: Fix Hermes Debug link failures after installing another pod following a Release build.
  • ScrollView: Fix recycled RTL horizontal ScrollView starting at the end instead of the start
  • Text: Text no longer renders clipped when mounted from a synchronous event during layout
  • CocoaPods: Apply React Native's minimum iOS deployment target to CocoaPods resource bundles.
  • Modal: Fix Modal staying onscreen when dismissed while presenting a child view controller
  • Image: Emit Image's onLoadStart before onLoad/onLoadEnd when the image request has already completed
  • TextInput: Preserve TextInput returnKeyType when switching between single-line and multiline backing views.
  • Hermes: Bump Hermes to 260318099.0.6
  • SwiftPM: SwiftPM autolinking: don't warn about spm fields mirrored in swiftpmConfig
  • Blob: Fix Blob.slice end handling when start is omitted
  • Flow: Upgrade Flow in fbsource
  • Flow: Upgrade Flow in fbsource
  • ScrollView: Fix Text letterSpacing and ScrollView scrollsChildToFocus, snapToAlignment, decelerationRate, nestedScrollEnabled and sendMomentumEvents with Props 2.0
Consistency flags (30)
  • Platform registration config for the Community CLI is removed from the react-native package. No breaking change with react-native-community/cli 21.x (required). (Breaking): under Breaking, but its commit removes no API symbol and carries no [BREAKING] tag: confirm it breaks a consumer
  • Add lineBreak and wordBreak props to Text (CSS line-break / word-break) for strict/loose line breaking and phrase-based breaking on Android 13+ (Breaking, Android specific): under Breaking, but its commit removes no API symbol and carries no [BREAKING] tag: confirm it breaks a consumer
  • Add unstable_Immediate UpdateMode support in updateState. (Added, Android specific): changes public API (removed updateState(0), removed updateStateImpl(0)) but is under Added: breaking, removal or a safe signature change?
  • Add support for direct progress accessibility actions (Added, Android specific): changes public API (removed "activate" | "decrement" | "escape" | "increment" | "longpress" | "magicTap") but is under Added: breaking, removal or a safe signature change?
  • Add injectable launchOptions and performanceLogger module APIs (Added, iOS specific): changes public API (removed public virtual instancetype initWithViewRegistry:moduleRegistry:bundleManager:callableJSModules:(RCTViewRegistry* viewRegistry, RCTModuleRegistry* moduleRegistry, RCTBundleManager* bundleManager, RCTCallableJSModules* callableJSModules)) but is under Added: breaking, removal or a safe signature change?
  • Yoga layout no longer uses dynamic_cast for every child to check its type (Changed): changes public API (removed constexpr char facebook::react::LayoutConformanceShadowNodeComponentName[]) but is under Changed: breaking, removal or a safe signature change?
  • Avoid VoiceOver interruptions from hidden text updates (Changed): only touches iOS code: belongs under iOS specific?
  • Share one JNI global reference between copies of a prepared text layout, instead of creating one per copy (Changed, Android specific): changes public API (removed public using PreparedTextLayout = facebook::react::SafeReleaseJniRef<jni::global_reffacebook::react::JPreparedLayout>) but is under Changed: breaking, removal or a safe signature change?
  • Add nullability annotations to RCTBridgeModule.h. Module registry and view registry lookups, methodsToExport, promise resolve/reject arguments, and weak module properties such as bridge and moduleRegistry are now nullable. methodQueue is now nonnull, so Swift overrides must be declared as DispatchQueue rather than DispatchQueue!. (Changed, iOS specific): changes public API (removed public virtual void invokeModule:method:withArgs:(NSString* moduleName, NSString* methodName, NSArray* args), removed public virtual void invokeModule:method:withArgs:onComplete:(NSString* moduleName, NSString* methodName, NSArray* args, dispatch_block_t onComplete), removed public virtual id moduleForClass:(Class moduleClass)) but is under Changed: breaking, removal or a safe signature change?
  • Pass AttributedString by const reference in RCTTextLayoutManager and add a move constructor for AttributedStringBox. (Changed, iOS specific): changes public API (removed public virtual facebook::react::LinesMeasurements getLinesForAttributedString:paragraphAttributes:size:(facebook::react::AttributedString attributedString, facebook::react::ParagraphAttributes paragraphAttributes, CGSize size), removed public virtual facebook::react::TextMeasurement measureAttributedString:paragraphAttributes:layoutContext:layoutConstraints:(facebook::react::AttributedString attributedString, facebook::react::ParagraphAttributes paragraphAttributes, facebook::react::TextLayoutContext layoutContext, facebook::react::LayoutConstraints layoutConstraints), removed public virtual std::shared_ptr getEventEmitterWithAttributeString:paragraphAttributes:frame:atPoint:(facebook::react::AttributedString attributedString, facebook::react::ParagraphAttributes paragraphAttributes, CGRect frame, CGPoint point)) but is under Changed: breaking, removal or a safe signature change?
  • Fix native-driven animations stepping backward when a native event update runs between frames with the shared animated backend (Fixed): changes public API (removed onAnimationFrameForBackend(1), removed pullAnimationMutations(0)) but is under Fixed: breaking, removal or a safe signature change?
  • Fix VirtualView initial mode when initialHidden is not sent on creation (Fixed): changes public API (removed public bool initialHidden) but is under Fixed: breaking, removal or a safe signature change?
  • Non-layout props animated on the shared animation backend no longer freeze while the same view or another view on the surface animates a layout prop (Fixed): changes public API (removed update(1), removed struct facebook::react::SurfaceUpdates {, removed public bool hasLayoutUpdates) but is under Fixed: breaking, removal or a safe signature change?
  • Fix Text letterSpacing and ScrollView scrollsChildToFocus, snapToAlignment, decelerationRate, nestedScrollEnabled and sendMomentumEvents with Props 2.0 (Fixed, Android specific): changes public API (removed public facebook::react::ScrollViewSnapToAlignment snapToAlignment) but is under Fixed: breaking, removal or a safe signature change?
  • Fix accessibilityState, a removed accessibilityRole, role or accessibilityValue, and role="none" with Props 2.0 (Fixed, Android specific): changes public API (removed public facebook::react::Role role) but is under Fixed: breaking, removal or a safe signature change?
  • Fix preallocated views leaking when enableMountingCoordinatorPullModelAndroid is enabled (Fixed, Android specific): changes public API (removed preallocateShadowView(0)) but is under Fixed: breaking, removal or a safe signature change?
  • Remove legacy TimingModule.kt (Fixed, Android specific): changes public API (removed public final class com/facebook/react/modules/core/TimingModule : com/facebook/fbreact/specs/NativeTimingSpec, com/facebook/react/modules/core/JavaScriptTimerExecutor {, removed public static final field Companion Lcom/facebook/react/modules/core/TimingModule$Companion, removed public static final field NAME Ljava/lang/String) but is under Fixed: breaking, removal or a safe signature change?; describes a removal but is under Fixed
  • Preserve explicitly transparent colors during Props 2.0 reconciliation. (Fixed, Android specific): changes public API (removed using facebook::react::Color = int32_t) but is under Fixed: breaking, removal or a safe signature change?
  • Fix missing nullability annotations in networking headers. (Fixed, iOS specific): changes public API (removed public virtual instancetype initWithURL:partHandler:progressHandler:(NSURL* url, RCTMultipartDataTaskCallback partHandler, RCTMultipartProgressCallback progressHandler)) but is under Fixed: breaking, removal or a safe signature change?
  • Remove legacy RCTTimingModule (Fixed, iOS specific): changes public API (removed init(0), removed public virtual void registerModuleForFrameUpdates:withModuleHolder:(id module, id moduleHolder), removed protocol RCTDisplayLinkModuleHolder {) but is under Fixed: breaking, removal or a safe signature change?; describes a removal but is under Fixed
  • Create StateWrapperImpl from C++ with its state (Unknown): only touches Android code: belongs under Android specific?
  • Always run cmake --build for Fantom's tester (Unknown): only touches Android code: belongs under Android specific?
  • Migrate DeviceInfoModuleTest off JUnit3 TestCase base (Unknown): only touches Android code: belongs under Android specific?
  • Translation auto-update for Apps/Wilde/scripts/intl-config.json on master (Unknown): only touches iOS code: belongs under iOS specific?
  • Translation auto-update for Apps/Wilde/scripts/intl-config.json on master (Unknown): only touches iOS code: belongs under iOS specific?
  • Translation auto-update for Apps/Wilde/scripts/intl-config.json on master (Unknown): only touches iOS code: belongs under iOS specific?
  • Translation auto-update for Apps/Wilde/scripts/intl-config.json on master (Unknown): only touches iOS code: belongs under iOS specific?
  • Translation auto-update for Apps/Wilde/scripts/intl-config.json on master (Unknown): only touches iOS code: belongs under iOS specific?
  • Fix Text letterSpacing and ScrollView scrollsChildToFocus, snapToAlignment, decelerationRate, nestedScrollEnabled and sendMomentumEvents with Props 2.0 (Unknown, Failed to parse): changes public API (removed public facebook::react::ScrollViewSnapToAlignment snapToAlignment) but is under Unknown: breaking, removal or a safe signature change?
  • Fix accessibilityState, a removed accessibilityRole, role or accessibilityValue, and role="none" with Props 2.0 (Unknown, Failed to parse): changes public API (removed public facebook::react::Role role) but is under Unknown: breaking, removal or a safe signature change?

Changelog:

[INTERNAL] - Add changelog for v0.89.0-rc.0

Test Plan:

N/A

@meta-cla meta-cla Bot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label Nov 4, 2026
@facebook-github-tools facebook-github-tools Bot added p: Facebook Partner: Facebook Partner Shared with Meta Applied via automation to indicate that an Issue or Pull Request has been shared with the team. labels Nov 4, 2026
@meta-codesync

meta-codesync Bot commented Nov 4, 2026

Copy link
Copy Markdown

@fabriziocucci has imported this pull request. If you are a Meta employee, you can view this in D129612731.

Give every entry a scope, move the real changes out of Unknown, file a few
misfiled entries in the right section, drop internal ones (CI, Fantom, tests,
translation syncs, bot commits) and duplicates of the same change.
@meta-codesync
meta-codesync Bot merged commit a8491cc into main Nov 4, 2026
54 checks passed
@react-native-bot

Copy link
Copy Markdown
Collaborator

This pull request was successfully merged by @fabriziocucci in a8491cc

When will my fix make it into a release? | How to file a pick request?

@react-native-bot react-native-bot added the Merged This PR has been merged. label Nov 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. Merged This PR has been merged. p: Facebook Partner: Facebook Partner Shared with Meta Applied via automation to indicate that an Issue or Pull Request has been shared with the team.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants