Skip to content

[pull] main from expo:main#600

Merged
pull[bot] merged 13 commits intocode:mainfrom
expo:main
Feb 17, 2026
Merged

[pull] main from expo:main#600
pull[bot] merged 13 commits intocode:mainfrom
expo:main

Conversation

@pull
Copy link

@pull pull bot commented Feb 17, 2026

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

dylankenneally and others added 13 commits February 17, 2026 15:57
# Why

In the documentation page `Home` → `Develop` → `Development Builds` →
`Switch from Expo Go to a development build`, I noticed that link
_prebuild_ was incorrect & hence didn't work.

# How

I corrected the link

# Test Plan

Visually with markdown preview

# Checklist

<!--
Please check the appropriate items below if they apply to your diff.
-->

- [ ] I added a `changelog.md` entry and rebuilt the package sources
according to [this short
guide](https://github.com/expo/expo/blob/main/CONTRIBUTING.md#-before-submitting)
- [ ] This diff will work correctly for `npx expo prebuild` & EAS Build
(eg: updated a module plugin).
- [x] Conforms with the [Documentation Writing Style
Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md)
# Why

In the documentation page `Home` → `Develop` → `Tools for development`,
I noticed that the sentence _"Expo CLI is a development tool and is
installed automatically with `expo` package ..."_ was missing the word
"the", so reads poorly in English.

# How

I added the word `the`.

# Test Plan

Visual test via markdown preview only.

# Checklist

<!--
Please check the appropriate items below if they apply to your diff.
-->

- [ ] I added a `changelog.md` entry and rebuilt the package sources
according to [this short
guide](https://github.com/expo/expo/blob/main/CONTRIBUTING.md#-before-submitting)
- [ ] This diff will work correctly for `npx expo prebuild` & EAS Build
(eg: updated a module plugin).
- [x] Conforms with the [Documentation Writing Style
Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md)
…filtering (#42766)

## Summary

This adds support for debug build type `debugOptimized`.

## Problem

When using build variants like `debugOptimized`, the CLI was building
for all architectures instead of just the connected device's
architecture.

The variant parsing logic was splitting `previewDebugOptimized` into
`['preview', 'debug', 'optimized']` and treating `'optimized'` as the
buildType, which failed the `buildType === 'debug'` check used for
architecture filtering.

## Solution

This change:
- Detects when `'debug'` and `'optimized'` appear consecutively in the
parsed variant parts
- Merges them into a single `'debugOptimized'` buildType
- Updates the architecture filtering check to support both `'debug'` and
`'debugOptimized'` build types

## Test Plan

Tested locally with `npx expo run:android --variant debugOptimized` and
confirmed that:
1. The variant is correctly parsed with buildType `'debugOptimized'`
2. Active architecture filtering is applied
3. Build only compiles for the connected device's architecture

---------

Co-authored-by: Phil Pluckthun <phil@kitten.sh>
…d 11/12 (#43203)

due to Parcelable deserialization failures

# Why

closes #38908

# How

On some Android versions (especially 11 and 12), custom Parcelable
extras stored in a PendingIntent can come back as null when the system
delivers the intent to NotificationForwarderActivity. This causes a
crash when the user taps a notification. This PR adds byte array
serialization of the notification and action data alongside the existing
Parcelable extras. When the Parcelable extras are null, the code falls
back to deserializing from the byte arrays. As a safety net,
NotificationForwarderActivity also catches the failure and opens the app
instead of crashing.

# Test Plan

- tests run in CI

# Checklist

<!--
Please check the appropriate items below if they apply to your diff.
-->

- [x] I added a `changelog.md` entry and rebuilt the package sources
according to [this short
guide](https://github.com/expo/expo/blob/main/CONTRIBUTING.md#-before-submitting)
- [ ] This diff will work correctly for `npx expo prebuild` & EAS Build
(eg: updated a module plugin).
- [ ] Conforms with the [Documentation Writing Style
Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md)

---------

Co-authored-by: Expo Bot <34669131+expo-bot@users.noreply.github.com>
# Why

<!--
Please describe the motivation for this PR, and link to relevant GitHub
issues, forums posts, or feature requests.
-->

Follow-up expo/styleguide#167

The `@expo/styleguide-search-ui` package is outdated at v3.3.1.
Upgrading to v3.3.3 picks up the latest fixes and improvements to the
docs search UI.

## How

- Bump `@expo/styleguide-search-ui` from `^3.3.1` to `^3.3.3` in
`package.json`.
- Update `yarn.lock` to reflect the new resolved version.

## Test Plan

Run `yarn` to install dependencies. Open the docs site locally and
verify the search UI works correctly, including opening search, typing a
query, and navigating to a result.

<!--
Please check the appropriate items below if they apply to your diff.
-->

- [ ] I added a `changelog.md` entry and rebuilt the package sources
according to [this short
guide](https://github.com/expo/expo/blob/main/CONTRIBUTING.md#-before-submitting)
- [ ] This diff will work correctly for `npx expo prebuild` & EAS Build
(eg: updated a module plugin).
- [ ] Conforms with the [Documentation Writing Style
Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md)
# Why

We currently parse the m3u8 playlists ourselves to get the list of
available HLS video tracks.

The asset does actually provide us with loadable `.variant` property,
which contains everything we need, except something unique to the track.

In iOS 26.0 the `.variant` property got the `url` property which
provides us with the track url. Which means that on iOS 26+ we can
replace our playlist parsing with AVKit data.

# How

On iOS 26+ load the info using `.variants`, add `url` property to
`VideoTrack` (only for HLS sources), use the url for track
identification on iOS.

Add the url on Android for feature parity

# Test Plan

Tested in BareExpo on Android and iOS
…w File/Directory/Paths API (#43005)

## Summary
- Retargets the `jest.mock('expo-file-system', ...)` in jest-expo's
setup to `expo-file-system/legacy`, so the new class-based API (`File`,
`Directory`, `Paths`) is no longer replaced by legacy function stubs
- Adds missing module constants (`documentDirectory`, `cacheDirectory`,
`bundleDirectory`, `totalDiskSpace`, `availableDiskSpace`) and
constructor support to the native module mock in
`expo-file-system/mocks/FileSystem.ts`
- Fixes `requireMockModule` to not wrap classes with `jest.fn()`, which
was destroying the prototype chain needed for `extends` (e.g. `File
extends ExpoFileSystem.FileSystemFile`)
- Adds tests for the new API exercising `Paths`, `File`, and `Directory`
construction and method availability in Jest

## Test plan
- [x] `yarn test` in `packages/jest-expo` — 23 suites, 93 tests pass
- [x] `yarn test` in `packages/expo-file-system` — 4 suites, 34 tests
pass (including new + existing legacy tests)
- [x] Verify in a user project that `import { File, Directory, Paths }
from 'expo-file-system'` works in Jest tests

Fixes #39922
# Why

The [new IcoMoon app](https://icomoon.io/new-app) exports a different
JSON format than the [old IcoMoon app](https://icomoon.io/app). The
current `createIconSetFromIcoMoon` function in `@expo/vector-icons` only
supports the old app's output, so users who export from the new app
encounter issues. expo/vector-icons#356 adds
support for the new format. This documentation update clarifies the
situation and points users to that PR until it is released.

# How

Added a note in the `createIconSetFromIcoMoon` section in the docs about
icons.

# Test Plan

Make sure that the `createIconSetFromIcoMoon` section renders correctly.

# Checklist

- [ ] I added a `changelog.md` entry and rebuilt the package sources
according to [this short
guide](https://github.com/expo/expo/blob/main/CONTRIBUTING.md#-before-submitting)
- [ ] This diff will work correctly for `npx expo prebuild` & EAS Build
(eg: updated a module plugin).
- [x] Conforms with the [Documentation Writing Style
Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md)

---------

Co-authored-by: Aman Mittal <amandeepmittal@live.com>
…43078)

# Why

While running the integrated brownfield-tester app on iOS with dev-menu
got an `Call must be made on main thread"` crash

<img width="737" height="154" alt="image"
src="https://github.com/user-attachments/assets/804d0fec-0c96-422e-abf4-86a7e06adacf"
/>

 
# How

Add `DispatchQueue.main` to `registerKeyCommands` calls and
`UIViewController` creation, to ensure these are always invoked from the
main thread#

# Test Plan

Run integrated brownfield-tester app on iOS 

# Checklist

<!--
Please check the appropriate items below if they apply to your diff.
-->

- [ ] I added a `changelog.md` entry and rebuilt the package sources
according to [this short
guide](https://github.com/expo/expo/blob/main/CONTRIBUTING.md#-before-submitting)
- [ ] This diff will work correctly for `npx expo prebuild` & EAS Build
(eg: updated a module plugin).
- [ ] Conforms with the [Documentation Writing Style
Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md)
@pull pull bot locked and limited conversation to collaborators Feb 17, 2026
@pull pull bot added the ⤵️ pull label Feb 17, 2026
@pull pull bot merged commit ba99dda into code:main Feb 17, 2026
27 of 34 checks passed
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Comments