114 wires and counting
$ status: archived — this briefing has stopped; the archive stays readable. browse live briefings →

$ status

wire 2026-07-21
stories 15

© 2026 RepoJournal Home Showcase Explore How it works Privacy

$ the-wire · showcase

REACT PATCHES HIDDEN COMPONENT STATE BUG, REACT-NATIVE FIXES KEYBOARD TRAP

By RepoJournal · Filed · About Meta · Composed from the cited sources · methodology

React shipped a critical fix for useSyncExternalStore mutations being missed when subtrees toggle visibility, while React-Native plugged an Android keyboard that won't close on unmount.

The React team landed a surgical fix [1] for a state synchronization bug in Fiber where components using useSyncExternalStore would fall stale after their Activity subtrees were hidden and revealed. The bug occurred because passive effects disconnected on hide, then replayed on reveal without a full render, leaving updateStoreInstance out of sync. This is the kind of mutation phantom that only surfaces under specific visibility patterns and would have caused subtle data inconsistencies in apps relying on external state stores.

On the React-Native desk, the team squashed an annoying Android regression [2] where the keyboard would stay open after a focused TextInput unmounted. The culprit was the unmount cleanup order: TextInputState was unregistered before the blur signal fired, so blur would check if the input was still registered, find nothing, and silently no-op. Simple reordering of those cleanup steps kills it.

The 0.87 release candidate push continues with a Hermes version bump [5] and a scripting fix [6] that corrects how hermes-version tags get written to the build config. React-Native also re-applied a performance module cleanup [3] that removes the legacy performance fallback, requiring the native NativePerformance module instead.

On the React side, a secondary fix landed [4] for scrollIntoView behavior on empty Fragments, ensuring the library handles edge cases like rendering a Fragment with no Host Components inside it.

Action items

References

  1. [1] [Fiber] Detect useSyncExternalStore mutations missed while Activity tree was hidden ↗ facebook/react
  2. [2] Blur focused TextInput before unregistering it on unmount (fixes Android keyboard staying open) (#57584) ↗ facebook/react-native
  3. [3] Re-apply "Require the NativePerformance module and drop the legacy performance fallback" (#57609) ↗ facebook/react-native
  4. [4] [DOM] Handle scrolling of empty Fragments below containers ↗ facebook/react
  5. [5] Bump Hermes version to 250829098.0.16 to align with 0.87 rc2 (#57621) ↗ facebook/react-native
  6. [6] Fix bump-hermes-version.js to write hermes-v prefixed tag to .hermesv1version (#57619) ↗ facebook/react-native

Quick answers

What shipped in Meta on July 21, 2026?
React shipped a critical fix for useSyncExternalStore mutations being missed when subtrees toggle visibility, while React-Native plugged an Android keyboard that won't close on unmount. In total, 13 commits and 2 pull requests landed.
Who contributed to Meta on July 21, 2026?
5 developers shipped this update, including sophiebits, eps1lon, Andrew Sidorchuk, Rubén Norte, and Zeya Peng.
What were the notable Meta updates?
[Fiber] Detect useSyncExternalStore mutations missed while Activity tree was hidden, Blur focused TextInput before unregistering it on unmount (fixes Android keyboard staying open) (#57584), and Re-apply "Require the NativePerformance module and drop the legacy performance fallback" (#57609).