$ the-wire · showcase
React Native sheds Paper-era internals, stabilizes Maestro e2e
By RepoJournal · Filed · About Meta
Core component specs stop announcing old-architecture names, and e2e suites get guards for flaky keyboard and startup timing.
React Native is formally dropping its Paper-era naming convention. `paperComponentName` is removed from five core component specs, so generated view configs now announce their real Fabric names instead of the old-architecture `RCT`-prefixed names [1]. This is preparation for a future where the old architecture is fully unsupported. A related fix ensures `unstable_preserveClassPrivate` only preserves private syntax when the selected transform profile also preserves class syntax; previously it disabled private transforms for every profile, and with `hermes-legacy`, Babel would abort because its class transform requires those private transforms [2].
React's DevTools MCP tooling tightened its agent-facing API. The `react_get_component_by_dom_element` tool no longer advertises a `hooks?` field in its description, because the tool returns host nodes that never have hooks; agents were requesting a field that was never returned [3]. Test tooling also became more robust: Maestro keyboard dismissal in the RNTester Image flow is now Android-only, avoiding an iOS race where the keyboard dismisses before Maestro's `hideKeyboard`, a failure seen repeatedly in Maestro Cloud [4].
The same e2e suite now waits up to 60 seconds for the template app to become accessibility-visible, replacing an immediate assertion that intermittently failed on Android ARM64 debug under native translation [5]. The MAINTAINERS file gained a new name [6], and a routine JNI blob collector change landed [7]. Nothing in these changes breaks public APIs; the `paperComponentName` removal only affects generated internals.
Action items
- → Review internal specs for any lingering paperComponentName usage and align with Fabric naming facebook/react-native [plan]
- → Monitor DevTools MCP agent integrations for adjustments after the hooks field removal facebook/react [monitor]
References
- [1] Stop using `paperComponentName` in React Native core component specs (#58188) ↗ facebook/react-native
- [2] Guard private syntax preservation by transform profile (#58253) ↗ facebook/react-native
- [3] [DevTools] Stop advertising hooks on react_get_component_by_dom_element ↗ facebook/react
- [4] Make Maestro keyboard dismissal Android-only (#58288) ↗ facebook/react-native
- [5] Wait for Maestro template app startup (#58289) ↗ facebook/react-native
- [6] Update MAINTAINERS file (#37515) ↗ facebook/react
- [7] xplat/js/react-native-github/packages/react-native/ReactAndroid/src/main/jni/react/reactnativeblob/BlobCollector.cpp (#58300) ↗ facebook/react-native