Skip to content

[pull] main from expo:main - #1206

Merged
pull[bot] merged 9 commits into
code:mainfrom
expo:main
Sep 2, 2026
Merged

[pull] main from expo:main#1206
pull[bot] merged 9 commits into
code:mainfrom
expo:main

Conversation

@pull

@pull pull Bot commented Sep 2, 2026

Copy link
Copy Markdown

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 : )

amandeepmittal and others added 9 commits September 2, 2026 11:36
…49624)

# Why

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

Fix ENG-26349

# How

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

Add redirects for AI-agent-guessed section (26 sections) introduction
pages so AI agents can get to actual pages when the expect a section to
have an `/introduction.md` at the end of the URL.

# 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.
-->

`pnpm test:worker` passes.

# 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

`onStateChange` is unused prop of `NavigationContainer` which cannot be
used by users - expo-router exposes no way to use it.

# How

1. Remove the `onStateChange`

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

---------

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

`onOptionsChange` and `useDocumentTitle` are unused code in expo-router,
since users don't have access to it by any public API

# How

Remove `onOptionsChange` and `useDocumentTitle`

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

---------

Co-authored-by: Expo Bot <34669131+expo-bot@users.noreply.github.com>
…49608)

# Why

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

We've added a new trigger to EAS workflows: `on.pull_request_comment`.

# How

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

Added the `on.pull_request_comment` subsection to the EAS workflows
syntax documentation.

Adjusted the interpolation context documentation to mention the pull
request comment context.

# 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.
-->

Verified it renders correctly:

<img width="1001" height="595" alt="image"
src="https://github.com/user-attachments/assets/e93a9bd9-8eb8-4c52-be09-5e87b1c0831a"
/>

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

# Why

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

Fix ENG-26186 ENG-26187

# How

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

Fixes the Chrome-only theme selector flicker. Radix Select's default
item-aligned positioning can't line the menu up with a trigger that sits
near the top of the window, so it writes a scroll offset and then a
min-height that cancels it, and Chrome sometimes paints the state in
between. `position="popper"` drops that math and the menu now opens
below the trigger.

Also matches the menu radius to the trigger on all four selectors
(theme, language, reference version, and both bare upgrade pickers), so
a 6px box becomes a 16px panel sitting at the trigger's width. Same
treatment applied to Copy page and code block settings dropdowns. Both
radius and padding are taken from the EAS dashboard menus.

# 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.
-->
<img width="288" height="332" alt="CleanShot 2026-08-26 at 14 06 28@2x"
src="https://github.com/user-attachments/assets/48c22807-c95e-43d3-a0c1-f859e2dd3c22"
/>


<img width="428" height="416" alt="CleanShot 2026-08-26 at 14 06 12@2x"
src="https://github.com/user-attachments/assets/72dab271-4c73-4be2-933e-1632b3cac66e"
/>

<img width="612" height="670" alt="CleanShot 2026-08-26 at 14 06 18@2x"
src="https://github.com/user-attachments/assets/8ef14505-6d46-4017-a21c-c3dbf9d5eeda"
/>

<img width="668" height="712" alt="CleanShot 2026-08-26 at 14 06 36@2x"
src="https://github.com/user-attachments/assets/4a2e6332-c59d-4ee0-a800-f464b847c1cf"
/>

<img width="2282" height="700" alt="CleanShot 2026-08-26 at 14 06 52@2x"
src="https://github.com/user-attachments/assets/041c39bd-4a4a-48d2-a32a-3b2435905976"
/>


# 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

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

We've added trigger level `if:` support to EAS workflows.

# How

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

Added the `on.<trigger>.if` section to EAS workflows syntax docs.

For each trigger that's possible to gate by `if:`, added a mention of
`if:` in their own syntax documentation section.

# 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.
-->

Verified it renders correctly:

<img width="977" height="649" alt="image"
src="https://github.com/user-attachments/assets/3f451268-5571-4a3d-bdd2-741550835609"
/>

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

---------

Co-authored-by: Aman Mittal <amandeepmittal@live.com>
# Why

Resolves ENG-26332
Conversation at
https://exponent-internal.slack.com/archives/C09KED0M14M/p1788224418138889

If folks are using multiple observability tools, it's important to be
able to tie them together so they could conceivably track an anonymous
user's performance metrics across multiple services.

All of out metrics and logs carry a `easClientId` which is unique per
installation. Making this anonymous ID accessible will help support
linking Observe data with other services.

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

# How

Pass the EAS Client ID from `expo-eas-client` down to
`Observe.clientId`.

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

# Test Plan

I made the same changes in the `node_modules` of an app locally, rebuilt
and `console.log`ed the client ID (I had to build from source on Android
since we ship the module pre-built).

<img width="528" height="102" alt="Screenshot 2026-09-01 at 12 20 02"
src="https://github.com/user-attachments/assets/1e7514ce-9d02-42b6-88a1-a690e04332d8"
/>

Also updated the unit test for the JS interface.

<!--
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)
…d issues (#49609)

# Why

Fixes the current Android e2e failures on main.

On Android, network request listeners could receive duplicate events or
continue receiving events after their JS listeners were removed.
Response completion could also be reported twice when reading and
closing the response happened concurrently.


# How

Register native observers only while they have active listeners and
prevent duplicate delegate registrations. This should slightly improve
the overall performance. Use an atomic flag to ensure each response
completes only once.

Add tests to test this scenario.

# Test Plan

Run the newly added tests, run tests in NCL
@pull pull Bot locked and limited conversation to collaborators Sep 2, 2026
@pull pull Bot added the ⤵️ pull label Sep 2, 2026
@pull
pull Bot merged commit 14f3693 into code:main Sep 2, 2026
1 check 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