Skip to content

Integrate React Native 0.86 March 10 nightly - #16397

Open
anuagragith wants to merge 2 commits into
microsoft:mainfrom
anuagragith:integrate/nightly-20260310-v3
Open

Integrate React Native 0.86 March 10 nightly#16397
anuagragith wants to merge 2 commits into
microsoft:mainfrom
anuagragith:integrate/nightly-20260310-v3

Conversation

@anuagragith

@anuagragith anuagragith commented Aug 22, 2026

Copy link
Copy Markdown
Contributor

Description

  • Updated React Native and @react-native/* dependencies from 0.85.0-nightly-20260303-c26dbe286 to 0.86.0-nightly-20260310-621592d1f
  • Synchronized affected RNTester examples with the March 10 upstream checkpoint
  • Resolved Windows platform-override conflicts while preserving Windows-specific behavior
  • Added the upstream default TurboModule implementation and wired it into the RNW native projects
  • Included the Desktop warning, deterministic pointer snapshot, and nested Image E2E fixes validated on Updates React Native Windows to nightly 0.86.0-nightly-20260310-621592d1f (Mar 10, 2026) #16364
  • Added prerelease Beachball change files

Supersedes #16364 with a clean branch based on current main.

Type of Change

  • Bug fix (non-breaking change which fixes an issue)

Why

Update React Native Windows to the March 10 React Native nightly checkpoint and begin the RN 0.86 integration.

Validation

Microsoft Reviewers: Open in CodeFlow

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 272e5076-5e5a-4139-8412-8b4e7f59f370
Copilot AI balanced review requested due to automatic review settings August 22, 2026 05:42
@anuagragith
anuagragith requested review from a team as code owners August 22, 2026 05:42

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Advances React Native Windows to the React Native 0.86 March 10 nightly and synchronizes native integration, platform overrides, RNTester content, and validation assets.

Changes:

  • Updates React Native, Flow, templates, package manifests, and lockfile resolutions.
  • Integrates new Fabric observers, view transitions, TurboModules, and event timestamps.
  • Synchronizes RNTester examples, test IDs, E2E snapshots, and Beachball changes.

Reviewed changes

Copilot reviewed 80 out of 81 changed files in this pull request and generated 7 comments.

Show a summary per file
File Description
yarn.lock Updates dependency resolutions.
vnext/src-win/src/private/featureflags/ReactNativeFeatureFlagsBase.js Updates Flow generic syntax.
vnext/src-win/Libraries/Network/RCTNetworking.windows.js Updates Flow generic syntax.
vnext/src-win/Libraries/NativeComponent/ViewConfigIgnore.windows.js Updates Flow syntax.
vnext/src-win/Libraries/NativeComponent/BaseViewConfig.windows.js Adds ARIA and ID attributes.
vnext/src-win/Libraries/Components/AccessibilityInfo/AccessibilityInfo.windows.js Synchronizes accessibility behavior.
vnext/Shared/Shared.vcxitems Adds new Fabric sources.
vnext/Scripts/Warm-RnwFeedCache.ps1 Updates the nightly example.
vnext/Scripts/creaternwapp.cmd Updates the app template.
vnext/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/uimanager/UIManager.cpp Adds view-transition delegates.
vnext/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/TouchEventEmitter.h Adds timestamp primitives.
vnext/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/TouchEventEmitter.cpp Propagates event timestamps.
vnext/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/defaults/DefaultTurboModules.cpp Adds default TurboModules.
vnext/ReactCommon/TEMP_UntilReactCommonUpdate/jsinspector-modern/NetworkIOAgent.cpp Uses the shared Base64 utility.
vnext/package.json Updates RN and Flow versions.
vnext/overrides.json Advances override baselines.
vnext/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj Changes warning suppression.
vnext/Desktop/React.Windows.Desktop.vcxproj Changes warning suppression.
vnext/.flowconfig Requires Flow 0.304.
packages/sample-custom-component/package.json Updates sample dependencies.
packages/sample-app-fabric/package.json Updates Fabric sample dependencies.
packages/react-native-windows-init/package.json Updates the RN dependency.
packages/playground/package.json Updates Playground dependencies.
packages/e2e-test-app-fabric/test/PointerClickEventsTest.test.ts Validates pointer timestamps.
packages/e2e-test-app-fabric/test/ImageComponentTest.test.ts Updates the nested-image selector.
packages/e2e-test-app-fabric/test/__snapshots__/snapshotPages.test.js.snap Synchronizes RNTester snapshots.
packages/e2e-test-app-fabric/test/__snapshots__/ImageComponentTest.test.ts.snap Updates the image snapshot.
packages/e2e-test-app-fabric/package.json Updates E2E dependencies.
packages/@rnw-scripts/metro-dev-config/package.json Updates Metro and RN.
packages/@rnw-scripts/integrate-rn/package.json Updates template and RN versions.
packages/@rnw-scripts/eslint-config/package.json Updates RN ESLint config.
packages/@rnw-scripts/babel-react-native-config/package.json Updates the Babel preset.
packages/@react-native/tester/package.json Advances RNTester nightly.
packages/@react-native/tester/overrides.json Advances RNTester overrides.
packages/@react-native/tester/js/utils/RNTesterList.ios.js Registers the C++ module example.
packages/@react-native/tester/js/utils/RNTesterList.android.js Registers the C++ module example.
packages/@react-native/tester/js/examples/TurboModule/TurboCxxModuleExample.js Adds the TurboModule example.
packages/@react-native/tester/js/examples/Transform/TransformExample.js Adds names and test IDs.
packages/@react-native/tester/js/examples/Touchable/TouchableExample.js Synchronizes Touchable examples.
packages/@react-native/tester/js/examples/Text/TextSharedExamples.js Makes the link example testable.
packages/@react-native/tester/js/examples/Text/TextExample.ios.js Adds text test identifiers.
packages/@react-native/tester/js/examples/Text/TextExample.android.js Adds text test containers.
packages/@react-native/tester/js/examples/Pressable/PressableExample.js Adds stable example names.
packages/@react-native/tester/js/examples/Image/ImageExample.js Adds image names and test IDs.
packages/@react-native/tester/js/examples/Filter/FilterExample.js Adds filter test IDs.
packages/@react-native/tester/js/examples/Button/ButtonExample.js Adds stable example names.
packages/@react-native/tester/js/examples/BoxShadow/BoxShadowExample.js Adds names and test containers.
packages/@react-native/tester/js/examples/Appearance/AppearanceExample.js Names theme examples.
packages/@react-native/tester/js/examples/Alert/AlertExample.js Names alert examples.
packages/@react-native/tester/js/examples/ActivityIndicator/ActivityIndicatorExample.js Names indicator examples.
packages/@react-native/monorepo/package.json Updates Metro and Flow.
packages/@react-native/monorepo/overrides.json Advances the monorepo baseline.
packages/@react-native-windows/tester/src/js/utils/RNTesterList.windows.js Adds the C++ module entry.
packages/@react-native-windows/tester/src/js/examples/Touchable/TouchableExample.windows.js Synchronizes Touchable overrides.
packages/@react-native-windows/tester/src/js/examples/Text/TextSharedExamples.windows.js Synchronizes the link example.
packages/@react-native-windows/tester/src/js/examples/Text/TextExample.windows.js Synchronizes text identifiers.
packages/@react-native-windows/tester/src/js/examples/Pressable/PressableExample.windows.js Synchronizes Pressable names.
packages/@react-native-windows/tester/src/js/examples/Image/ImageExample.windows.js Synchronizes image metadata.
packages/@react-native-windows/tester/src/js/examples/ActivityIndicator/ActivityIndicatorExample.windows.js Synchronizes indicator names.
packages/@react-native-windows/tester/src/js/examples-win/Button/ButtonExample.windows.js Synchronizes button names.
packages/@react-native-windows/tester/package.json Updates tester dependencies.
packages/@react-native-windows/tester/overrides.json Advances Windows overrides.
packages/@react-native-windows/perf-testing/package.json Updates the RN peer version.
packages/@react-native-windows/cli/package.json Updates the RN development version.
packages/@react-native-windows/automation-channel/package.json Updates the RN development version.
packages/@office-iss/react-native-win32/src-win/Libraries/Network/RCTNetworking.win32.js Updates Flow generic syntax.
packages/@office-iss/react-native-win32/src-win/Libraries/NativeComponent/BaseViewConfig.win32.js Adds ARIA and ID attributes.
packages/@office-iss/react-native-win32/src-win/Libraries/Components/AccessibilityInfo/AccessibilityInfo.win32.js Synchronizes accessibility behavior.
packages/@office-iss/react-native-win32/package.json Updates Win32 dependencies.
packages/@office-iss/react-native-win32/overrides.json Advances Win32 overrides.
packages/@office-iss/react-native-win32/.flowconfig Requires Flow 0.304.
packages/@office-iss/react-native-win32-tester/src/js/utils/RNTesterList.win32.js Adds the C++ module entry.
packages/@office-iss/react-native-win32-tester/package.json Updates Win32 tester dependencies.
packages/@office-iss/react-native-win32-tester/overrides.json Advances tester overrides.
package.json Updates the root RN version.
change/react-native-windows-init-53ef3775-da45-4571-b19b-dc779c19e5cc.json Adds an init prerelease change.
change/react-native-windows-425fdab2-f5eb-4834-8a89-ee086d4bbcc2.json Adds an RNW prerelease change.
change/@react-native-windows-perf-testing-33791a23-ae76-4ba0-bf50-49a940d870e8.json Adds a performance prerelease change.
change/@react-native-windows-cli-66f8bb72-2223-4893-8a6a-2ab820ac0e0f.json Adds a CLI prerelease change.
change/@react-native-windows-automation-channel-58609dc1-dbb5-4bbe-9521-41be4bf14e9c.json Adds an automation prerelease change.
change/@office-iss-react-native-win32-851c2fb9-e545-430b-bbf9-bcc1431006f0.json Adds a Win32 prerelease change.

💡 Configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment on lines +45 to +49
static HighResTimeStamp getTimestampFromTouchEvent(const TouchEvent& event) {
if (!event.changedTouches.empty()) {
const auto& firstChangedTouch = *event.changedTouches.begin();
return firstChangedTouch.timeStamp;
}
.EXAMPLE
# Warm against explicit versions and keep the generated projects to inspect:
./Warm-RnwFeedCache.ps1 -ReactNativeVersion 0.85.0-nightly-20260303-c26dbe286 -KeepWorkDir
./Warm-RnwFeedCache.ps1 -ReactNativeVersion 0.86.0-nightly-20260310-621592d1f -KeepWorkDir
Comment on lines +490 to +494
{
key: 'TurboCxxModuleExample',
category: 'Basic',
module: require('../examples/TurboModule/TurboCxxModuleExample'),
},
* LICENSE file in the root directory of this source tree.
*/

#include "DefaultTurboModules.h"
Comment on lines +383 to +387
{
key: 'TurboCxxModuleExample',
category: 'Basic',
module: require('../examples/TurboModule/TurboCxxModuleExample'),
},
%(PreprocessorDefinitions)
</PreprocessorDefinitions>
<AdditionalUsingDirectories>$(WindowsSDK_WindowsMetadata);$(AdditionalUsingDirectories)</AdditionalUsingDirectories>
<DisableSpecificWarnings>4715;%(DisableSpecificWarnings)</DisableSpecificWarnings>
%(AdditionalIncludeDirectories);
</AdditionalIncludeDirectories>
<AdditionalOptions>%(AdditionalOptions) /Zc:strictStrings /bigobj</AdditionalOptions>
<DisableSpecificWarnings>4715;%(DisableSpecificWarnings)</DisableSpecificWarnings>
Use the same @react-native-community/template version as createnwapp.cmd so authenticated warm-up runs cache the package closure required by CLI verification jobs.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 272e5076-5e5a-4139-8412-8b4e7f59f370
Copilot AI review requested due to automatic review settings August 22, 2026 16:51

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 80 out of 81 changed files in this pull request and generated no new comments.

Suppressed comments (6)

Previously missed (2) — in code that hasn't changed since the last review.

packages/@react-native-windows/tester/src/js/utils/RNTesterList.windows.js:494

  • RNW has no native provider for NativeCxxModuleExampleCxx; the only Windows-side definition is a nullable JS spec, and every action in this example optional-chains the missing module. This menu item therefore exposes controls that produce no results. Remove the entry until the Windows native implementation is registered.
  {
    key: 'TurboCxxModuleExample',
    category: 'Basic',
    module: require('../examples/TurboModule/TurboCxxModuleExample'),
  },

packages/@office-iss/react-native-win32-tester/src/js/utils/RNTesterList.win32.js:387

  • Win32 has no native provider for NativeCxxModuleExampleCxx; the local spec is nullable and the example's actions consequently no-op. Remove this menu entry until a Win32 native implementation is registered.
  {
    key: 'TurboCxxModuleExample',
    category: 'Basic',
    module: require('../examples/TurboModule/TurboCxxModuleExample'),
  },

vnext/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/defaults/DefaultTurboModules.cpp:8

  • This file is copied over the installed React Native source by ReactCommon.vcxproj:289-298 and intentionally differs from the target upstream file, but it has no entry in vnext/overrides.json. Unlike the adjacent TEMP patches registered at vnext/overrides.json:193-202, validate-overrides therefore cannot detect or rebase future upstream changes to this override. Add a patch entry targeting packages/react-native/ReactCommon/react/nativemodule/defaults/DefaultTurboModules.cpp with the target base hash.
    vnext/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/TouchEventEmitter.cpp:48
  • This now timestamps touch events from Touch::timeStamp, but the Windows producer only refreshes the separate legacy Touch::timestamp in CompositionEventHandler.cpp:1041-1043. The same ActiveTouch is reused for move and end dispatches, so those RawEvents retain the timestamp created at pointer-down instead of the current event time. Update UpdateActiveTouch to refresh timeStamp (using the steady/high-resolution clock) before dispatching each touch event.
    vnext/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj:143
  • This suppresses C4715 for every Microsoft.ReactNative translation unit, allowing future non-void functions with missing returns to compile despite TreatWarningAsError. The established pattern scopes this warning to individual upstream sources in vnext/Shared/Shared.vcxitems:421-424,480,484-488. Remove the project-wide suppression and apply it only to the source that emits the warning.
    vnext/Desktop/React.Windows.Desktop.vcxproj:121
  • This suppresses C4715 for every Desktop translation unit, so missing-return defects can compile silently. RNW otherwise scopes this warning per source in vnext/Shared/Shared.vcxitems:421-424,480,484-488. Remove the project-wide suppression and attach it only to the source that emits the warning.

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.

3 participants