You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Bookkeeping record. All 10 commits have already landed on 260318099.0.0-stable, so there is nothing to action here. Filing it so the 0.88 pick list reflects the work, and so the remaining release-side blocker is written down somewhere.
The gap
RN 0.88 moved to Hermes 260318099, whose stable branch was cut from static_h around 2026-03-18. facebook/hermes#1988 ("Backport new JSI improvements", 21 commits from static_h) landed on the 250829098 branch (used by RN 0.87) on 2026-04-15, after that cut.
The 260318099 branch received only half of it. The JSI declarations ("Add X API") crossed over, the Hermes implementations ("Implement X") and their SynthTrace support did not. The JSI surface in API/jsi/jsi/jsi.h was byte-identical between the two branches, so nothing failed to compile and nothing raised an error. Every affected API silently fell through to the jsi base implementation.
This was found through tryGetMutableBuffer, where expo-modules-core's Android instrumentation tests caught the zero-copy regression on 0.88.0-rc.0 (expo/expo#49910). The other five APIs had the same defect and were latent.
Nine landed as Graft "[SH] ..." to shermes/stable. Number 3 landed through facebook/hermes#2179.
Verified by content rather than by commit subject. Every HermesRuntimeImpl method (push, tryGetMutableBuffer, detached, createUint8Array, isTypedArray, createError, createRangeError, createSyntaxError, length) is now present in API/hermes/hermes.cpp on the 0.88 branch, and API/hermes/TracingRuntime.cpp matches the 0.87 branch exactly (4 / 1 / 2 occurrences of createUint8Array / tryGetMutableBuffer / createError, against 0 / 0 / 0 before).
Still outstanding, and this is the part that affects the release
There is no 260318099.0.3 tag. Tags stop at hermes-v260318099.0.2, and RN 0.88-stable pins 260318099.0.2 in packages/react-native/sdks/hermes-engine/version.properties and packages/react-native/package.json. None of the work above reaches the release until a new tag is cut and RN is bumped to it.
xplat/static_h still carries that same change (maybeDeadVariableScopes_ is still present in lib/IR/IR.cpp on static_h). The back-out called this out as a follow-up that was not included, since static_h is the source the next stable sync pulls from.
Target Branch
0.88
Link to commit or PR to be picked
Description
Bookkeeping record. All 10 commits have already landed on
260318099.0.0-stable, so there is nothing to action here. Filing it so the 0.88 pick list reflects the work, and so the remaining release-side blocker is written down somewhere.The gap
RN 0.88 moved to Hermes
260318099, whose stable branch was cut fromstatic_haround 2026-03-18. facebook/hermes#1988 ("Backport new JSI improvements", 21 commits fromstatic_h) landed on the250829098branch (used by RN 0.87) on 2026-04-15, after that cut.The
260318099branch received only half of it. The JSI declarations ("AddXAPI") crossed over, the Hermes implementations ("ImplementX") and their SynthTrace support did not. The JSI surface inAPI/jsi/jsi/jsi.hwas byte-identical between the two branches, so nothing failed to compile and nothing raised an error. Every affected API silently fell through to thejsibase implementation.This was found through
tryGetMutableBuffer, whereexpo-modules-core's Android instrumentation tests caught the zero-copy regression on 0.88.0-rc.0 (expo/expo#49910). The other five APIs had the same defect and were latent.Where each commit landed
250829098.0.0-stable)260318099.0.0-stabled44b213d74fArray.pushimpl9841318e1f5ce8f0e586Array.pushSynthTrace2daaa8aa89a50bd0f364tryGetMutableBufferimplccb4fb5bd(via facebook/hermes#2179)5d5c9334becgetMutableBufferSynthTrace41ed32d4393eee4c7e4cArrayBuffer.detachedimplfd3724fb11aea879f113createUInt8Arrayimpl7b15bccd79d28826712ccreateUInt8Array,TypedArray::bufferSynthTracec926dd7a15b31237bf835d1e7237de6268f9dee71b374ae695a7f83aa3a1String::lengthimpl7e5dfcd59Nine landed as
Graft "[SH] ..." to shermes/stable. Number 3 landed through facebook/hermes#2179.Verified by content rather than by commit subject. Every
HermesRuntimeImplmethod (push,tryGetMutableBuffer,detached,createUint8Array,isTypedArray,createError,createRangeError,createSyntaxError,length) is now present inAPI/hermes/hermes.cppon the 0.88 branch, andAPI/hermes/TracingRuntime.cppmatches the 0.87 branch exactly (4 / 1 / 2 occurrences ofcreateUint8Array/tryGetMutableBuffer/createError, against 0 / 0 / 0 before).Still outstanding, and this is the part that affects the release
There is no
260318099.0.3tag. Tags stop athermes-v260318099.0.2, and RN0.88-stablepins260318099.0.2inpackages/react-native/sdks/hermes-engine/version.propertiesandpackages/react-native/package.json. None of the work above reaches the release until a new tag is cut and RN is bumped to it.Three separate things are waiting on that tag:
hermes-v260318099.0.2was tagged at 2026-09-08 03:05 PDT and the back-out landed at 11:18 PDT the same day, so.0.2still carries the change that was reverted for causing SIGSEGV crashes in Messenger Android (D118959426).xplat/static_hstill carries that same change (maybeDeadVariableScopes_is still present inlib/IR/IR.cpponstatic_h). The back-out called this out as a follow-up that was not included, sincestatic_his the source the nextstablesync pulls from.Closing as landed.