Integrate React Native 0.86 March 10 nightly - #16397
Conversation
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 272e5076-5e5a-4139-8412-8b4e7f59f370
There was a problem hiding this comment.
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.
| 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 |
| { | ||
| key: 'TurboCxxModuleExample', | ||
| category: 'Basic', | ||
| module: require('../examples/TurboModule/TurboCxxModuleExample'), | ||
| }, |
| * LICENSE file in the root directory of this source tree. | ||
| */ | ||
|
|
||
| #include "DefaultTurboModules.h" |
| { | ||
| 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
There was a problem hiding this comment.
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-298and intentionally differs from the target upstream file, but it has no entry invnext/overrides.json. Unlike the adjacent TEMP patches registered atvnext/overrides.json:193-202,validate-overridestherefore cannot detect or rebase future upstream changes to this override. Add apatchentry targetingpackages/react-native/ReactCommon/react/nativemodule/defaults/DefaultTurboModules.cppwith 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 legacyTouch::timestampinCompositionEventHandler.cpp:1041-1043. The sameActiveTouchis reused for move and end dispatches, so those RawEvents retain the timestamp created at pointer-down instead of the current event time. UpdateUpdateActiveTouchto refreshtimeStamp(using the steady/high-resolution clock) before dispatching each touch event.
vnext/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj:143 - This suppresses C4715 for every
Microsoft.ReactNativetranslation unit, allowing future non-void functions with missing returns to compile despiteTreatWarningAsError. The established pattern scopes this warning to individual upstream sources invnext/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.
Description
@react-native/*dependencies from0.85.0-nightly-20260303-c26dbe286to0.86.0-nightly-20260310-621592d1fSupersedes #16364 with a clean branch based on current
main.Type of Change
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