From e3c8ef778e0fd17d60d1fa022a228fa8cb839758 Mon Sep 17 00:00:00 2001 From: Alex Hunt Date: Mon, 13 Jul 2026 06:26:48 -0700 Subject: [PATCH 1/2] Enable/mark enableBridgelessArchitecture flag as stable (#57529) Summary: The New Arch has been Stage 4 / rolled out since 0.76. Before cleaning up this flag completely, defensively flip its default value to `true`. Changelog: [Internal] - Net flag value is the same from all entry points Reviewed By: cortinico Differential Revision: D111703112 --- .../featureflags/ReactNativeFeatureFlagsDefaults.kt | 4 ++-- ...ReactNativeFeatureFlagsOverrides_RNOSS_Canary_Android.kt | 4 +--- .../ReactNativeNewArchitectureFeatureFlagsDefaults.kt | 2 -- .../jsinspector-modern/tests/JsiIntegrationTest.cpp | 2 +- .../react/featureflags/ReactNativeFeatureFlagsDefaults.h | 4 ++-- .../ReactNativeFeatureFlagsOverridesOSSCanary.h | 6 +----- .../ReactNativeFeatureFlagsOverridesOSSStable.h | 4 ---- .../scripts/featureflags/ReactNativeFeatureFlags.config.js | 4 ++-- .../src/private/featureflags/ReactNativeFeatureFlags.js | 4 ++-- 9 files changed, 11 insertions(+), 23 deletions(-) diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt index 3a4142d20d16..91f9ac37c7ec 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @generated SignedSource<<5c36c0a5e9e67b43016ab02eab0ecd8f>> + * @generated SignedSource<<9b295106ef57d7fa85846c57bb74a090>> */ /** @@ -51,7 +51,7 @@ public open class ReactNativeFeatureFlagsDefaults : ReactNativeFeatureFlagsProvi override fun enableAndroidTextMeasurementOptimizations(): Boolean = false - override fun enableBridgelessArchitecture(): Boolean = false + override fun enableBridgelessArchitecture(): Boolean = true override fun enableCppPropsIteratorSetter(): Boolean = false diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsOverrides_RNOSS_Canary_Android.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsOverrides_RNOSS_Canary_Android.kt index 793f302d6c72..aceff9047196 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsOverrides_RNOSS_Canary_Android.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsOverrides_RNOSS_Canary_Android.kt @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @generated SignedSource<> + * @generated SignedSource<<1664bdb6cd521d608b9bab74df43eb76>> */ /** @@ -27,8 +27,6 @@ public open class ReactNativeFeatureFlagsOverrides_RNOSS_Canary_Android : ReactN override fun enableAccessibilityOrder(): Boolean = true - override fun enableBridgelessArchitecture(): Boolean = true - override fun enableIntersectionObserverByDefault(): Boolean = true override fun enableSwiftUIBasedFilters(): Boolean = true diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeNewArchitectureFeatureFlagsDefaults.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeNewArchitectureFeatureFlagsDefaults.kt index 87b5088789fe..215266039888 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeNewArchitectureFeatureFlagsDefaults.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeNewArchitectureFeatureFlagsDefaults.kt @@ -23,8 +23,6 @@ package com.facebook.react.internal.featureflags public open class ReactNativeNewArchitectureFeatureFlagsDefaults() : ReactNativeFeatureFlagsDefaults() { - override fun enableBridgelessArchitecture(): Boolean = true - override fun useNativeViewConfigsInBridgelessMode(): Boolean = true override fun useTurboModuleInterop(): Boolean = true diff --git a/packages/react-native/ReactCommon/jsinspector-modern/tests/JsiIntegrationTest.cpp b/packages/react-native/ReactCommon/jsinspector-modern/tests/JsiIntegrationTest.cpp index 11871ddbf2c1..6399ec18e8e4 100644 --- a/packages/react-native/ReactCommon/jsinspector-modern/tests/JsiIntegrationTest.cpp +++ b/packages/react-native/ReactCommon/jsinspector-modern/tests/JsiIntegrationTest.cpp @@ -360,7 +360,7 @@ TYPED_TEST(JsiIntegrationPortableTest, ReactNativeApplicationEnable) { "integrationName": "JsiIntegrationTest", "unstable_frameRecordingEnabled": false, "unstable_isProfilingBuild": false, - "unstable_networkInspectionEnabled": false + "unstable_networkInspectionEnabled": true } })")); diff --git a/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h b/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h index e9403a7c6ebd..ca9ab82ce1ec 100644 --- a/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h +++ b/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @generated SignedSource<> + * @generated SignedSource<<2c09412cdf8edaf4f7d6d90a446ce6fa>> */ /** @@ -84,7 +84,7 @@ class ReactNativeFeatureFlagsDefaults : public ReactNativeFeatureFlagsProvider { } bool enableBridgelessArchitecture() override { - return false; + return true; } bool enableCppPropsIteratorSetter() override { diff --git a/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlagsOverridesOSSCanary.h b/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlagsOverridesOSSCanary.h index a307c7a14436..c12a45156f2a 100644 --- a/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlagsOverridesOSSCanary.h +++ b/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlagsOverridesOSSCanary.h @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @generated SignedSource<<5d286510a4f8642adcc9d38556dd60dd>> + * @generated SignedSource<<8f83d4d3c457e0f6acda799cfe58144a>> */ /** @@ -35,10 +35,6 @@ class ReactNativeFeatureFlagsOverridesOSSCanary : public ReactNativeFeatureFlags return true; } - bool enableBridgelessArchitecture() override { - return true; - } - bool enableIntersectionObserverByDefault() override { return true; } diff --git a/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlagsOverridesOSSStable.h b/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlagsOverridesOSSStable.h index e40b317738e0..d60006ec86c3 100644 --- a/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlagsOverridesOSSStable.h +++ b/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlagsOverridesOSSStable.h @@ -13,10 +13,6 @@ namespace facebook::react { class ReactNativeFeatureFlagsOverridesOSSStable : public ReactNativeFeatureFlagsDefaults { public: - bool enableBridgelessArchitecture() override - { - return true; - } bool useNativeViewConfigsInBridgelessMode() override { return true; diff --git a/packages/react-native/scripts/featureflags/ReactNativeFeatureFlags.config.js b/packages/react-native/scripts/featureflags/ReactNativeFeatureFlags.config.js index 792f79594b2b..7fa01e39e353 100644 --- a/packages/react-native/scripts/featureflags/ReactNativeFeatureFlags.config.js +++ b/packages/react-native/scripts/featureflags/ReactNativeFeatureFlags.config.js @@ -203,13 +203,13 @@ const definitions: FeatureFlagDefinitions = { ossReleaseStage: 'none', }, enableBridgelessArchitecture: { - defaultValue: false, + defaultValue: true, metadata: { description: 'Feature flag to enable the new bridgeless architecture.', expectedReleaseValue: true, purpose: 'release', }, - ossReleaseStage: 'canary', + ossReleaseStage: 'stable', }, enableCppPropsIteratorSetter: { defaultValue: false, diff --git a/packages/react-native/src/private/featureflags/ReactNativeFeatureFlags.js b/packages/react-native/src/private/featureflags/ReactNativeFeatureFlags.js index 806a8ad0fcfd..e5eea64c6e37 100644 --- a/packages/react-native/src/private/featureflags/ReactNativeFeatureFlags.js +++ b/packages/react-native/src/private/featureflags/ReactNativeFeatureFlags.js @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @generated SignedSource<> + * @generated SignedSource<<36a98575851fdf73cb45a0d34c3a8755>> * @flow strict * @noformat */ @@ -270,7 +270,7 @@ export const enableAndroidTextMeasurementOptimizations: Getter = create /** * Feature flag to enable the new bridgeless architecture. */ -export const enableBridgelessArchitecture: Getter = createNativeFlagGetter('enableBridgelessArchitecture', false); +export const enableBridgelessArchitecture: Getter = createNativeFlagGetter('enableBridgelessArchitecture', true); /** * Enable prop iterator setter-style construction of Props in C++ (this flag is not used in Java). */ From e023668b7b0d56f5ba62a42bea7e8366ece1e6b0 Mon Sep 17 00:00:00 2001 From: Alex Hunt Date: Mon, 13 Jul 2026 06:26:48 -0700 Subject: [PATCH 2/2] Decouple network inspection from enableBridgelessArchitecture Summary: Replaces D111696522. Since bridgeless is stable/default-true, this is behavior-preserving. This feature also never strictly depended upon Bridgeless. Changelog: [Internal] Differential Revision: D111703862 --- .../react/internal/featureflags/ReactNativeFeatureFlags.kt | 4 ++-- .../ReactCommon/jsinspector-modern/InspectorFlags.cpp | 1 - .../tests/utils/InspectorFlagOverridesGuard.cpp | 7 ------- .../react/featureflags/ReactNativeFeatureFlags.h | 4 ++-- .../scripts/featureflags/ReactNativeFeatureFlags.config.js | 2 +- .../src/private/featureflags/ReactNativeFeatureFlags.js | 4 ++-- 6 files changed, 7 insertions(+), 15 deletions(-) diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt index 596ec7484e85..04d0b80b3c64 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @generated SignedSource<> + * @generated SignedSource<<854bb2a573f2c69d495aa1721f903ab0>> */ /** @@ -379,7 +379,7 @@ public object ReactNativeFeatureFlags { public fun fuseboxFrameRecordingEnabled(): Boolean = accessor.fuseboxFrameRecordingEnabled() /** - * Enable network inspection support in the React Native DevTools CDP backend. Requires `enableBridgelessArchitecture`. This flag is global and should not be changed across React Host lifetimes. + * Enable network inspection support in the React Native DevTools CDP backend. This flag is global and should not be changed across React Host lifetimes. */ @JvmStatic public fun fuseboxNetworkInspectionEnabled(): Boolean = accessor.fuseboxNetworkInspectionEnabled() diff --git a/packages/react-native/ReactCommon/jsinspector-modern/InspectorFlags.cpp b/packages/react-native/ReactCommon/jsinspector-modern/InspectorFlags.cpp index 6c64e2f1393c..59cae70d8b70 100644 --- a/packages/react-native/ReactCommon/jsinspector-modern/InspectorFlags.cpp +++ b/packages/react-native/ReactCommon/jsinspector-modern/InspectorFlags.cpp @@ -82,7 +82,6 @@ const InspectorFlags::Values& InspectorFlags::loadFlagsAndAssertUnchanged() false, #endif .networkInspectionEnabled = - ReactNativeFeatureFlags::enableBridgelessArchitecture() && ReactNativeFeatureFlags::fuseboxNetworkInspectionEnabled(), .perfIssuesEnabled = ReactNativeFeatureFlags::perfIssuesEnabled(), }; diff --git a/packages/react-native/ReactCommon/jsinspector-modern/tests/utils/InspectorFlagOverridesGuard.cpp b/packages/react-native/ReactCommon/jsinspector-modern/tests/utils/InspectorFlagOverridesGuard.cpp index 17a83c994139..6dcdcd696991 100644 --- a/packages/react-native/ReactCommon/jsinspector-modern/tests/utils/InspectorFlagOverridesGuard.cpp +++ b/packages/react-native/ReactCommon/jsinspector-modern/tests/utils/InspectorFlagOverridesGuard.cpp @@ -46,13 +46,6 @@ class ReactNativeFeatureFlagsOverrides ReactNativeFeatureFlagsDefaults::fuseboxNetworkInspectionEnabled()); } - bool enableBridgelessArchitecture() override { - // NOTE: Network support is gated by (enableBridgelessArchitecture && - // fuseboxNetworkInspectionEnabled). - return overrides_.networkInspectionEnabled.value_or( - ReactNativeFeatureFlagsDefaults::enableBridgelessArchitecture()); - } - bool enableNetworkEventReporting() override { return overrides_.enableNetworkEventReporting.value_or( ReactNativeFeatureFlagsDefaults::enableNetworkEventReporting()); diff --git a/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h b/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h index ec0b8ce66b86..a2ca86c275a7 100644 --- a/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h +++ b/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @generated SignedSource<<5c7e2061344bf998e5fc6b621af2ff45>> + * @generated SignedSource<<4276ae19d55acb679c9e635122e813b3>> */ /** @@ -330,7 +330,7 @@ class ReactNativeFeatureFlags { RN_EXPORT static bool fuseboxFrameRecordingEnabled(); /** - * Enable network inspection support in the React Native DevTools CDP backend. Requires `enableBridgelessArchitecture`. This flag is global and should not be changed across React Host lifetimes. + * Enable network inspection support in the React Native DevTools CDP backend. This flag is global and should not be changed across React Host lifetimes. */ RN_EXPORT static bool fuseboxNetworkInspectionEnabled(); diff --git a/packages/react-native/scripts/featureflags/ReactNativeFeatureFlags.config.js b/packages/react-native/scripts/featureflags/ReactNativeFeatureFlags.config.js index 7fa01e39e353..aaef339af772 100644 --- a/packages/react-native/scripts/featureflags/ReactNativeFeatureFlags.config.js +++ b/packages/react-native/scripts/featureflags/ReactNativeFeatureFlags.config.js @@ -673,7 +673,7 @@ const definitions: FeatureFlagDefinitions = { metadata: { dateAdded: '2024-01-31', description: - 'Enable network inspection support in the React Native DevTools CDP backend. Requires `enableBridgelessArchitecture`. This flag is global and should not be changed across React Host lifetimes.', + 'Enable network inspection support in the React Native DevTools CDP backend. This flag is global and should not be changed across React Host lifetimes.', expectedReleaseValue: true, purpose: 'experimentation', }, diff --git a/packages/react-native/src/private/featureflags/ReactNativeFeatureFlags.js b/packages/react-native/src/private/featureflags/ReactNativeFeatureFlags.js index e5eea64c6e37..a9c690414348 100644 --- a/packages/react-native/src/private/featureflags/ReactNativeFeatureFlags.js +++ b/packages/react-native/src/private/featureflags/ReactNativeFeatureFlags.js @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @generated SignedSource<<36a98575851fdf73cb45a0d34c3a8755>> + * @generated SignedSource<<71e307d568421d49e3943f58c4fcb163>> * @flow strict * @noformat */ @@ -444,7 +444,7 @@ export const fuseboxEnabledRelease: Getter = createNativeFlagGetter('fu */ export const fuseboxFrameRecordingEnabled: Getter = createNativeFlagGetter('fuseboxFrameRecordingEnabled', false); /** - * Enable network inspection support in the React Native DevTools CDP backend. Requires `enableBridgelessArchitecture`. This flag is global and should not be changed across React Host lifetimes. + * Enable network inspection support in the React Native DevTools CDP backend. This flag is global and should not be changed across React Host lifetimes. */ export const fuseboxNetworkInspectionEnabled: Getter = createNativeFlagGetter('fuseboxNetworkInspectionEnabled', true); /**