Skip to content

[pull] main from expo:main#888

Merged
pull[bot] merged 17 commits into
code:mainfrom
expo:main
May 21, 2026
Merged

[pull] main from expo:main#888
pull[bot] merged 17 commits into
code:mainfrom
expo:main

Conversation

@pull
Copy link
Copy Markdown

@pull pull Bot commented May 21, 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 : )

jiunshinn and others added 17 commits May 21, 2026 17:53
## Why

Follow-up to #45974 as requested by @vonovak.

`packages/expo-task-manager/android/build.gradle` ships a
`proguard-rules.pro` containing `-keep class expo.modules.taskManager.**
{*;}`, but never declares `consumerProguardFiles 'proguard-rules.pro'` —
so the rule is never applied to consumer apps' R8 pass. This is the same
omission #45974 fixed in `expo-notifications`.

The visible symptom: in a signed release build with R8 enabled, classes
used by the task manager get obfuscated. After an app upgrade that
shifts R8's mapping, persisted task data deserializes against a class
name that no longer exists, `ClassNotFoundException` is silently
swallowed by the consuming code path, and APIs like
`Notifications.registerTaskAsync` fail silently — which is the
`expo-notifications + expo-task-manager` interaction reported by
@arkadiusztw in [#35551
(comment)](#35551 (comment)):

```
-keep class expo.modules.notifications.** {*;}   # done in #45974
-keep class expo.modules.taskManager.** {*;}     # this PR
-keep class expo.modules.backgroundfetch.** {*;} # already wired in expo-background-fetch
```

## How

One-line addition inside the existing `defaultConfig` block, mirroring
`expo-modules-core/android/build.gradle`,
`expo-background-fetch/android/build.gradle`, and the change from
#45974:

```diff
 defaultConfig {
   versionCode 23
   versionName "56.0.10"
+  consumerProguardFiles 'proguard-rules.pro'
 }
```

The `proguard-rules.pro` file already exists in the package; only the
directive that wires it up was missing.

## Test plan

Same verification pattern that was used for #45974 (in
`apps/notification-tester`):

- [ ] Build `apps/notification-tester` (or a similar in-repo app)
against this branch with R8 enabled.
- [ ] Confirm `app/build/outputs/mapping/release/configuration.txt`
includes the rule via the expected path:
  ```
  # The proguard configuration file for the following section is
#
packages/expo-task-manager/android/build/intermediates/consumer_proguard_dir/
  #     release/exportReleaseConsumerProguardFiles/lib0/proguard.txt
  -keep class expo.modules.taskManager.** {*;}
  ```
- [ ] Confirm `mapping.txt` keeps the fully-qualified
`expo.modules.taskManager.*` class names (no obfuscation to short
names).

---

cc @vonovak — follow-up to #45974 covering the `expo-task-manager` half
of the keep rules from #35551.

---------

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

Document EAS Workflows job hooks more completely on the per-job docs page, and add concrete Maestro examples that show how to use hooks in practice.

# How

- added `hooks` to the applicable syntax blocks on the `pre-packaged-jobs` page (`submit`, `maestro`, and `maestro-cloud`)
- added Maestro examples for generating flows before tests and reporting artifacts after tests
- kept the pre-test hook example under the `maestro` job docs so it matches the hook being demonstrated

# Test Plan

- reviewed `docs/pages/eas/workflows/pre-packaged-jobs.mdx` to confirm every job on the page that documents hooks also includes them in its syntax block
- verified the Maestro examples use the correct job type and hook names

<img width="1151" height="636" alt="Zrzut ekranu 2026-04-16 o 17 31 34" src="https://github.com/user-attachments/assets/c2a59094-85b4-4350-9a38-b8629bc4fda9" />

# Checklist

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

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

---------

Co-authored-by: Kadi Kraman <hellokadi@gmail.com>
Co-authored-by: Aman Mittal <amandeepmittal@live.com>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@expo/ui@56.0.12
expo-task-manager@56.0.13
expo-widgets@56.0.13
expo-background-task@56.0.13
expo-background-fetch@56.0.13
# Why

correct my mistakes after bad commit 🙈
7d096ff

the changelog entry is already in 56.0.12 — 2026-05-21

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

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

`expo-observe` previously only reported navigation metrics for apps
using `expo-router`. Apps using `@react-navigation/native` directly had
no way to emit TTR.

# How

1. Add `react-navigation` integration under
`expo-observe/integrations/react-navigation`
2. Expose `ObserveNavigationContainer` — a drop-in `NavigationContainer`
replacement that wires state-change and action listeners
3. Add `useObserveForReactNavigation` hook for per-screen metrics
4. Enable via `ExpoObserve.configure({ integrations: {
'react-navigation': true } })`
5. Use it in `bare-expo` to validate the integration end-to-end

# Test Plan

1. Bare-expo
2. 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)
# Why

Observe is an EAS product and in the EAS section. It is confusing for it
to not be called "EAS Observe".

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

# How

Rename the product "Expo Observe" -> "EAS Observe". ~in the sidebar. Use
"Expo Observe" -> "Observe" inline.~

<!--
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)
@pull pull Bot locked and limited conversation to collaborators May 21, 2026
@pull pull Bot added the ⤵️ pull label May 21, 2026
@pull pull Bot merged commit 1c37b4d into code:main May 21, 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.

10 participants