Skip to content

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

Open
jakejarvis wants to merge 7 commits into
mainfrom
expo-57
Open

chore: upgrade Expo SDK 55 → 57 and React Native 0.83 → 0.86#54
jakejarvis wants to merge 7 commits into
mainfrom
expo-57

Conversation

@jakejarvis

@jakejarvis jakejarvis commented Jul 6, 2026

Copy link
Copy Markdown
Owner

Summary by cubic

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

  • Dependencies

    • expo and modules → 57; react-native → 0.86; expo-router → ~57; add @expo/ui and @expo/material-symbols; @sentry/react-native → ~8.18 (excluded from Expo auto-install); posthog-react-native → 4.55.0.
    • Native: drop zeego and @react-native-menu/menu; move iOS deployment target to app.json (ios.deploymentTarget: "16.4"); remove expo-build-properties.
    • Web/server/docs: bump @tanstack/*, hono (4.12.28), croner (10.0.2-dev.3), vite (8.1.3), next (16.2.10), tailwind* (4.3.2); bun → 1.3.14; docs updated to latest fumadocs-*.
    • Tooling: remove GitHub Actions claude.yml and claude-code-review.yml; simplify .oxlintrc (drop @e18e/eslint-plugin; allow __APP_VERSION__, __GIT_COMMIT_SHA__ in no-underscore-dangle).
  • Refactors

    • Menus: replace zeego dropdowns with @expo/ui MenuView and use @expo/material-symbols on Android; remove menu-open haptic triggers.
    • Navigation/theme: switch to expo-router/react-navigation ThemeProvider and header APIs; extract headerRight/unstable_headerRightItems helpers for stability.
    • Storage/globals: remove leading underscores (MMKV scope, session flags, cron/job maps, DB singletons); simplify drizzle init.
    • Docs: use createOpenAPIPage with server-provided OpenAPI payload.
    • A11y/UI: add/adjust aria-labels, remove redundant roles, use aria-pressed for star rating, improve input-group focusing, faster useIsMobile init, smoother season accordion.
    • Tests: stronger typings for mocks and widgets; clearer assertion for duplicate active job.

Written for commit 5db6a44. Summary will update on new commits.

Review in cubic

@vercel

vercel Bot commented Jul 6, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
sofa-docs Ready Ready Preview, Comment Jul 12, 2026 10:28pm
1 Skipped Deployment
Project Deployment Actions Updated (UTC)
sofa-public-api Skipped Skipped Jul 12, 2026 10:28pm

Request Review

@codecov-commenter

codecov-commenter commented Jul 6, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 68.82%. Comparing base (553fe98) to head (5db6a44).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main      #54   +/-   ##
=======================================
  Coverage   68.82%   68.82%           
=======================================
  Files          30       30           
  Lines        2512     2512           
  Branches      809      809           
=======================================
  Hits         1729     1729           
  Misses        651      651           
  Partials      132      132           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

4 issues found and verified against the latest diff

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="apps/public-api/package.json">

<violation number="1" location="apps/public-api/package.json:15">
P2: `@hono/zod-validator` 0.8.0 includes documented type-level breaking changes for the no-hook overload: the failure response type is now wider and intersected with `Response`. All four `zValidator()` calls in `src/app.ts` use the no-hook form, so these changes apply. Run `bun run check-types` to confirm no type errors emerge from this upgrade. If they do, pass an explicit hook callback or downgrade to 0.7.6.</violation>
</file>

Reply with feedback, questions, or to request a fix.

Re-trigger cubic

Comment thread apps/native/package.json Outdated
Comment thread apps/public-api/package.json
Comment thread apps/native/app.json Outdated
Comment thread apps/web/src/components/settings/account-section.tsx
…p avatar aria-label

- Move iOS `deploymentTarget` from expo-build-properties plugin config to top-level `ios` field in app.json, removing the now-unnecessary `expo-build-properties` dependency
- Upgrade `@sentry/react-native` from ~7.11.0 to ~8.17.2
- Remove redundant `aria-label` from avatar upload button in web settings

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1 issue found across 9 files (changes from recent commits).

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name=".oxlintrc.json">

<violation number="1" location=".oxlintrc.json:28">
P2: The `@e18e/eslint-plugin` JS plugin and all its `e18e/prefer-*` rules are being removed. Several have native Oxlint equivalents that are not being enabled, such as `typescript/prefer-nullish-coalescing`, `eslint/prefer-includes`, `eslint/prefer-object-has-own`, `unicorn/prefer-array-some`, `unicorn/prefer-at`, and `unicorn/prefer-date-now`. Consider enabling those to maintain the code-quality enforcement that was previously provided at error level. No Oxlint equivalent exists for other removed rules like `e18e/prefer-array-fill`, `e18e/prefer-array-from-map`, and `e18e/prefer-regex-test` which are silently dropped.</violation>
</file>

Tip: Review your code locally with the cubic CLI to iterate faster.

Re-trigger cubic

Comment thread apps/native/src/components/dashboard/stats-card.tsx Outdated
Comment thread .oxlintrc.json
@@ -1,7 +1,6 @@
{

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2: The @e18e/eslint-plugin JS plugin and all its e18e/prefer-* rules are being removed. Several have native Oxlint equivalents that are not being enabled, such as typescript/prefer-nullish-coalescing, eslint/prefer-includes, eslint/prefer-object-has-own, unicorn/prefer-array-some, unicorn/prefer-at, and unicorn/prefer-date-now. Consider enabling those to maintain the code-quality enforcement that was previously provided at error level. No Oxlint equivalent exists for other removed rules like e18e/prefer-array-fill, e18e/prefer-array-from-map, and e18e/prefer-regex-test which are silently dropped.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At .oxlintrc.json, line 28:

<comment>The `@e18e/eslint-plugin` JS plugin and all its `e18e/prefer-*` rules are being removed. Several have native Oxlint equivalents that are not being enabled, such as `typescript/prefer-nullish-coalescing`, `eslint/prefer-includes`, `eslint/prefer-object-has-own`, `unicorn/prefer-array-some`, `unicorn/prefer-at`, and `unicorn/prefer-date-now`. Consider enabling those to maintain the code-quality enforcement that was previously provided at error level. No Oxlint equivalent exists for other removed rules like `e18e/prefer-array-fill`, `e18e/prefer-array-from-map`, and `e18e/prefer-regex-test` which are silently dropped.</comment>

<file context>
@@ -26,23 +25,7 @@
-    "e18e/prefer-static-regex": "error",
-    "e18e/prefer-timer-args": "error",
-    "e18e/prefer-url-canparse": "error"
+    "react/rules-of-hooks": "error"
   },
   "ignorePatterns": ["node_modules", "dist", "build", "docs", "**/routeTree.gen.ts"]
</file context>

Comment thread apps/native/src/components/library/sort-menu.tsx Outdated
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

eas-build Pull request label to create builds with EAS Build.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants