Skip to content

fix: backport the 0.10.6 fixes (#1487, #1523, #1525, #1526, #1535, #1536, #1549) - #1548

Merged
msluszniak merged 8 commits into
release/0.10from
@ms/backport-0.10.6
Oct 19, 2026
Merged

msluszniak merged 8 commits into
release/0.10from
@ms/backport-0.10.6

Conversation

@msluszniak

@msluszniak msluszniak commented Oct 19, 2026 •

Copy link
Copy Markdown
Member

Description

Cherry-picks the unreleased fixes from main onto release/0.10 for v0.10.6 (RN 0.88 / Expo 58):

Introduces a breaking change?

  • Yes
  • No

Type of change

  • Bug fix (change which fixes an issue)
  • New feature (change which adds functionality)
  • Documentation update (improves or adds clarity to existing documentation)
  • Other (chores, tests, code style improvements etc.)

Tested on

  • iOS
  • Android

Testing instructions

  • Fresh RN 0.88.0 app (worklets 0.13.0, blob-util 0.25.1, no export-namespace Babel plugin): MiniLM downloads and embeds on the iOS simulator and a Galaxy S26 Ultra.

Screenshots

Related issues

Closes #1547

Checklist

  • I have performed a self-review of my code
  • I have commented my code, particularly in hard-to-understand areas
  • I have updated the documentation accordingly
  • My changes generate no new warnings

Additional notes

## Description

- Install JSI bindings via `RCTTurboModuleWithJSIBindings`; RN 0.87
removed `RCTCxxBridge`.

### Introduces a breaking change?

- [ ] Yes
- [x] No

### Type of change

- [x] Bug fix (change which fixes an issue)
- [ ] New feature (change which adds functionality)
- [ ] Documentation update (improves or adds clarity to existing
documentation)
- [ ] Other (chores, tests, code style improvements etc.)

### Tested on

- [x] iOS
- [ ] Android

### Testing instructions

- Bare RN 0.87.1 app on the iOS simulator: `main` fails with `unknown
type name 'RCTCxxBridge'`; this branch builds and runs a text embedding
model.

### Screenshots

### Related issues

### Checklist

- [x] I have performed a self-review of my code
- [x] I have commented my code, particularly in hard-to-understand areas
- [x] I have updated the documentation accordingly
- [x] My changes generate no new warnings

### Additional notes

(cherry picked from commit 0f94075)
Widens the `react-native-worklets` peer to `>=0.10.0 <0.14.0` so apps on
Reanimated 4.7 (worklets 0.13) install cleanly. The APIs we use are
unchanged in 0.13 and it still serializes `ArrayBufferView` natively.

- [ ] Yes
- [x] No

- [x] Bug fix (change which fixes an issue)
- [ ] New feature (change which adds functionality)
- [ ] Documentation update (improves or adds clarity to existing
documentation)
- [ ] Other (chores, tests, code style improvements etc.)

- [ ] iOS
- [ ] Android

- `yarn jest __tests__/api/workletsVersionRange.test.ts`
- With worklets 0.13.0 swapped into `node_modules`: `tsc` clean, jest
green except the docs floor check (it reads the RN floor from the
installed worklets).

Closes #1534

- [x] I have performed a self-review of my code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [x] I have updated the documentation accordingly
- [x] My changes generate no new warnings

~Not run on device: worklets 0.13 needs RN 0.86+, our apps are on 0.85.~
I've ran it on device and it worked.

(cherry picked from commit 7f0c8b3)
- Compile `export * as` out of `lib/`, so bare RN apps no longer need
`@babel/plugin-transform-export-namespace-from`.
- Docs: worklets Babel plugin, Podfile iOS 17 target, telemetry opt-out,
npm 12 install script approval, one-shot LLM generation.

- [ ] Yes
- [x] No

- [x] Bug fix (change which fixes an issue)
- [ ] New feature (change which adds functionality)
- [x] Documentation update (improves or adds clarity to existing
documentation)
- [ ] Other (chores, tests, code style improvements etc.)

- [ ] iOS
- [ ] Android

- `yarn prepare`, then check `lib/module/index.js` has no `export * as`
and compiles with `@react-native/babel-preset`.

- [x] I have performed a self-review of my code
- [x] I have commented my code, particularly in hard-to-understand areas
- [x] I have updated the documentation accordingly
- [x] My changes generate no new warnings

(cherry picked from commit b9c58fc)
## Description

- CLIP image embeddings were fed `/255` pixels, but none of the exported
image towers (XNNPACK, Core ML, MLX, Vulkan) normalize in-graph.
`CLIP_IMAGE_EMBEDDINGS_OPTS` now applies the CLIP mean and std.

### Introduces a breaking change?

- [ ] Yes
- [x] No

### Type of change

- [x] Bug fix (change which fixes an issue)
- [ ] New feature (change which adds functionality)
- [ ] Documentation update (improves or adds clarity to existing
documentation)
- [ ] Other (chores, tests, code style improvements etc.)

### Tested on

- [ ] iOS
- [ ] Android

### Testing instructions

- `yarn workspace react-native-executorch test`

### Screenshots

### Related issues

### Checklist

- [x] I have performed a self-review of my code
- [x] I have commented my code, particularly in hard-to-understand areas
- [ ] I have updated the documentation accordingly
- [x] My changes generate no new warnings

### Additional notes

ImageNetV2 zero-shot top-1 (1000 images, XNNPACK fp32, host): 44.8
before, 51.3 after. Embeddings stored before this change are not
comparable with new ones.

(cherry picked from commit a4a784e)
@msluszniak msluszniak self-assigned this Oct 19, 2026
@msluszniak msluszniak added the bug fix PRs that are fixing bugs label Oct 19, 2026
msluszniak and others added 2 commits October 19, 2026 14:19
`react-native-blob-util` 0.24.11 fixed the Android in-process reader
that stopped after 8 KB
([#475](RonRadtke/react-native-blob-util#475)),
which was the only reason Android had a download backend of its own.
Both platforms now share the streaming fallback, leaving one mechanism
(the optional background downloader) plus one shared fallback.

- peer range `^0.24.0` -> `>=0.24.11`; apps and the lib devDependency
move to `^0.25.0`
- removes `downloadUrlViaAndroidDownloadManager` and the `IS_ANDROID`
backend branch
- removes `reassemble32BitCounter`; the 32-bit progress overflow came
from DownloadManager's cursor column being read with `getInt`, and the
in-process path reports bytes as real numbers
- the Android cache directory stays where it is, since moving it would
orphan every model already downloaded

- [ ] Yes
- [x] No

- [ ] Bug fix (change which fixes an issue)
- [ ] New feature (change which adds functionality)
- [ ] Documentation update (improves or adds clarity to existing
documentation)
- [x] Other (chores, tests, code style improvements etc.)

- [ ] iOS
- [x] Android

1. Run `apps/nlp` on an Android device without
`@kesha-antonov/react-native-background-downloader` installed.
2. Download a model larger than 2 GB, e.g.
`llama_3_2_3b_xnnpack_spinquant.pte`.
3. Progress should climb monotonically to 100% and the cached file
should match the server's length.

Closes #1401

- [x] I have performed a self-review of my code
- [x] I have commented my code, particularly in hard-to-understand areas
- [x] I have updated the documentation accordingly
- [x] My changes generate no new warnings

Verified on a Galaxy S26 Ultra: 2,553,367,552 bytes downloaded in 146 s,
matching the server's `x-linked-size` exactly. This is the first time
the >2 GB path has run end to end, since it has been broken since it
landed.

Without the optional background downloader, Android downloads no longer
continue while the app is suspended; they resume on the next `download`
call, as on iOS.

(cherry picked from commit c3c05bc)
AGP 9 (RN 0.88) removed targetSdk from library defaultConfig, so the
build script fails to compile. It never affected the app.

(cherry picked from commit 887c4ec)
@msluszniak msluszniak changed the title fix: backport RN 0.88 support (#1525, #1535) fix: backport the 0.10.6 fixes (#1487, #1525, #1526, #1535, #1536, #1549) Oct 19, 2026
Picks up the Vulkan Android backend with pytorch/executorch#23381 (Adreno
720/740 pipeline-creation crash in mean/var shaders) and the restored bias
add in the 8da4w Vulkan linear shaders.

(cherry picked from commit 1ee0786)
@msluszniak msluszniak changed the title fix: backport the 0.10.6 fixes (#1487, #1525, #1526, #1535, #1536, #1549) fix: backport the 0.10.6 fixes (#1487, #1523, #1525, #1526, #1535, #1536, #1549) Oct 19, 2026
@msluszniak
msluszniak requested a review from barhanc October 19, 2026 13:21

@barhanc barhanc left a comment •

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shouldn't this PR drop the docs changes?

@msluszniak

Copy link
Copy Markdown
Member Author

Functionally it doesn't matter, but I can drop them for clarity.

@msluszniak
msluszniak merged commit 2188406 into release/0.10 Oct 19, 2026
@msluszniak
msluszniak deleted the @ms/backport-0.10.6 branch October 19, 2026 13:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug fix PRs that are fixing bugs

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants