Skip to content

[pull] main from expo:main#632

Merged
pull[bot] merged 12 commits intocode:mainfrom
expo:main
Feb 26, 2026
Merged

[pull] main from expo:main#632
pull[bot] merged 12 commits intocode:mainfrom
expo:main

Conversation

@pull
Copy link

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

jakex7 and others added 12 commits February 26, 2026 16:51
# Why

To support features that are available in `ActivityKit`. 

# How

Add support for `after(date)` dismissal policy, final content state, and
`contentDate` when ending a Live Activity.

# Test Plan

End live activity.

# 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).
- [x] Conforms with the [Documentation Writing Style
Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md)
…iveModules.json`" (#43478)

## Summary

Since we're not using `@react-navigation/*` anymore in `expo-go`,
`@brentvatne` pointed out that this means we don't actually test any
version of it independent of `expo-router` and can't issue a
recommendation via `expo install` for it.

## Set of changes

Reverts #43465
…fork and don't hardcode HTTP protocol (#43186)

# Why

I'm looking into passing `secureServerOptions` into my own Metro
instance. However I noticed that I can't really do so because the
`secureServerOptions` is not forwarded correctly to `runServer`.

This is in draft right now while I investigate further, but please let
me know if there is anything I'm missing here.

# Test Plan

I'm looking for guidance on how to test this further.

# 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).
- [ ] Conforms with the [Documentation Writing Style
Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md)

---------

Co-authored-by: Phil Pluckthun <phil@kitten.sh>
# Why

Currently we ship iOS artifacts only by copying them to specified (or
default) artifacts directory which is fine when we have 2 artifacts,
but:

- With prebuilt RN frameworks around the corner
(#43356) this number would raise up to
4 artifacts
- Shipping swift packages is more flexible (XCode supports both local
and Git-hosted packages) and including them in xcode is simpler (just
one artifact being added)

# How

Extended CLI with additional `-p/--package` option for `build:ios`
command, which causes the artifacts to be shipped as a Swift Package
(which is created in the configurable artifacts directory) with the
following structure:

```
|_ artifacts
    |_ expoappbrownfieldArtifacts
        |_ Package.swift
        |_ xcframeworks
            |_ hermesvm.xcframework
            |_ expoappbrownfield.xcframework
```

The name of the package is customizable via optional value for the flag:

```bash
# defaults to scheme + Artifacts
# e.g. expoappbrownfieldArtifacts
npx expo-brownfield build:ios -p

npx expo-brownfield build:ios --package MyBrownfieldPackage
```

Also updated the E2E tests to include the changes. Creating swift
packages will be further updated in
#43356 to include additional frameworks
for prebuilt RN dependencies and better integrate entire process

# Test Plan

Validated manually that:
- Old shipping method still works
- `-p/--package` option works with and without args and generated
package

Also ensured that E2E tests pass

# 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).
…oid (#43344)

## Summary

Fixes `NumberFormatException` when calendar/event/attendee IDs exceed
`Integer.MAX_VALUE` (2,147,483,647). This can happen on some Android
devices with synced Google calendars where IDs can be very large (e.g.,
`471329298580`).

## Changes

Changed all ID parsing from `.toInt()` to `.toLong()` and updated
function return types from `Int` to `Long` where applicable.

### Legacy API layer (`domain/`)
- `CalendarModule.kt` - return type of `saveEvent`
- `CalendarRepository.kt` - `findCalendarById`, `createCalendar`,
`updateCalendar`, `deleteCalendar`
- `EventRepository.kt` - `findEventById`, `createEvent`, `updateEvent`,
`createRemindersForEvent`, `removeRemindersForEvent`
- `AttendeeRepository.kt` - `saveAttendeeForEvent`, `deleteAttendee`,
`insertAttendee`, `updateAttendee`

### Next API layer (`next/`)
- `ExpoCalendar.kt` - `updateCalendar` return type, `deleteCalendar` ID
parsing
- `ExpoCalendarEvent.kt` - `saveEvent` return type,
`createRemindersForEvent` param, all `toIntOrNull()` → `toLongOrNull()`
in `createAttendee`, `reloadEvent`, `deleteEvent`
- `ExpoCalendarAttendee.kt` - `saveAttendee` and
`buildAttendeeContentValues` params, all `toIntOrNull()` →
`toLongOrNull()` in `deleteAttendee`, `reloadAttendee`
- `EventNextUtils.kt` - `removeRemindersForEvent` param

## Backward Compatibility

This is fully backward compatible since all IDs are converted to strings
via `.toString()` before being sent to JavaScript. JavaScript numbers
can safely handle values up to `Number.MAX_SAFE_INTEGER`
(9,007,199,254,740,991).

## Test Plan

- Tested on device with large calendar IDs that previously crashed
- No changes to JavaScript API

Fixes #43343

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Phil Pluckthun <phil@kitten.sh>
# Why

macOS CI is failing to install pods e.g.
https://github.com/expo/expo/actions/runs/22450545134/job/65017458507

# How

Update bare-expo macOS Podfile.lock

# Test Plan

CI should succeed 

# 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 26, 2026
@pull pull bot added the ⤵️ pull label Feb 26, 2026
@pull pull bot merged commit a3e4c4c into code:main Feb 26, 2026
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.

9 participants