Skip to content

chore(mobile): upgrade to Expo SDK 57 and fix the iOS 26.5 header - #171

Open
rynfar wants to merge 4 commits into
pylonfrom
upstream/2026-08-29-expo
Open

chore(mobile): upgrade to Expo SDK 57 and fix the iOS 26.5 header#171
rynfar wants to merge 4 commits into
pylonfrom
upstream/2026-08-29-expo

Conversation

@rynfar

@rynfar rynfar commented Aug 29, 2026

Copy link
Copy Markdown
Collaborator

Adopts upstream #8609 (Expo SDK 57) and #8611 (harden native header toolbar items) from the f94a0d646..bcb855a63 review.

Stacked on #170#8611 needs patches/react-native-screens@4.26.2.patch, which only #8609 adds, and #8609 builds on the patch #8607 edits. Merge #170 first.

Sequencing did most of the work

Branched from origin/pylon this had 40 conflicts — 22 in the react-native-screens patch and 18 in pnpm-lock.yaml. Rebased onto the mobile branch it has 5, all in the lockfile, because #8607 had already moved the patch. Those were resolved by regenerating the lock from the merged manifests rather than hand-editing it.

The upgrade rewrites pnpm-workspace.yaml catalogs, apps/mobile/package.json, and five native patches (@expo/metro-config@57.0.12, @react-native/gradle-plugin@0.85.3, expo-modules-jsi@56.0.10, react-native-gesture-handler@2.32.0, react-native-screens@4.26.2).

Verification and its limits

vp i --frozen-lockfile passes, so the lockfile is consistent with the manifests and all five patches resolve against the versions actually locked.

This is the riskiest change set in the batch and I want to be plain about what is not verified: no simulator build, no device build, and no EAS build has been run against Expo 57. A lockfile that installs cleanly is not the same as an app that boots. This wants a mobile smoke test before it goes anywhere near a release, and it is deliberately isolated in its own PR so it can be reverted on its own.

Model: Claude Opus 5. Harness: Claude Code.

Added 2026-08-29: #8624 header overflow and back-button artifacts

Also adopts upstream #8624 (053affbed) from the f94a0d646..1f8ed54ad review, as the third commit. It corrects the header approach #8607 introduced: brand and connection status move back into headerTitle (removing BRAND_HEADER_ITEM_IDENTIFIER / renderCompactBrandHeaderItems), status width is bounded by header width minus trailing items, and the react-native-screens@4.26.2 patch gains an empty native UILabel guide so the iOS 26 scroll-edge fade works with Fabric title views. Landing #8607 without it ships the known iOS 26.5 bug where the brand rectangle morphs into the glass back button. It belongs here because it edits the 4.26.2 patch that only exists after the SDK 57 upgrade.

Clean cherry-pick. vp i --frozen-lockfile passes (only the patch content hash moved in the lock); workspace-connection-status.test.ts 8/8; mobile typecheck, native static check, lint, and format clean; review confirmed no dangling references to the removed symbols, PylonMark untouched, and every patch hunk header balanced. Still no simulator build on this branch.

@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:XXL labels Aug 29, 2026
@github-actions

github-actions Bot commented Aug 29, 2026

Copy link
Copy Markdown

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

Provider Metric Main baseline This PR Impact PR ceiling
Codex Total thread wire 13.3 KiB 13.2 KiB −109 B (−0.8%) 15.1 KiB
Codex Thread snapshot wire 6.9 KiB 6.9 KiB −1 B (−0.0%) 7.3 KiB
Codex Live turn WebSocket wire 6.4 KiB 6.3 KiB −108 B (−1.7%) 7.8 KiB
Codex Live turn WebSocket decoded 55.5 KiB 54.7 KiB −822 B (−1.4%) 66.4 KiB
Codex Live turn messages 9 9 0 (0.0%) 21
Claude Total thread wire 13.3 KiB 13.2 KiB −167 B (−1.2%) 15.1 KiB
Claude Thread snapshot wire 6.9 KiB 6.9 KiB −12 B (−0.2%) 7.3 KiB
Claude Live turn WebSocket wire 6.4 KiB 6.3 KiB −155 B (−2.3%) 7.8 KiB
Claude Live turn WebSocket decoded 56.4 KiB 55.5 KiB −884 B (−1.5%) 66.4 KiB
Claude Live turn messages 10 9 −1 (−10.0%) 21

Baseline: abe70a7 · PR result: 6465e57 · Source CI: success

Scenario and decoded snapshot size

10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.

  • Codex decoded thread snapshot: 109.4 KiB
  • Claude decoded thread snapshot: 110.1 KiB

Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed.

@rynfar rynfar changed the title chore(mobile): upgrade to Expo SDK 57 chore(mobile): upgrade to Expo SDK 57 and fix the iOS 26.5 header Aug 30, 2026
juliusmarminge and others added 4 commits August 29, 2026 21:29
Co-authored-by: Julius Marminge <julius@mac.lan>
(cherry picked from commit 4669eab8e0e01d07141a2cb49ca21a9e15ae1429)
Co-authored-by: Julius Marminge <julius@mac.lan>
(cherry picked from commit 3e6ab36f6ed303f95f210971f56cc8642214c6fc)
Co-authored-by: Julius Marminge <julius@mac.lan>
(cherry picked from commit 38dcd7a404d24c2fa514cc82c1a5c4fd6a9d4a7a)
(cherry picked from commit 053affbed2659f90cd1b1efaaa7a75865c4131c7)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XXL vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants