Skip to content

feat: merge 0.84-merge into main#3030

Draft
Saadnajmi wants to merge 458 commits into
microsoft:mainfrom
Saadnajmi:0.84-merge
Draft

feat: merge 0.84-merge into main#3030
Saadnajmi wants to merge 458 commits into
microsoft:mainfrom
Saadnajmi:0.84-merge

Conversation

@Saadnajmi

@Saadnajmi Saadnajmi commented Jul 16, 2026

Copy link
Copy Markdown
Collaborator

Summary

Merge up to the merge base of 0.84-stable (the first commit on the upstream 0.84-stable branch, 2166ab782a6), prepping this branch for the 0.84 release. For the cross-platform 0.84 changes (Hermes V1, precompiled iOS binaries, removal of legacy iOS architecture components, Node.js 22, etc.), see the RN 0.84 release notes.

The branch is rebased onto Microsoft main at ef09dd72. The recreated mechanical merge is 86e07385 with exact parents ef09dd72 (Microsoft main) and 2166ab78 (the Facebook 0.84 fork point); the 0.84-stable tip is not merged.

New for react-native-macos since 0.83:

Build & distribution

  • Adopt upstream DotSlash debugger distribution while retaining Electron as a development-only dependency
  • Port the upstream SwiftPM Fabric target split without dropping or duplicating macOS sources
  • Retain the complete fork-only react-native-test-library package

Fabric, accessibility & input on macOS

  • Port new 0.84 Apple and SwiftUI sources to AppKit/RCTUIKit
  • Adopt upstream HostInstance focus and blur command signatures
  • Port RCTViewAccessibilityElement to upstream's setter-based accessibility ordering while keeping the macOS proxy leaf-only and synchronized
  • Align keyboard events with upstream's payload and KeyDownEvent / KeyUpEvent model while preserving emitted macOS fields

Hermes

  • Keep Hermes source-built from a merge-base-compatible revision for 0.84
  • Avoid the moving-nightly JSI ABI mismatch while retaining the fork's Microsoft Hermes resolution path

The history is intentionally layered into a mechanical merge commit followed by focused, reversible macOS ports so the merge can be recreated or rebased cleanly.

Conflict resolution appendix

The original fork-point merge produced 153 conflicted paths / 281 conflict hunks. Its final adjudication was 11 upstream/stale-local, 28 preserve-macOS, 242 combine, 0 unresolved. Rebasing onto current Microsoft main produced 55 unique index-conflict paths: 53 were already in the original inventory and two were new base-integration paths (.flowconfig and packages/rn-tester/Podfile). The combined unique inventory below therefore contains 155 paths. Package manifests, lockfiles, and generated project metadata were reconciled mechanically; the table below focuses on behavior and architecture that warrant reviewer attention.

Reviewer guide

