Skip to content

Conversation

@pull
Copy link

@pull pull bot commented Jan 15, 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 : )

Ubax and others added 13 commits January 15, 2026 11:39
# Why

Solves: #41103

TabRouter for `expo-router/ui` didn't handle replace action properly

# How

1. Copy the replace action handling to ui tab router.
2. Add follow-up task to unify the logic between routers -
https://linear.app/expo/issue/ENG-18536/unify-tabrouter-logic-between-native-tabs-js-tabs-and-custom-tabs

# Test Plan

1. CI
2. Manual testing

# 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)
…outer (#42154)

# Why


https://linear.app/expo/issue/ENG-18710/activate-sync-layout-from-screens

Enables sychronous layout for screens. This allows for using `flex: 1`
in formsheet on iOS

**Before**


https://github.com/user-attachments/assets/5c8177dd-c5f2-4876-9a61-fd236f9f7d3d

**After**


https://github.com/user-attachments/assets/5403da46-6c4e-498f-a2e2-2963ed0617ef

# How

<!--
How did you build this feature or fix this bug and why?
-->

# Test Plan

# 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: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
# Why

When building an app that has `expo-splash-screen` in its dependencies
as an `.xcframework`

# How

Prevents crashes in brownfield apps where the splash screen storyboard
may not be present in the main bundle

# Test Plan

Run minimal-tester and brownfield-tester

# 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)
…42122)

# Why

Current implementation of `expo-brownfield` was created to work with
Expo SDK 54. We also need to reiterate over certain features and issues
like e.g. `dev-client`/`dev-menu` support.

# How

- Removed `ExpoAppDelegateWrapper` class and returned to direct usage of
`ExpoAppDelegate` in `ReactNativeHostManger`
- Refactored `BrownfieldAppDelegate` to use
`ExpoAppDelegateSubscriberManager` methods

# 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)
#41900)

# Why

When React Native updated multiple properties on a toolbar item in same
update, each property change triggered a separate toolbar rebuild
operation. This degraded performance, and remounted native components
(e.g. custom text input lost focus on each update).

# How

1. Update toolbar items at most once on each render loop - use
`DispatchQueue.main` to debounce the update
2. Keep the reference to the current bar item whenever possible

# Test Plan

1. Manual testing
2. e2e test

# 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)
…42177)

- [x] Review the current Maestro Cloud documentation structure
- [x] Add the Outputs section with all 6 outputs documented
- [x] Verify the formatting matches other pre-packaged jobs
- [x] Request code review - passed with no issues
- [x] Add example showing how to use Maestro Cloud outputs in subsequent jobs
- [x] Update example to use `after` instead of `needs` to notify on both success and failure
- [x] Add note about async mode limitations for outputs
- [x] Complete the task

<!-- START COPILOT ORIGINAL PROMPT -->



<details>

<summary>Original prompt</summary>

> ## Summary
> 
> The `type: maestro-cloud` pre-packaged job in EAS Workflows now has new outputs that were implemented in https://github.com/expo/universe/pull/24049. The documentation needs to be updated to reflect these new outputs.
> 
> ## Changes Needed
> 
> Update the file `docs/pages/eas/workflows/pre-packaged-jobs.mdx` to add an **Outputs** section for the Maestro Cloud job (after the Parameters section).
> 
> The following outputs should be documented:
> 
> | Output | Type | Description |
> | ------ | ---- | ----------- |
> | maestro_cloud_url | string | URL to the Maestro Cloud upload results page. |
> | total_flows_count | number | Total number of flows that were executed. |
> | successful_flows_count | number | Number of flows that completed successfully (status SUCCESS or WARNING). |
> | failed_flows_count | number | Number of flows that failed (status ERROR or STOPPED). |
> | successful_flow_names_json | string | JSON array containing the names of successful flows. |
> | failed_flow_names_json | string | JSON array containing the names of failed flows. |
> 
> ## Location
> 
> The outputs section should be added in the "## Maestro Cloud" section, after the "#### Parameters" table and before the "### Examples" section. The structure should follow the same pattern as other pre-packaged jobs (like Build, Deploy, Fingerprint, etc.) which have an "#### Outputs" subsection with a table.
> 
> ## Reference Implementation
> 
> The outputs are defined in `expo/universe` at `server/www/src/data/entities/workflow/job/WorkflowMaestroCloudJob.ts`:
> 
> ```typescript
> outputs: {
>   maestro_cloud_url: '${{ steps.maestro_cloud.outputs.maestro_cloud_url }}',
>   total_flows_count: '${{ steps.results.outputs.total_flows_count || 0 }}',
>   successful_flows_count: '${{ steps.results.outputs.successful_flows_count || 0 }}',
>   failed_flows_count: '${{ steps.results.outputs.failed_flows_count || 0 }}',
>   successful_flow_names_json: '${{ steps.results.outputs.successful_flow_names_json || "[]" }}',
>   failed_flow_names_json: '${{ steps.results.outputs.failed_flow_names_json || "[]" }}',
> },
> ```


</details>



<!-- START COPILOT CODING AGENT SUFFIX -->

*This pull request was created from Copilot chat.*
>

<!-- START COPILOT CODING AGENT TIPS -->
---

✨ Let Copilot coding agent [set things up for you](https://github.com/expo/expo/issues/new?title=✨+Set+up+Copilot+instructions&body=Configure%20instructions%20for%20this%20repository%20as%20documented%20in%20%5BBest%20practices%20for%20Copilot%20coding%20agent%20in%20your%20repository%5D%28https://gh.io/copilot-coding-agent-tips%29%2E%0A%0A%3COnboard%20this%20repo%3E&assignees=copilot) — coding agent works faster and does higher quality work when set up for your repo.

Co-authored-by: copilot-swe-agent[bot] <[email protected]>
Co-authored-by: Stanisław Chmiela <[email protected]>
@pull pull bot locked and limited conversation to collaborators Jan 15, 2026
@pull pull bot added the ⤵️ pull label Jan 15, 2026
@pull pull bot merged commit cb019d4 into code:main Jan 15, 2026
5 of 8 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.

6 participants