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

$ status

wire 2026-07-09
stories 29

© 2026 RepoJournal Home Showcase How it works Privacy

$ the-wire · showcase

REACT FAST REFRESH FIXED: MEMO EDITS NOW STICK

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

React's hot reload engine was silently dropping edits to memo comparison functions and lazy wrapper types, forcing full remounts to see changes.

Three connected fixes landed overnight across React's Fast Refresh system. First, edits to a memo's comparison function now take effect immediately [1]. Previously, adding or removing that second argument to memo() was invisible until something else remounted the component tree. The fix required two changes: switching SimpleMemoComponent to MemoComponent when a comparison function appears, and adding MemoComponent to the hot reload type resolution so existing fibers read the new .compare value. Second, lazy() wrapper edits now get caught by the refresh scan [2]. Type changes inside a lazy's inner component (like wrapping it in memo) were missed entirely, and SimpleMemoComponent remounts were getting the wrong fiber tag. Third, React now derives fiber tags from resolved types at mount time [3], preventing the old/new type mismatch errors that broke tree recreation during edits. On the React Native side, the bundle location setting now persists across app restarts [5], and the team is aggressively cleaning up internal exports: src/* mappings are gone [6], the undocumented Touchable base type is removed from public API [7], and a new 'react-native/setup-env' export replaces the special-case InitializeCore import path [8]. Node 21+ test failures also got fixed [4] by working around V8's Proxy stack setter behavior.

Action items

References

  1. [1] [Fast Refresh] Make edits to a memo comparison function take effect ↗ facebook/react
  2. [2] [Fast Refresh] Find and remount wrapper edits behind lazy() ↗ facebook/react
  3. [3] [Fast Refresh] Derive the fiber tag from the resolved type when mounting ↗ facebook/react
  4. [4] [test] Fix Error Proxy stack assignment in Node.js 21+ (#36967) ↗ facebook/react
  5. [5] Persist Change Bundle Location host setting (#57425) ↗ facebook/react-native
  6. [6] Remove src/* exports mapping (#57484) ↗ facebook/react-native
  7. [7] Remove Touchable (base) from public API (#57476) ↗ facebook/react-native
  8. [8] Expose 'react-native/setup-env' to replace InitializeCore (#57475) ↗ facebook/react-native

Quick answers

What shipped in Meta on July 9, 2026?
React's hot reload engine was silently dropping edits to memo comparison functions and lazy wrapper types, forcing full remounts to see changes. In total, 21 commits, 7 pull requests, and 1 releases landed.
Who contributed to Meta on July 9, 2026?
1 developer shipped this update, including sophiebits.
What were the notable Meta updates?
[Fast Refresh] Make edits to a memo comparison function take effect, [Fast Refresh] Find and remount wrapper edits behind lazy(), and [Fast Refresh] Derive the fiber tag from the resolved type when mounting.