Skip to content

[pull] main from expo:main#582

Merged
pull[bot] merged 7 commits intocode:mainfrom
expo:main
Feb 11, 2026
Merged

[pull] main from expo:main#582
pull[bot] merged 7 commits intocode:mainfrom
expo:main

Conversation

@pull
Copy link

@pull pull bot commented Feb 11, 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 : )

hassankhan and others added 7 commits February 11, 2026 16:49
…r data by `contextKey` instead of URL pathname (#43017)

# Why

Loader data was keyed by URL pathname which was causing two problems:

- Route groups were stripped, which meant `/(group)/index` resolved to
`/` for loader lookups, colliding with the root index route
- Index routes conflated with parent paths, which meant `/nested/index`
and `/nested` produced the same key, so `useLoaderData()` would try and
look up an incorrect loader URL

# How

By switching to `contextKey`, loader data is now unambiguously keyed for
the client hook `useLoaderData()`, SSR render, hydration script, static
export, and server runtime.

# Test Plan

- CI
- Manual testing

# Checklist

- [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)
- [x] 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

#42958

`Section` currently does not support title + footer combination. This
was intentional because SwiftUI does not have constructor to support
title and footer. But supporting this usecase is trivial, so we can add
it for convenience.

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

# How

Pass `Text` in header if title and footer are passed.
<!--
How did you build this feature or fix this bug and why?
-->

# Test Plan

Added example in `SectionScreen.ios.tsx` in NCL
<!--
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.
-->

- [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)
- [x] 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: Jakub Grzywacz <kontakt@jakubgrzywacz.pl>
## Why

Geodesic polylines were rendering as straight lines on iOS, making
flight paths and
other curved routes display incorrectly. This was causing issues for
apps that need to
  show accurate great circle paths on maps.

Fixes [geodesic line issue
(discord)](https://discord.com/channels/695411232856997968/1418302770850566174/1418302770850566174)

  ## How

The issue was that the `contourStyle` property was stored as a `String`
instead of the
proper `MapContourStyle` enum, and the contourStyle wasn't being applied
to the
  MapPolyline view.

  Fixed by:
1. Changed `contourStyle` field type from `String` to `MapContourStyle`
enum in
  `MapRecords.swift`
2. Applied `.contourStyle()` modifier to MapPolyline based on the enum
value in
  `AppleMapsViewiOS18.swift`
3. Updated onPolylineClick handler to use `contourStyle.rawValue` for
event data
  
Before:
<img width="381" height="298" alt="Screenshot 2025-09-18 at 9 54 41 PM"
src="https://github.com/user-attachments/assets/f7c99d9a-b566-4268-949c-7523f5f51131"
/>

After:
<img width="392" height="297" alt="Screenshot 2025-09-18 at 9 54 05 PM"
src="https://github.com/user-attachments/assets/1f09044c-cdd0-4277-b3ce-5cabdfbec0ca"
/>


  ## Test Plan

  - Created test app with flight paths using geodesic polylines
  - Verified curved paths render correctly on iOS 17+
  - Tested both single and multiple polylines render properly
  - Confirmed straight polylines still work as expected
  - Tested polyline click events still work correctly

  ## Checklist

  - [x] Documentation is up to date
  - [x] Lint (`yarn lint` in package) and tests pass
  - [x] CHANGELOG.md entry added

---------

Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Vojtech Novak <vonovak@gmail.com>
# Why

There's two tasks in the CLI startup phase that block the main thread:
getting the IP address of the default route, and `@expo/config`'s
`getConfig` (partially). Both have synchronous operations. The former
has a `spawnSync` that was only needed because we didn't build this to
be asynchronous. This holds up CLI startup by blocking.

Instead, we should initialize the `UrlCreator` asynchronously (and leave
some assertions around to validate that it's safe to do so), and not
block the main thread.

# How

- Add separate `ip.ts` utilities that are async
- Add `UrlCreator.init` async initializer
- Refactor `UrlCreator` to get gateway info from its own state
- Add `initUrlCreator` and run it in headless and implementation starts
- Disable `lan-network`'s DHCP strategy for headless mode

There's still a remaining gap of delay in the startup phase, which we
can probably close more easily now:

<img width="550" height="289" alt="image"
src="https://github.com/user-attachments/assets/0724cf50-f9d1-4d09-afdd-abd0c50d2602"
/>


# Test Plan

- Try various `expo start` operations and ensure assertions don't
trigger

# 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)
@pull pull bot locked and limited conversation to collaborators Feb 11, 2026
@pull pull bot added the ⤵️ pull label Feb 11, 2026
@pull pull bot merged commit cebdd7b into code:main Feb 11, 2026
20 of 26 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.

5 participants