chore: upgrade Expo SDK 55 → 57 and React Native 0.83 → 0.86

Merged
JA
19d ago
+3450-4750

Summary by cubic

Upgrade Expo SDK 55 → 57 and react-native 0.83 → 0.86.3 across the monorepo, migrate navigation to expo-router/react-navigation, replace native menus with @expo/ui, and include targeted a11y/perf/test cleanups.

  • Dependencies

    • expo and modules → 57 with latest SDK patches; react-native → 0.86.3 with reanimated 4.5.1, screens ~4.26.0, and worklets 0.10.1; add @expo/ui and @expo/material-symbols; register expo-image and expo-status-bar as plugins; @sentry/react-native → ~8.18.
    • Native: drop zeego and @react-native-menu/menu; move the iOS deployment target to app.json (16.4); remove expo-build-properties.
    • Web/server/docs: bump @tanstack/*, hono, croner, vite, next, and tailwind*; bun → 1.3.14; docs regenerated via createOpenAPIPage.
    • Tooling: remove claude.yml and claude-code-review.yml; bump checkout/setup-node/codecov actions; simplify .oxlintrc.
  • Refactors

    • Menus: replace zeego dropdowns with @expo/ui MenuView and use @expo/material-symbols on Android; remove menu-open haptics.
    • Navigation/theme: switch to expo-router/react-navigation ThemeProvider and header APIs; extract headerRight helpers.
    • Auth: replace signIn.oauth2/genericOAuthClient with signIn.social; forward the legacy /oauth2/callback/:id path server-side.
    • Storage/globals: strip leading underscores (MMKV scopes, session flags, cron maps, DB singletons); simplify drizzle init.
    • A11y/UI: add aria-labels, remove redundant roles, use aria-pressed for star rating, faster useIsMobile init.
    • Tests: stronger mock/widget typings; clearer duplicate active job assertion.