Area Upstream 0.84 change macOS behavior retained Final resolution
App setup, bridge, root views, and wrappers New bundle configuration flows through RCTReactNativeFactory/RCTHost; legacy-architecture compile-out and header moves reshape AppDelegate setup. macOS window placement, surface-hosting dev menu support, RCTUIKit types, and wrapper/controller hosting remain required. Combine: upstream factory/configuration structure with narrow macOS platform branches in AppDelegate, setup utilities, root-view factories, bridge utilities, and wrappers.
View focus/blur Upstream PR react#54085 generalized focus/blur to HostInstance command arguments across JS and native code. The fork already exposed focus/blur, but with older no-argument command signatures and macOS native implementations. Upstream model + macOS implementation: ViewNativeComponent.js takes the upstream signature; native commands remain available on macOS and duplicate UIKit-only methods are platform-guarded. The JS spec and native implementation were kept atomic.
Keyboard events, Pressability, Pressable, TextInput 0.84 standardizes raw KeyboardEventPayload plus KeyDownEvent/KeyUpEvent synthetic wrappers. macOS emits additional modifier fields and does not emit a physical code; capture handlers and legacy handled-key props remain supported. Combine, then corrective follow-up: one upstream-shaped payload, optional code, real macOS modifier fields, canonical wrappers across View/Pressability/TextInput, deprecated compatibility aliases, regenerated API types, and focused normalization tests. See ff3eb390.
Text and text input Upstream reorganizes style processing and extends TextInput/Fabric behavior. macOS border-radius style overrides, focus-ring/ghost-text/selection behavior, appearance-sensitive text color, and AppKit input/accessory abstractions remain required. Combine: upstream processing remains the owner and macOS behavior is additive. The Text override was corrected to stay inside upstream style scope in bf975098; the Fabric accessory reset is excluded on both macOS and visionOS in 021f7cd8.
Fabric accessibility and View Upstream PR react#52644 moved accessibilityElements ownership to a setter on RCTViewComponentView. macOS needs an NSAccessibilityElement proxy when an accessibility order refers to the view itself; using the NSView as its own child creates a VoiceOver traversal cycle. Combine, not resurrection: retain RCTViewAccessibilityElement as a leaf proxy instantiated by the upstream setter path. b1bd0184 keeps traits synchronized, reuses the shared role mapping, and prevents duplicate child subtrees.
Fabric scroll, pointer/touch, paragraph, and shadows 0.84 changes component-view lifecycle, virtual-view support, refresh/scroll behavior, pointer handling, and renderer state. macOS overlay scrollbars, content inset/resize behavior, right-click handling, text selection, transforms/hit testing, and platform colors remain active fork features. Combine: upstream lifecycle and component structure with minimal macOS clauses. Newly introduced 0.84 VirtualView/LegacyViewManagerInterop/Modal sources were ported to RCTUIKit/AppKit in e2251e82.
Image Upstream removes leaked provider maps, updates public types, and formats/reorganizes loaders and managers. The fork's RCTUIImage/RCTPlatformImage abstraction, animated image view, local/bundle loaders, and AppKit-compatible blur/loading behavior are still used. Combine: upstream module/type cleanup with the complete macOS image abstraction and animated implementation retained. No obsolete UIKit-only implementation was restored.
Native animation Upstream adds animation families and removes stale provider-map/feature-flag paths. macOS uses the RCTUIKit split and platform view abstractions in interpolation and node management. Combine: upstream animation semantics with existing RCTUIKit/macOS view handling.
Core modules and developer support 0.84 changes DevLoadingView interaction/window behavior, DevMenu configuration, inspector connection handling, module registration, and legacy compile-outs. macOS has platform-specific DevMenu, LogBox, FPS/perf monitor, accessibility, action-sheet, and device-info windows/views. Combine: upstream ownership and protocols with AppKit/RCTUIKit aliases and platform guards. The new 0.84 sources were ported in e2251e82; the visionOS alert fallback was corrected without changing iOS/macOS behavior in 68888b7f.
Legacy UIManager and views Upstream compiles out more legacy iOS paths and updates activity indicator, modal, refresh control, safe-area, switch, and scroll APIs. macOS still ships AppKit implementations and RCTPlatform/RCTUIKit abstractions for these components. Combine: adopt upstream declarations and lifecycle changes while retaining macOS implementations behind platform-specific types/branches. Modal, scroll, safe-area, switch, and refresh behavior remain mapped to their existing owners rather than duplicated into new targets.
Renderer C++ / platform graphics and text layout Upstream adds animation-backend dimensions, evolves text-input events, and updates text/graphics infrastructure. macOS platform colors, font/text layout, native text selection, default label color, right-click semantics, and RCTUIKit image/color conversion remain required. Combine: upstream cross-platform C++ shape with Apple-platform implementations that continue to dispatch through RCTPlatform*/RCTUIKit abstractions.
SwiftPM and CocoaPods ownership Upstream replaces the monolithic Fabric-components target with per-component targets and adds source-build configuration. macOS needs real View platform sources, RCTUIKit linkage/exclusions, ReactCore public headers, observers/intersection, Fabric image, and the SwiftUI wrapper. Structural combine: all 11 real old source directories map exactly once to 8 split targets plus the header-only VirtualText search path; 0 dropped, 0 duplicated. view/platform/macos remains owned by reactFabric; nonexistent textinput/platform/macos and textlayoutmanager/platform/macos paths were not invented. SwiftPM/CocoaPods ownership and MacOSSwitchShadowNode.mm exclusions remain aligned.
New 0.84 Apple/SwiftUI sources 0.84 introduces SwiftUI filter wrappers, VirtualView/LegacyViewManagerInterop changes, modal component-view updates, and new UIKit assumptions. The fork builds those sources through RCTUIKit/AppKit and supports macOS alongside iOS/visionOS. Follow-up port: minimal aliases and platform guards were layered in e2251e82, rather than obscuring them inside the mechanical merge.
Hermes Upstream introduces Hermes V1/version-properties handling, new artifact coordinates, and nightly-by-default selection. react-native-macos must resolve Microsoft Hermes from the compatible merge-base lineage; taking a moving nightly produced a Runtime vs IRuntime JSI ABI mismatch. Combine + compatibility pin: preserve upstream V1/version-properties flow, keep merge-base-aware source selection, remove the moving-nightly preinstall, and use source-built Hermes 1000.0.0 with hermes-compiler: 0.0.0. See a8959b6c.
Debugger distribution and prebuild tooling Upstream replaces production Electron delivery with DotSlash and expands prebuilt XCFramework tooling. The fork's Electron bump was dependency/CVE maintenance for the old architecture; direct Electron is still useful only for explicit development mode. Upstream production model + narrow local retention: fb-dotslash is the production dependency; Electron 39.8.1 is dev-only and excluded from the published package. Shell-interpolated prebuild/release commands were converted to argument-safe process/filesystem APIs in 38e24834 and b49508e9.
Upstream deletion: Network overlay Upstream PR react#54868 removes the Perf and Network tabs under RFC0777, deleting NetworkOverlay.js. The local history contained only mechanical package-rename ancestry, not macOS-specific behavior. Upstream deletion: do not resurrect the removed overlay.
react-native-test-library and RNTester tests Upstream no longer carries the fork-only test package and removes several legacy RNTester test files. react-native-test-library remains an active macOS package, including its native component fixtures and macOS example; selected UIManager/event/view tests still cover fork behavior. Preserve selectively: restore the complete 50-file react-native-test-library package, including the three explicit modify/delete conflicts; retain still-relevant RNTester tests and scheme wiring, while accepting upstream deletion where no macOS requirement exists.

Complete conflicted-path inventory

Build, manifests, Hermes, and generated metadata (45)
  • .github/actions/setup-xcode/action.yml
  • .gitignore
  • .flowconfig
  • README.md
  • package.json
  • packages/assets/package.json
  • packages/babel-plugin-codegen/package.json
  • packages/community-cli-plugin/package.json
  • packages/core-cli-utils/package.json
  • packages/debugger-frontend/package.json
  • packages/debugger-shell/package.json
  • packages/dev-middleware/package.json
  • packages/eslint-config-react-native/package.json
  • packages/eslint-plugin-react-native/package.json
  • packages/eslint-plugin-specs/package.json
  • packages/gradle-plugin/package.json
  • packages/metro-config/package.json
  • packages/new-app-screen/package.json
  • packages/normalize-color/package.json
  • packages/polyfills/package.json
  • packages/react-native-babel-preset/package.json
  • packages/react-native-babel-transformer/package.json
  • packages/react-native-codegen/package.json
  • packages/react-native-compatibility-check/package.json
  • packages/react-native-popup-menu-android/package.json
  • packages/react-native/Package.swift
  • packages/react-native/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHermesInstance.h
  • packages/react-native/package.json
  • packages/react-native/scripts/ios-prebuild/hermes.js
  • packages/react-native/scripts/ios-prebuild/xcframework.js
  • packages/react-native/sdks/hermes-engine/hermes-engine.podspec
  • packages/react-native/sdks/hermes-engine/hermes-utils.rb
  • packages/react-native/sdks/hermes-engine/utils/build-ios-framework.sh
  • packages/rn-tester/Podfile
  • packages/rn-tester/Podfile.lock
  • packages/rn-tester/RNTesterPods.xcodeproj/project.pbxproj
  • packages/rn-tester/RNTesterPods.xcodeproj/xcshareddata/xcschemes/RNTesterUnitTests.xcscheme
  • packages/rn-tester/package.json
  • packages/typescript-config/package.json
  • packages/virtualized-lists/package.json
  • private/helloworld/Gemfile
  • private/helloworld/Gemfile.lock
  • private/helloworld/package.json
  • private/react-native-codegen-typescript-test/package.json
  • yarn.lock
JavaScript behavior and public types (14)
  • packages/react-native/Libraries/Components/Pressable/Pressable.js
  • packages/react-native/Libraries/Components/TextInput/TextInput.flow.js
  • packages/react-native/Libraries/Components/TextInput/TextInput.js
  • packages/react-native/Libraries/Components/TextInput/TextInputState.js
  • packages/react-native/Libraries/Components/Touchable/TouchableWithoutFeedback.js
  • packages/react-native/Libraries/Components/View/View.js
  • packages/react-native/Libraries/Components/View/ViewNativeComponent.js
  • packages/react-native/Libraries/Pressability/Pressability.js
  • packages/react-native/Libraries/Text/Text.js
  • packages/react-native/Libraries/Types/CoreEventTypes.js
  • packages/react-native/Libraries/Utilities/__tests__/Platform-test.js
  • packages/react-native/src/private/devsupport/devmenu/elementinspector/NetworkOverlay.js
  • packages/rn-tester/js/examples/Cursor/CursorExample.js
  • packages/rn-tester/js/examples/PlatformColor/PlatformColorExample.js
App setup, bridge, and wrappers (16)
  • packages/react-native/Libraries/AppDelegate/RCTAppDelegate.h
  • packages/react-native/Libraries/AppDelegate/RCTAppSetupUtils.h
  • packages/react-native/Libraries/AppDelegate/RCTAppSetupUtils.mm
  • packages/react-native/Libraries/AppDelegate/RCTDefaultReactNativeFactoryDelegate.mm
  • packages/react-native/Libraries/AppDelegate/RCTReactNativeFactory.h
  • packages/react-native/Libraries/AppDelegate/RCTRootViewFactory.h
  • packages/react-native/Libraries/AppDelegate/RCTRootViewFactory.mm
  • packages/react-native/Libraries/Wrapper/Example/RCTWrapperReactRootViewController.h
  • packages/react-native/Libraries/Wrapper/RCTWrapper.h
  • packages/react-native/Libraries/Wrapper/RCTWrapperView.h
  • packages/react-native/Libraries/Wrapper/RCTWrapperViewControllerHostingView.h
  • packages/react-native/React/Base/RCTBridgeProxy.mm
  • packages/react-native/React/Base/RCTBundleManager.h
  • packages/react-native/React/Base/RCTRootView.h
  • packages/react-native/React/Base/RCTUtils.h
  • packages/react-native/React/Base/RCTUtils.mm
Image, linking, and native animation (10)
  • packages/react-native/Libraries/Image/Image.ios.js
  • packages/react-native/Libraries/Image/RCTBundleAssetImageLoader.mm
  • packages/react-native/Libraries/Image/RCTImageBlurUtils.mm
  • packages/react-native/Libraries/Image/RCTImageLoader.mm
  • packages/react-native/Libraries/Image/RCTImageViewManager.mm
  • packages/react-native/Libraries/Image/RCTLocalAssetImageLoader.mm
  • packages/react-native/Libraries/Image/RCTUIImageViewAnimated.mm
  • packages/react-native/Libraries/LinkingIOS/RCTLinkingManager.mm
  • packages/react-native/Libraries/NativeAnimation/Nodes/RCTInterpolationAnimatedNode.mm
  • packages/react-native/Libraries/NativeAnimation/RCTNativeAnimatedNodesManager.mm
Core modules and developer support (13)
  • packages/react-native/React/CoreModules/CoreModulesPlugins.mm
  • packages/react-native/React/CoreModules/RCTAccessibilityManager.mm
  • packages/react-native/React/CoreModules/RCTActionSheetManager.mm
  • packages/react-native/React/CoreModules/RCTDevLoadingView.mm
  • packages/react-native/React/CoreModules/RCTDevMenu.h
  • packages/react-native/React/CoreModules/RCTDevMenu.mm
  • packages/react-native/React/CoreModules/RCTDeviceInfo.mm
  • packages/react-native/React/CoreModules/RCTFPSGraph.mm
  • packages/react-native/React/CoreModules/RCTLogBoxView.h
  • packages/react-native/React/CoreModules/RCTLogBoxView.mm
  • packages/react-native/React/CoreModules/RCTPerfMonitor.mm
  • packages/react-native/React/DevSupport/RCTDevLoadingViewProtocol.h
  • packages/react-native/React/DevSupport/RCTInspectorDevServerHelper.mm
Fabric component views and input (12)
  • packages/react-native/React/Fabric/Mounting/ComponentViews/ScrollView/RCTEnhancedScrollView.mm
  • packages/react-native/React/Fabric/Mounting/ComponentViews/ScrollView/RCTPullToRefreshViewComponentView.mm
  • packages/react-native/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm
  • packages/react-native/React/Fabric/Mounting/ComponentViews/Text/RCTParagraphComponentView.mm
  • packages/react-native/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputComponentView.mm
  • packages/react-native/React/Fabric/Mounting/ComponentViews/View/RCTViewAccessibilityElement.h
  • packages/react-native/React/Fabric/Mounting/ComponentViews/View/RCTViewAccessibilityElement.mm
  • packages/react-native/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm
  • packages/react-native/React/Fabric/Mounting/RCTComponentViewDescriptor.h
  • packages/react-native/React/Fabric/RCTSurfacePointerHandler.mm
  • packages/react-native/React/Fabric/RCTSurfaceTouchHandler.mm
  • packages/react-native/React/Fabric/Utils/RCTBoxShadow.mm
Legacy views, text, and UIManager (24)
  • packages/react-native/Libraries/Text/Text/RCTTextView.h
  • packages/react-native/Libraries/Text/Text/RCTTextView.mm
  • packages/react-native/Libraries/Text/TextInput/RCTBaseTextInputView.h
  • packages/react-native/Libraries/Text/TextInput/RCTInputAccessoryView.h
  • packages/react-native/Libraries/Text/TextInput/RCTInputAccessoryViewContent.h
  • packages/react-native/Libraries/Text/VirtualText/RCTVirtualTextView.h
  • packages/react-native/React/Modules/RCTUIManager.h
  • packages/react-native/React/Modules/RCTUIManager.mm
  • packages/react-native/React/Views/RCTActivityIndicatorView.m
  • packages/react-native/React/Views/RCTModalHostView.h
  • packages/react-native/React/Views/RCTModalHostView.m
  • packages/react-native/React/Views/RCTModalHostViewController.h
  • packages/react-native/React/Views/RCTModalHostViewController.m
  • packages/react-native/React/Views/RCTModalHostViewManager.h
  • packages/react-native/React/Views/RCTModalHostViewManager.m
  • packages/react-native/React/Views/RCTSwitch.h
  • packages/react-native/React/Views/RefreshControl/RCTRefreshControl.h
  • packages/react-native/React/Views/RefreshControl/RCTRefreshControl.m
  • packages/react-native/React/Views/RefreshControl/RCTRefreshControlManager.m
  • packages/react-native/React/Views/SafeAreaView/RCTSafeAreaView.m
  • packages/react-native/React/Views/SafeAreaView/RCTSafeAreaViewManager.m
  • packages/react-native/React/Views/ScrollView/RCTScrollView.h
  • packages/react-native/React/Views/ScrollView/RCTScrollView.m
  • packages/react-native/React/Views/ScrollView/RCTScrollViewManager.h
Renderer C++ and platform graphics (10)
  • packages/react-native/ReactCommon/react/renderer/attributedstring/TextAttributes.cpp
  • packages/react-native/ReactCommon/react/renderer/components/textinput/TextInputEventEmitter.h
  • packages/react-native/ReactCommon/react/renderer/components/view/propsConversions.h
  • packages/react-native/ReactCommon/react/renderer/graphics/platform/ios/react/renderer/graphics/HostPlatformColor.h
  • packages/react-native/ReactCommon/react/renderer/graphics/platform/ios/react/renderer/graphics/HostPlatformColor.mm
  • packages/react-native/ReactCommon/react/renderer/graphics/platform/ios/react/renderer/graphics/RCTPlatformColorUtils.h
  • packages/react-native/ReactCommon/react/renderer/graphics/platform/ios/react/renderer/graphics/RCTPlatformColorUtils.mm
  • packages/react-native/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTFontUtils.h
  • packages/react-native/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTFontUtils.mm
  • packages/react-native/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTTextLayoutManager.mm
Tests and RNTester native fixtures (11)
  • packages/react-native-test-library/ios/RCTSampleNativeComponentComponentView.mm
  • packages/react-native-test-library/ios/RCTSampleNativeComponentViewManager.mm
  • packages/react-native-test-library/package.json
  • packages/rn-tester/NativeComponentExample/ios/RNTMyLegacyNativeViewManager.mm
  • packages/rn-tester/NativeComponentExample/ios/RNTMyNativeViewManager.mm
  • packages/rn-tester/RNTester/AppDelegate.mm
  • packages/rn-tester/RNTesterIntegrationTests/RCTUIManagerScenarioTests.m
  • packages/rn-tester/RNTesterIntegrationTests/RNTesterIntegrationTests.m
  • packages/rn-tester/RNTesterUnitTests/RCTEventDispatcherTests.m
  • packages/rn-tester/RNTesterUnitTests/RCTUIManagerTests.m
  • packages/rn-tester/RNTesterUnitTests/RCTViewTests.m

The inventory sections sum to 155 paths.

Commands used

Roughly, the merge and subsequent Microsoft-main rebase used:

git fetch upstream main
git fetch facebook main 0.84-stable
git merge-base facebook/main facebook/0.84-stable
git merge --no-ff 2166ab782a6bcc18d1bb2540f32f6816fd637277
git ls-files -u
git diff --name-only --diff-filter=U
git rebase --rebase-merges --onto upstream/main 82618f59bac995107d36bf4503804226fc07bdea 0.84-merge

The rebase tried to replay the React Native-side ancestry instead of retaining the required fork-point parent, so the audited resolved merge tree was reconstructed with exact parents ef09dd72 and 2166ab78, then the focused macOS follow-ups were replayed as separate commits. Conflict inventories and old-to-new commit mappings were regenerated after that reconstruction.

Validation and publication were approximately:

yarn install --immutable
yarn constraints
yarn test
yarn flow
yarn lint
yarn format-check
yarn build-types
bundle exec pod install
swift package dump-package --package-path packages/react-native
node scripts/ios-prebuild.js -b -f Debug -p
xcodebuild -workspace packages/rn-tester/RNTesterPods.xcworkspace \
  -scheme RNTester-macOS -destination 'generic/platform=macOS' build
git push --force-with-lease=<previous-0.84-merge-sha> origin 0.84-merge
git push origin 0.84-merge

The force-with-lease was limited to retargeting the existing fork branch from the stale fork main to Microsoft main; later updates were normal fast-forward pushes.

Test Plan

  • Final GitHub PR workflow at code-complete head 4bacb12a: JavaScript, Yarn constraints, website, npm dry-run, RNTester iOS/macOS/visionOS static and dynamic builds, all Hermes slices, all five prebuild destinations, XCFramework composition, and CodeQL
  • Final head 2777fb70 only removes the deferred in-repo merge skill; the exact draft is archived outside the branch until the complete 0.84-0.87 stack is prepared
  • Local full JavaScript validation: 280 suites / 5603 passing, Flow 0, lint, format, and generated API/types
  • RNTester macOS static workspace build: BUILD SUCCEEDED
  • CocoaPods: 87 dependencies / 86 pods, source-built Hermes 1000.0.0 from the React Native merge-base lineage
  • yarn install --immutable
  • yarn constraints
  • bundle exec pod install
  • swift package dump-package --package-path packages/react-native
  • Focused codegen pnpm-symlink regression test
  • Exact topology: merge parents ef09dd72 and 2166ab78; 0.84-stable tip excluded
  • CodeQL: final JavaScript analysis passed with the security fixes preserved as separate commits

The two dynamic-framework Test All canaries previously failed before runner assignment with zero executed steps; they did not contain a code/build failure from this branch.

cortinico and others added 30 commits November 25, 2025 10:32
…4663)

Summary:
Pull Request resolved: react#54663

This file is from the legacy architecture and no longer needed as it's party of legacy DevX stack.
Can safely be removed and cleaned up then.

Changelog:
[Internal] [Changed] -

Reviewed By: cipolleschi

Differential Revision: D87798709

fbshipit-source-id: 4332df01e04cad1d481cebd2f785e988e9ca96f9
Summary:
Pull Request resolved: react#54683

This class is no longer needed and can be removed.
This is a breaking change, but the class was long deprecated so we should be fine removing it.

Changelog:
[Android] [Removed] - Remove unnecessary and unused BridgeDevSupportManager

Reviewed By: javache

Differential Revision: D87859861

fbshipit-source-id: f77d7121ace072b2c37408b0d81d84309692e05a
Summary:
Pull Request resolved: react#54664

changelog: [internal]

This flag is not used anywhere, every app falls to default. Let's remove it.

Reviewed By: javache

Differential Revision: D87767422

fbshipit-source-id: a5a932d2e8cd5a9f55e62cda7d77beeaecdba00e
Summary:
Pull Request resolved: react#54689

This change applies categories to the changelog.

## Changelog:
[Internal] -

## Facebook:

I used AI to do so, and it did a pretty good job.

Prompt:
> if you look at the CHANGELOG.md for versions like v0.82.0, v0.81.0, v0.80.0, we have been annotating all the commits with an initial tag, which represent the area affected by the commit.
> I want you to go through all the commits of v0.83.0-rc.3, v0.83.0-rc.2, v0.83.0-rc.1, and v0.83.0-rc.0 and annothate each commit with the corresponding area.
> Try to reuse areas from previous releases if you can find matches. If it is unclear which area is affected, you can find the link to the commit at the end of the entry. Try to navigate there and read the commit summary to understand which area is affecting.

