Conversation
## Summary It seems like sextant QR code rendering is broken in Zed's terminal, and it's neither falling back to the necessary characters from a fallback font nor rendering these block characters manually. This is still working on Alacritty, but just not on the Zed editor's terminal anymore. I previously tested this, but looks like this regressed and needs to be disabled for it. <img width="319" height="259" alt="image" src="https://github.com/user-attachments/assets/f6e166ed-e9be-4555-9972-d4f332c78d3e" /> See: zed-industries/zed#50158 ## 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)
## Summary Resolves #46123 Resolves #46066 Resolves #46114 Remove stringification of `UsbmuxdPairRecord` which isn't necessary just for a debug string (but is an object, so stringification is likely non-sensical), but causes crashes reportedly. ## 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: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
# Why The `does not warn about supported or unknown package` and `gracefully handles server outages` cli tests are flakey. 1. does not warn about supported or unknown package - this test checks for ignored `@expo-google-fonts/inter` - https://github.com/expo/expo/blob/main/packages/%40expo/cli/src/install/utils/checkPackagesCompatibility.ts#L24 dependency 2. gracefully handles server outages - does not wait for the request to complete # How <!-- How did you build this feature or fix this bug and why? --> # Test Plan CI # 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)
… ignorePatterns (#46150)
## Why #46081 added patch for Skia 2.62 precompiled, but forgot to register the patch ## How Registers the patch ## Test-plan ✅ Ran pnpm install and verified the patch was applied ✅ Ran `et prebuild @shopfiy/react-native-skia --clean` and verified that it was working
# Why `ios.usePrecompiledModules` defaulted to false, so any project using the plugin without explicitly setting it wrote "EXPO_USE_PRECOMPILED_MODULES": "false" to Podfile.properties.json — silently overriding the Podfile template's default-to-enabled behavior (https://github.com/expo/expo/blob/main/templates/expo-template-bare-minimum/ios/Podfile#L19). # How align the defaults # Test Plan tested locally on a fresh project # 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)
…/metro-config` and switch to `@expo/require-utils` (#46155) # Why This PR moves the Metro user config resolution to `@expo/metro-config`, since that's where it has the most context to other values (e.g. in the transformer) that must also be set on it. It also gives a unified view on what the config will look like in one package (apart from CLI-specific overrides/modifications). A new `loadUserConfig` export is now available on `@expo/metro-config`. This also switches the user Metro config resolution to `@expo/require-utils` to further align it with the expectations for `@expo/config` and `@expo/config-plugins`, aligning the TS support, and other details (like error messages). Incidentally, however, switching this to `@expo/require-utils` means we're: - dropping support for the yaml format for Metro configs (was already deprecated in Metro) - not looking above the server root for Metro config files (security-relevant in some cases) - ignoring `package.json:metro` above the project root (this doesn't make sense to support and was intentionally removed) We're also switching `expo-doctor` to use this API, since it could previously run into issues that `@expo/cli` wouldn't and vice-versa, which aligns the Metro user config loading between the two via `expo/metro-config` # How - Reimplement Metro config resolution with `@expo/require-utils` - Move Metro user config loading (and normalization) to `@expo/metro-config` - Use `loadUserConfig` from `@expo/metro-config` in `@expo/cli` and `expo-doctor` > [!NOTE] > As a follow-up, we'll be able to delete `@expo/metro-config/exports` # Test Plan - Unit tests added / updated - CI E2E tests should pass unchanged - Manually tested a few project setups Resolves #46144 # 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)
# Why <!-- Please describe the motivation for this PR, and link to relevant GitHub issues, forums posts, or feature requests. --> Follow-up #46107 & https://github.com/expo/expo/actions/runs/26288337421/job/77381564930 <img width="3518" height="904" alt="CleanShot 2026-05-22 at 18 25 50@2x" src="https://github.com/user-attachments/assets/01c3057d-e351-4c5f-9275-5e5a9091299a" /> # How <!-- How did you build this feature or fix this bug and why? --> - Fix lint-prose script to include `docs/README.md`, matching the CI workflows patterns for Docs PR jobs. - Ignore the keyboard rule for `docs/README.md`. # Test Plan <!-- Please describe how you tested this change and how a reviewer could reproduce your test, especially if this PR does not include automated tests! If possible, please also provide terminal output and/or screenshots demonstrating your test/reproduction. --> Run `pnpm lint-prose` and there should be no errors locally. <img width="2014" height="366" alt="CleanShot 2026-05-22 at 18 25 23@2x" src="https://github.com/user-attachments/assets/11ec97a1-746d-408a-bf38-a3b5c24e78a3" /> On CI, there are no errors left. The following screenshot is from the CI run from Docs PR job in this PR: <img width="3410" height="916" alt="CleanShot 2026-05-22 at 18 32 10@2x" src="https://github.com/user-attachments/assets/20b0b6c2-4388-49ea-8894-24ecd3d2a676" /> # 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)
…45982) # Why Previously the Android-only `rippleColor`, `disableIndicator`, and `labelVisibilityMode` props could only be configured globally on `NativeTabs`. Expose an option to customize them per tab (e.g. hide the indicator on a single tab, or change the ripple color for one screen). # How 1. Accept `rippleColor`, `disableIndicator`, and `labelVisibilityMode` on `NativeTabs.Trigger` and forward them through `convertTabPropsToOptions`. 2. Keep the existing top-level props on `NativeTabs` as defaults; per-tab values override them. # Test Plan 1. CI 2. Manual check in router-e2e on Android # 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) --------- Co-authored-by: Expo Bot <34669131+expo-bot@users.noreply.github.com>
… toolbar (#46094) # Why When using `Stack.Toolbar.Button` or `Stack.Toolbar.Menu` with `placement="bottom"` on iOS, passing an image to the `icon` prop (or using `<Stack.Toolbar.Icon src={...} />`) silently renders nothing — the native bottom toolbar only supports SF Symbols, custom `image` props, or Xcode asset catalog images. Users get no feedback that their icon is being dropped. I am not happy with this API, and I plan to unify everything under `icon`/`src` in the next release - https://linear.app/expo/issue/ENG-21381/remove-image-prop-from-stacktoolbarbuttonmenu # How 1. Warn in dev when `NativeToolbarButton` / `NativeToolbarMenu` receive an image `source` in the bottom placement, pointing to the supported alternatives (string SF Symbol, `image` prop, or `<Stack.Toolbar.Icon xcasset="..." />`). 2. Destructure `source` on `NativeToolbarMenu` so the warning can read it. 3. Rebuild the package sources. # Test Plan 1. CI 2. New cases in `StackToolbarButton.test.ios.tsx` and `StackToolbarMenu.test.ios.tsx` covering: - warns when `icon` prop is an image source in development - warns when `<StackToolbarIcon src>` child is used in development - does not warn in production or for non-bottom placements 3. Manual tests <img width="707" height="75" alt="image" src="https://github.com/user-attachments/assets/e005d378-e8ac-416f-8c8b-94351ad1f6be" /> # 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)
# Why # How <!-- How did you build this feature or fix this bug and why? --> # Test Plan <!-- Please describe how you tested this change and how a reviewer could reproduce your test, especially if this PR does not include automated tests! If possible, please also provide terminal output and/or screenshots demonstrating your test/reproduction. --> # 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)
…scovery (#46166) ## Summary Follow-up to #46155 - We're loading Metro configs ourselves, as of the above PR, which means `metro.config.yml` (and similar YAML configs) will now be unsupported and refuse to load - Similarly, that PR is restricting config discovery to the server root (and `package.json:metro` to the project root) We may also want to link to our **metro.config.js** page and clarify that we may not have perfect 1:1 coverage with every customization that Metro usually allows ## 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)
## Summary Follow-up to #46155 The `@expo/metro-config/exports` entrypoint was an internal re-export for `@expo/cli` that's now obsolete after the above PR. It wasn't used for anything else but exposing the Babel config resolution function. ## 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)
…pecified (#46096) # Why When specifying only the default icon for tab with role search ```tsx <NativeTabs.Trigger ...... role="search"> <NativeTabs.Trigger.Icon sf="heart" /> </NativeTabs.Trigger> ``` The icon is overridden by system search icon, when tab is selected. This is a bug in react-native-screens and not desirable behavior. # How When only default icon is specified, pass it to `selectedIcon` prop on screen's `Tab.Screen` # Test Plan 1. CI 2. Manual router-e2e tests **Before** https://github.com/user-attachments/assets/b5b966bb-a68b-4a02-a94f-5aaba83c9cf8 **After** https://github.com/user-attachments/assets/5eecda69-5f53-408b-b9c5-f1a4e3480c63 # 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)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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 : )