104 wires and counting

$ follow Meta

Keep up with Meta in about 3 minutes: what actually shipped — the commits, pull requests, releases, and security advisories that matter.

or

fair warning: these emails are deeply technical. diffs, version numbers, CVEs, benchmark deltas. if that's not your idea of a good read, this isn't your newsletter.

Folds into your digest — weekly by default, monthly if you prefer. Unsubscribe in one click.

$ status

wire 2026-09-05
stories 28

© 2026 RepoJournal Home Showcase Explore How it works Privacy

$ the-wire · showcase

React Native fixes bridgeless ordering and commits dev-machine paths

By RepoJournal · Filed · About Meta

React Native's bridgeless runtime can now schedule buffered CallInvoker work before earlier module calls, and the `spm add` command no longer writes a developer's absolute hermesc path into the app project.

In bridgeless mode, native code reached JS through two paths that both ended in the RuntimeScheduler queue but arrived differently: `callFunctionOnModule` went through the instance's BufferedRuntimeExecutor, while the CallInvoker skipped the buffer entirely and went straight to `scheduleTask`. That let a CallInvoker task issued after a module call reach the runtime first, violating ordering. The fix routes CallInvoker work through the same buffer, so module calls and async CallInvoker work now execute in issue order [1].

`npx react-native spm add` used to write `HERMES_CLI_PATH` into the app's committed `project.pbxproj`, baking in the absolute path to `hermesc` from whichever machine ran the command. Every SwiftPM-converted app therefore committed one developer's disk layout. The CLI now stops setting it, since `react-native-xcode.sh` already resolves `hermesc` at build time through react-native's own dependency graph [2].

Two smaller correctness fixes shipped as well. The source-optimized codegen preset now triggers native component codegen even when valid Flow formatting puts a comment or whitespace between `codegenNativeComponent` and its type arguments; previously such calls bypassed codegen and emitted an ordinary runtime call. The check now uses the stable `codegenNativeComponent` reference [3]. And the React rust compiler preserves the RefValue source location across phi joins, so validation errors like "Cannot access ref value during render" point to the original `ref.current` access instead of the component's return line [4].

A DevTools test dependency was upgraded from chrome-devtools-mcp 1.3.0 to 1.8.0. The new version requires `pageId` for page-scoped CLI tools and rejects non-hex session ids, so the e2e now passes `pageId` and uses `crypto.randomUUID()` [5]. The change is scoped to the cdt-mcp e2e harness and does not affect runtime DevTools behavior.

Action items

References

  1. [1] Buffer async CallInvoker work with module calls (#58313) ↗ facebook/react-native
  2. [2] stop baking an absolute HERMES_CLI_PATH into the app pbxproj (#58292) ↗ facebook/react-native
  3. [3] Run codegen for formatted native component calls (#58257) ↗ facebook/react-native
  4. [4] [rust-compiler] Preserve ref access location across phi joins ↗ facebook/react
  5. [5] [DevTools] Upgrade chrome-devtools-mcp to 1.8.0 in cdt-mcp e2e ↗ facebook/react

Quick answers

What shipped in Meta on September 5, 2026?
React Native's bridgeless runtime can now schedule buffered CallInvoker work before earlier module calls, and the `spm add` command no longer writes a developer's absolute hermesc path into the app project. In total, 26 commits and 2 pull requests landed.
Who contributed to Meta on September 5, 2026?
7 developers shipped this update, including jimmyhmiller, hoxyq, Pieter De Baets, Christian Falch, Oskar Eichler, Rubén Norte, and Jakub Piasecki.
What were the notable Meta updates?
Buffer async CallInvoker work with module calls (#58313), stop baking an absolute HERMES_CLI_PATH into the app pbxproj (#58292), and Run codegen for formatted native component calls (#58257).