This is [the trajectory](https://www.internalfb.com/intern/devai/devmate/investigator?paste=P2056034816)

One **limitation** of DevMate is that it can't go and see what the commit is actually about. Probably cursor can do that.

Reviewed By: cortinico

Differential Revision: D87870198

fbshipit-source-id: ee61f4cf6a86d44935c393c720d38d7087895d3b
Summary:
Pull Request resolved: react#54688

This commit sorts the changelog entries by the tags we added in the previous change

## Changelog:
[Internal] -

## Facebook:
AI sorted these and it did a good job again.

### Prompt:

>The next step for this work is to sort each section of the CHANGELOG.md alphabetically, by using the tag we just added. So, for example, Commits with the Animated: tag should come before commits with the DevTools: tag.
> You only have to reorder the commits withing each section, do not apply any other change in the commit.
> Focus only on the 0.83 versions: 0.83.0-rc.3, 0.83.0-rc.2, 0.83.0-rc.1, 0.83.0-rc.0,

Trajectory: https://www.internalfb.com/intern/devai/devmate/investigator?paste=P2056053048

Reviewed By: cortinico

Differential Revision: D87871867

fbshipit-source-id: e2c30e8bda5d61751d9d41c614941dacc7be89c3
Summary:
Pull Request resolved: react#54640

# Summary:
Trying to add heif/heic files to the ReactVRPlayground but they are not included to metro.

Codegen via

```
js1 build buckfiles
arc build
```

Insired by D58261501

Changelog:
[General][Added] - Bundle support for heic and heif files
___

overriding_review_checks_triggers_an_audit_and_retroactive_review
Oncall Short Name: vr_metacam

Reviewed By: lenaic, robhogan, javache

Differential Revision: D86807752

fbshipit-source-id: 0fd2271f46dc8bc5d568360c50dcd2db067923f6
Summary:
Pull Request resolved: react#54693

SurfaceMountingManager stays around even after the surface is stopped - we need to clean these up.

Changelog: [Internal]

Reviewed By: zeyap

Differential Revision: D87875316

fbshipit-source-id: f47a8d34bc9b9f43071c9c113bac1a85a5171748
Summary:
Fixed an `ENOENT` exception when a dependency does not export `package.json`, and your repo is set up as a monorepo using pnpm.

> [!NOTE]
>
> This does not fix the actual search algorithm. We shouldn't be using `require.main.paths` here because it does not point to the correct starting point, the project root.
>
> This change only fixes the case where we cannot find `package.json` at all.

## Changelog:

[GENERAL] [FIXED] - Fixed an `ENOENT` exception when a dependency does not export `package.json`, and your repo is set up as a monorepo using pnpm

Pull Request resolved: react#54665

Test Plan:
**Before:**

```
% node node_modules/react-native/scripts/generate-codegen-artifacts.js -p . -o ios -t ios
[Codegen] Analyzing package.json
[Codegen] Could not find generated autolinking output at: /~/packages/app/example/ios/build/generated/autolinking/autolinking.json
[Codegen] Searching for codegen-enabled libraries in the app.
[Codegen] The "codegenConfig" field is not defined in package.json. Assuming there is nothing to generate at the app level.
[Codegen] Could not find generated autolinking output at: /~/packages/app/example/ios/build/generated/autolinking/autolinking.json
[Codegen] Searching for codegen-enabled libraries in the project dependencies.
[Codegen] Found react-native-webapis/web-storage
[Codegen] Found react-native
[Codegen] Found react-native-safe-area-context
Trying to find `package.json` for `webdriverio` in [
  '/~/node_modules/.store/react-native-virtual-a5dea7d647/package/scripts/node_modules',
  '/~/node_modules/.store/react-native-virtual-a5dea7d647/package/node_modules',
  '/~/node_modules/.store/react-native-virtual-a5dea7d647/node_modules',
  '/~/node_modules/.store/node_modules',
  '/~/node_modules',
  '/node_modules'
]
[Codegen] Error: ENOENT: no such file or directory, open ''
[Codegen] Done.
```

**After:**

```
% node node_modules/react-native/scripts/generate-codegen-artifacts.js -p . -o ios -t ios
[Codegen] Analyzing package.json
[Codegen] Could not find generated autolinking output at: /~/packages/app/example/ios/build/generated/autolinking/autolinking.json
[Codegen] Searching for codegen-enabled libraries in the app.
[Codegen] The "codegenConfig" field is not defined in package.json. Assuming there is nothing to generate at the app level.
[Codegen] Could not find generated autolinking output at: /~/packages/app/example/ios/build/generated/autolinking/autolinking.json
[Codegen] Searching for codegen-enabled libraries in the project dependencies.
[Codegen] Found react-native-webapis/web-storage
[Codegen] Found react-native
[Codegen] Found react-native-safe-area-context
Trying to find package.json for webdriverio in [
  '/~/node_modules/.store/react-native-virtual-a5dea7d647/package/scripts/node_modules',
  '/~/node_modules/.store/react-native-virtual-a5dea7d647/package/node_modules',
  '/~/node_modules/.store/react-native-virtual-a5dea7d647/node_modules',
  '/~/node_modules/.store/node_modules',
  '/~/node_modules',
  '/node_modules'
]
[Codegen] Searching for codegen-enabled libraries in react-native.config.js
[Codegen] Processing RNWWebStorageSpec
[Codegen] Searching for podspec in the project dependencies.
[Codegen] Supported Apple platforms: ios, macos, visionos for RNWWebStorageSpec
[Codegen] Processing FBReactNativeSpec
[Codegen] Searching for podspec in the project dependencies.
[Codegen] Processing safeareacontext
[Codegen] Searching for podspec in the project dependencies.
[Codegen] Supported Apple platforms: ios, macos, tvos, visionos for safeareacontext
[Codegen] Generating Native Code for RNWWebStorageSpec - ios
[Codegen] Generated artifacts: ios/build/generated/ios/ReactCodegen
[Codegen] [Codegen - FBReactNativeSpec] Skipping iOS code generation for FBReactNativeSpec as it has been generated already.
[Codegen] Generating Native Code for safeareacontext - ios
[Codegen] Generated artifacts: ios/build/generated/ios/ReactCodegen
[Codegen] Generating RCTThirdPartyComponentsProvider.h
[Codegen] Generated artifact: ios/build/generated/ios/ReactCodegen/RCTThirdPartyComponentsProvider.h
[Codegen] Generating RCTThirdPartyComponentsProvider.mm
[Codegen] Generated artifact: ios/build/generated/ios/ReactCodegen/RCTThirdPartyComponentsProvider.mm
[Codegen] Generating RCTModulesProvider.h
[Codegen] Generated artifact: ios/build/generated/ios/ReactCodegen/RCTModuleProviders.h
[Codegen] Generating RCTModuleProviders.mm
[Codegen] Generated artifact: ios/build/generated/ios/ReactCodegen/RCTModuleProviders.mm
[Codegen] Generating RCTAppDependencyProvider
[Codegen] Generated artifact: ios/build/generated/ios/ReactAppDependencyProvider/RCTAppDependencyProvider.h
[Codegen] Generated artifact: ios/build/generated/ios/ReactAppDependencyProvider/RCTAppDependencyProvider.mm
[Codegen] Generated podspec: ios/build/generated/ios/ReactAppDependencyProvider/ReactAppDependencyProvider.podspec
[Codegen] Generated podspec: ios/build/generated/ios/ReactCodegen/ReactCodegen.podspec
[Codegen] Generating Package.swift
[Codegen] Generated artifact: ios/build/generated/ios/Package.swift
[Codegen] Done.
```

Reviewed By: cipolleschi

Differential Revision: D87872496

Pulled By: cortinico

fbshipit-source-id: b9da0e1808248cb806a2a8a0ee575566ce027067
Summary:
Pull Request resolved: react#54670

This is a port back to main of [this commit](react@eb78fba) which landed in 0.83 to make sure that the network panel is enabled for Android and for iOS builds from source.

## Changelog:
[Internal] -

Reviewed By: cortinico

Differential Revision: D87864636

fbshipit-source-id: 7176407ec3af1407bf4bde9e9552dea7443ad92e
…utput path (react#54609)

Summary:
The argument for the output path to this CLI has always been optional, but the types didn't reflect this, which caused a few regressions in recent changes (e.g. react#53503)

There's several code paths where the `baseOutputPath` can be altered or derived in different ways, which wasn't respected in logic before the main codegen output block or in `generateReactCodegenPodspec`.

When applied, this PR alters the `baseOutputPath` logic to use a default by `computeBaseOutputPath` extracted from `computeOutputPath` and have an added `process.env.RCT_SCRIPT_OUTPUT_DIR` override, which was previously only applied to `readReactNativeConfig`

This should restore:
- `react-native codegen` being run without an `--outputPath` argument
- codegen running with a `package.json:codegenConfig.outputDir` override

Resolves react#54473

## Changelog:

[GENERAL] [FIXED] - Ensure codegen CLI supports unspecified `--outputPath` argument and respects `codegenConfig.outputDir` configurations

Pull Request resolved: react#54609

Test Plan: - Manually run `react-native codegen` in `rn-tester`

Reviewed By: cipolleschi

Differential Revision: D87456501

Pulled By: cortinico

fbshipit-source-id: 997e99af1f99227eb70955478643b28b1a90df61
Summary:
Fixed `hermes-compiler` not being resolved correctly when your repo is set up as a monorepo using pnpm.

## Changelog:

[GENERAL] [FIXED] - Fixed `hermes-compiler` not being resolved correctly when your repo is set up as a monorepo using pnpm.

Pull Request resolved: react#54667

Test Plan: n/a

Reviewed By: cortinico

Differential Revision: D87873273

Pulled By: cipolleschi

fbshipit-source-id: 4d60a00ae579bc4a671d6536de4dd02bdefef6c8
Summary:
Pull Request resolved: react#54690

Changelog:
[iOS][Fixed] - Fixed crash from dismiss button in DevLoadingView

D86420230 added a dismiss button feature to RCTDevLoadingView. However, when adding layout constraints on line 198, it incorrectly checked the `dismissButton` parameter instead of the `self->_dismissButton` instance variable. This caused NSLayoutConstraint crashes when the parameter was nil/false but the instance variable existed from a previous call, or vice versa.

This changes line 198 to check `self->_dismissButton` (the instance variable) instead of `dismissButton` (the function parameter) to properly verify if the button exists before adding constraints to it.

Reviewed By: vzaidman, javache

Differential Revision: D87871856

fbshipit-source-id: c8fe033bce383c2589041c9cd3fad65f37553d3c
…#54633)

Summary:
Pull Request resolved: react#54633

# Changelog: [Internal]

This introduces a proper lifecycle for a module on Anroid that will emit frames information as part of the trace recording.

Previously we would initialize it on a packager connection, which could be problematic, since there is no guarantee that InspectorTarget exists at  this time.

With the current approach, the lifetime of this object is:
- Bound to lifetime of InspectorTarget, it will never outlive it
- The actual frames listener lifetime will be bound to tracing state. We no longer will be going through `jni` to check if `PerformanceTracer` is enabled.

I've renamed it to `FrameTimingsObserver`and moved to inspector package, since this should be considered as part of the inspector stack. Similarly to `LoadNetworkResource` listeners.

I am keeping the `jni` layer with PerformanceTracer for now, but this is about to be removed in the diffs above. The frames information should be propagated through Host, this would allow us to record Frames even if there is no React Native instance, for example, during reloads.

Reviewed By: sbuggay

Differential Revision: D87345177

fbshipit-source-id: e92ffb29e1761ac8a425a1fbfe27d3edca85ddd4
Summary:
Pull Request resolved: react#54677

# Changelog: [Internal]

Currently, `HostTraceRecordingState` is used everywhere and it is the final data struct that contains the tracing profile.

At the same time, the original idea for it was to be a global state for Tracing Agents, where they could:
1. Read the tracing configuration, like tracing mode, enabled categories, etc.
2. Stash corresponding target profiles on reloads. For example, if `RuntimeTarget` was reloaded during tracing, `RuntimeTracingAgent` would stop JavaScript sampling profiler, and then stash this profile on a state.

This change should clarify the data structures and when they are used.

Reviewed By: sbuggay

Differential Revision: D87830455

fbshipit-source-id: 15c48baede85a2d85744d9c3c3b7a419c1f1d299
Summary:
Pull Request resolved: react#54679

# Changelog: [Internal]

Adding a data structure that could be configured to preserve entries that are inside of a specified time window.

At the same time, this data structure could be used as a simple buffer, if no arguments were specified during constructing.

This follows the approach that was added to `PerformanceTracer`, but it doesn't use pointers to avoid dealing with updates during copies or moves.

Reviewed By: sbuggay

Differential Revision: D87776299

fbshipit-source-id: d20bf6dd08af7971aaf34ffc11ec5993b8edaf4b
Summary:
Pull Request resolved: react#54673

# Changelog: [Internal]

`HostTargetTraceRecording` will receive the tracing window size as a parameter and will propagate it to `TraceRecordingState`.

This will make sure that all Tracing Agents actually aware of the window size.

For example, once we add Frames to Host layer, it should use the same window size, as `PerformanceTracer`, which is initialized in `InstanceTracingAgent`.

Reviewed By: sbuggay

Differential Revision: D87782664

fbshipit-source-id: 58203065d68ac898adc785317ec2cb792efd13dc
Summary:
Pull Request resolved: react#54674

# Changelog: [Internal]

This diff introduces a definition for `FrameTimingSequence`, which will represent the different phases of a frame that will be reported as part of the trace.

These sequences will be stored on a `HostTargetTraceRecording`. It is `Host`'s responsibility to propagate these entities to `HostTarget`, there will be a corresponding method for this.

Reviewed By: sbuggay

Differential Revision: D87373811

fbshipit-source-id: bd894f8c39a6d4ee0bef1303e4f801b27fabc901
Summary:
Pull Request resolved: react#54672

# Changelog: [Internal]

Introduces an endpoint on `HostTarget` for capturing frame timings. This exposes a public API to Host, which could be called during active tracing session.

`Host` could be notified through tracing delegate in `HostTargetDelegate` about tracing state, this has been implemented below as part of this diff stack.

Reviewed By: sbuggay

Differential Revision: D87373807

fbshipit-source-id: 3ffc5f2b803164e4316ff6c3824672c842187ddd
Summary:
Pull Request resolved: react#54675

# Changelog: [Internal]

Extracing the spec for frames events to a new class `TraceEventGenerator`.

This is a preparation for moving frames events to Host.

Reviewed By: sbuggay

Differential Revision: D87373809

fbshipit-source-id: 56538a8fae7d41a7117cd8445b15630ac7f50672
…ile (react#54681)

Summary:
Pull Request resolved: react#54681

# Changelog: [Internal]

Now when Frame Timings are part of the whole `HostTargetTracingProfile`, we need to define how these will be serialized into chunks of `Tracing.dataCollected` messages.

Reviewed By: sbuggay

Differential Revision: D87373810

fbshipit-source-id: dd4e9ce6c691e92710d9c3c66f7d134f3fba1ddd
Summary:
Pull Request resolved: react#54671

# Changelog: [Internal]

Replaces the calls to `PerformanceTracer` through `jni` with the calls through inpsector's `HostTarget`.

Reviewed By: sbuggay

Differential Revision: D87373808

fbshipit-source-id: f86a679a09b1586a426e69914de2c9f658289039
Summary:
Pull Request resolved: react#54678

# Changelog: [Internal]

This is not a breaking change, since it removes something that wasn't yet rolled out to OSS - it is unused.

Reviewed By: sbuggay

Differential Revision: D87378393

fbshipit-source-id: 3d560276d029cdab942e76fe34111d63e453a26c
Summary:
Pull Request resolved: react#54680

# Changelog: [Internal]

Reviewed By: sbuggay

Differential Revision: D87549337

fbshipit-source-id: de885f1c74b1bd1e9acd4248618c4e081813f3dc
Summary:
Pull Request resolved: react#54676

# Changelog: [Internal]

Reviewed By: sbuggay

Differential Revision: D87549336

fbshipit-source-id: b94645ba0ed12979ed7129c767c38587420c6cc0
Summary:
In react#54139 I have removed checking shared preferences for `debug_http_host`. The diff reverts this removal because it is used for changing the bundle source before the app starts.

## Changelog:

[ANDROID][FIXED] - revert removal of checking shared preferences for `debug_http_host`.

Pull Request resolved: react#54687

Test Plan:
I have run the `rn-tester` app and swapped a default prefs file on Android emulator located in:  `/data/data/com.facebook.react.uiapp/shared_prefs/com.facebook.react.uiapp_preferences.xml` with one that had updated port in `debug_http_host` setting to `8082`:

```xml
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
    <boolean name="fps_debug" value="true" />
    <string name="debug_http_host">10.0.2.2:8082</string>
    <boolean name="inspector_debug" value="true" />
</map>
```

Then, I have run the app and checked if the bundle is loaded from the Metro instance invoked using `yarn start --port 8082`.

Reviewed By: cortinico

Differential Revision: D87869540

Pulled By: coado

fbshipit-source-id: 9a76990b097ad7ff24cbbc5202ca935053de23e5
Summary:
Previously the symbolication support when using the precompiled React.XCFramework copied the symbol bundles to the wrong folder in the framework, causing Xcode to not find the symbols.

This commit fixes this by copying symbols to the correct slice folders instead of in the root of the framework folder.

Note:
Running `pod cache clean --all` and `rm -rf Pods` in the iOS folder followed by a clean rebuild in Xcode might be a good thing to ensure you're using the correct binaries when compiling.

## Changelog:

[IOS] [FIXED] - Fixed copying symbol bundles into correct slice folder

Pull Request resolved: react#54641

Test Plan:
```
npx react-native-community/cli init Next --version next --skip-install
cd Next
yarn
cd ios
bundle install
RCT_USE_RN_DEP=1 RCT_USE_PREBUILT_RNCORE=1 RCT_SYMBOLICATE_PREBUILT_FRAMEWORKS=1 bundle exec pod install
```

Run Xcode and observe that you are not able to step into React Native source code.

After this fix, you should be able to step into the source code of React Native.

Reviewed By: cortinico

Differential Revision: D87919202

Pulled By: cipolleschi

fbshipit-source-id: 029bca3e182c170562e358beb50592d5b91d8e8b
Summary:
Pull Request resolved: react#54696

Changelog: [iOS][Fixed] - Fixed dismiss button not appearing consistently in dev loading view

D87465522 introduced lazy initialization to reuse views across multiple `showMessage` calls for better performance. However, this exposed two bugs:

1. **Missing button bug**: Button creation was inside the `if (self->_container == nullptr)` block, which now only executes once. If the first call had `dismissButton=NO`, subsequent calls with `dismissButton=YES` would skip button creation since the container already existed.

2. **Button text wrapping bug**: The button didn't have compression resistance priority set, so Auto Layout could compress it to fit the layout, causing the text to wrap.

This fixes both issues by:
- Moving button creation/removal logic outside the container initialization so it runs on every call and dynamically adds or removes the button based on the current `dismissButton` parameter
- Setting compression resistance and content hugging priorities on the button to prevent it from being compressed, forcing the message label to wrap instead
- Resetting all UI elements in `hide()` to ensure clean state between loading sessions

The performance optimization from D87465522 is preserved - views are still reused during rapid Metro progress updates.

Reviewed By: javache

Differential Revision: D87870932

fbshipit-source-id: 052d4a0685ee288e3b4bf974b203e4f29c652436
Summary:
Pull Request resolved: react#54691

Improve error message for incorrect TurboModule invocations to avoid HostFunction: <unknown error>

Changelog: [Internal]

Reviewed By: cipolleschi

Differential Revision: D87868433

fbshipit-source-id: f351a6e7ea59c56fcb0991eb799c4217382fdb4e
…code (react#54684)

Summary:
Pull Request resolved: react#54684

This diff removes the `RCTTurboModuleSyncVoidMethodsEnabled` feature flag and all related code that allowed TurboModule void methods to execute synchronously.

Changelog: [Internal]

Reviewed By: philIip

Differential Revision: D87865883

fbshipit-source-id: fa64e8105e8329a0b20bb1718dbc01b17464cd06
Summary:
Pull Request resolved: react#54697

This is just a follow-up from the previous NPE fix. I'm adding a couple of
tests for the affected method.

Changelog:
[Internal] [Changed] -

Reviewed By: javache

Differential Revision: D87920989

fbshipit-source-id: fba47365bbb8c94240d3daf11cf4226bfaf701d3
Saadnajmi and others added 26 commits July 16, 2026 10:57
Merge upstream fork point 2166ab7 while preserving the macOS fork behavior.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Make the physical key code optional because the macOS emitter does not provide it.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Refresh the generated public type surface from the resolved 0.84 sources.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add the minimal AppKit aliases and platform guards required by new 0.84 UIKit and SwiftUI code paths.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Avoid the moving nightly ABI and regenerate Yarn and CocoaPods locks for the fork-compatible source build.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Reuse the shared trait-to-role mapping and keep self-reference proxies leaf-only for VoiceOver.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Use one raw payload with KeyDownEvent and KeyUpEvent wrappers across platforms, retain compatible deprecated aliases, and add legacy key normalization coverage.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Apply the border-radius workaround inside upstream style processing so the local overrides object remains defined.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Honor react-native-macos Yarn constraints while retaining the local DotSlash build and test workspace.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Reuse the established macOS and visionOS guard around accessory-view recycle state.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Keep alert windows on the active UIWindowScene and compile the screen fallback only for supported platforms.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Avoid shell interpolation, harden regex parsing, and fully escape generated markdown while preserving existing behavior.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Tighten merged type annotations and preserve macOS compatibility behavior without changing runtime semantics.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Replace the remaining polynomial regex with a linear delimiter parser while preserving frame semantics.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Remove the obsolete moving-nightly Hermes preinstall and refresh the lockfile against the rebased 0.84 package graph.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Keep Metro package extensions on the 0.84 line, restore merge-base-aware Hermes fallback, and preserve shell-safe XCFramework probing.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Keep CocoaPods on merge-base-compatible source-built Hermes and regenerate the RNTester pod lock after rebasing.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Keep UIKit-only presentation helpers off macOS and prevent codegen from traversing pnpm dependency symlinks or generated trees.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Saadnajmi and others added 2 commits July 16, 2026 13:26
Exclude the generic C++ View platform when building the macOS SPM target so host event declarations and implementations remain coherent.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.