Device run sessions call www only via worker API
This release1 fixBug fixesAI-tallied from the release notesDevice run session jobs now call www exclusively through the device run session worker API, removing their GraphQL fallbacks.
npx @buildinternet/releases get expoRecently shipped native crash reporting in EAS Observe and a coding-agent step for custom builds.
EAS Observe now catches native crashes. On SDK 57, update expo-observe to 57.0.21 or later: Android and iOS crashes now land in the same list as JavaScript errors, filterable by source. Android coverage includes uncaught Java and Kotlin exceptions plus the crash records the OS keeps on Android 11 and later; iOS covers Mach exceptions like EXC_BAD_ACCESS, Unix signals like SIGSEGV, and uncaught Objective-C and Swift exceptions.

Custom builds can run coding agents. The eas/run_agent step runs Claude Code — or Codex — connected to the Expo MCP server, and writes agent messages, tool calls, and errors into the job log. Sandboxes can also run shell commands and read text and image files through that server.
SDK 58 beta targets iOS 27. Ship with the beta now if you need iOS 27 support; the beta runs three to four weeks with fixes landing continuously. React Native 0.88 is still a release candidate, so SDK 58 stable follows RN 0.88 stable.
Simulator sessions gained preview and capture tooling.
--network-capture records HTTP(S) traffic from apps on the device, optionally keeping headers and bodies.--egress local now works on Android, with refused destinations logged as warnings.--build-fingerprint installs the newest build matching a fingerprint.Smaller EAS CLI additions.
eas/upload_embedded_bundle uploads the embedded bundle from custom builds that use eas/build.eas update:view --json reports signed assetMapUrl and sourceMapUrl values.--force-end-active-rollout ends an in-progress rollout on eas update and its rollback and republish variants; --upload-source-maps uploads source maps with eas update.Device run session jobs now call www exclusively through the device run session worker API, removing their GraphQL fallbacks.
New simulator sessions now default to authenticated preview links and omit preview credentials from private output, with public sharing via simulator:start --public-link and simulator:get following the saved preference. Adds expo-device-hub startup for Android simulator sessions with --require-token, separate session logs for agent-device, Appium, and Argent previews, and a cold-start speedup for iOS Appium sessions.
Expo SDK 58 is built for iOS 27, which requires the UIKit scene-based life cycle and makes iPhone apps resizable, and includes React Native 0.88. It adds the alpha expo-app-intents package for exposing app actions to Siri, Shortcuts, Spotlight, and Apple Intelligence, expo-hinge for foldable hinge state, and expo-device-hub for streaming simulators in the browser.
eas workflow:insights:maestro gains a --platform flag that lists Maestro runs and flows per platform. Also allows more time for iOS screen recordings to finalize during session shutdown.
User, account, and project settings on expo.dev have been redesigned with dedicated pages and a consistent sidebar. Account Billing, Receipts, Access Tokens, and Notifications moved into the account settings sidebar, while project Credentials, Hosting, and GitHub moved into the project settings sidebar.
Node.js 20 is deprecated with a warning at runtime, and a future release will require Node.js 22 or newer. Added the eas/run_agent build step that runs Claude Code or Codex connected to the Expo MCP server, plus MCP sandbox file reads and artifact uploads.
Fixed eas simulator create leaving a server-created simulator session running when Ctrl+C lands during creation.
Adds the eas/upload_embedded_bundle step for custom build configs, which uploads the embedded bundle from custom builds that use eas/build. The eas update:view --json output now includes assetMapUrl and sourceMapUrl as signed download URLs or null, plus fixes for iOS network capture, macOS simulator previews, and workflow:ssh handling of missing build IDs.
EAS Observe records native crashes alongside JavaScript errors with no setup, covering uncaught Java and Kotlin exceptions and OS crash records on Android plus Mach exceptions, Unix signals, and uncaught Objective-C and Swift exceptions on iOS. Requires updating to expo-observe 57.0.21 or later on SDK 57; error reporting is in preview.
Added browser device login with resumable commands for chat agents and iOS Simulator session recording through serve-sim. Also retries App Store Connect connection failures with safe recovery for interrupted status reads and upload commits.
Adds eas integrations:supabase:advisors to list unresolved Supabase Security and Performance Advisor findings for the linked project, and accepts individual App Store Connect API keys for submissions, TestFlight setup, and metadata. Also added --build-fingerprint to eas simulator and fixed eas account:view printing Role: undefined for the Release Manager role.
iOS Simulator previews now stream with H.264, and simulator sessions report the expo.dev preview page as their preview URL and the preview server behind it as previewApiUrl. eas simulator:start and eas simulator:get report the expo.dev preview page instead of the raw tunnel URL in printed instructions and --json, and package manager overrides are now honored when installing and launching simulator packages.
SDK 58 beta is built for iOS 27 and bundles React Native 0.88 release candidate, with a three-to-four-week beta period before stable. It adds expo-app-intents for exposing Siri, Shortcuts, Spotlight, and Apple Intelligence intents from JavaScript, plus an Expo CLI Device Hub integration for Xcode 27 and expo-device-hub browser dashboards for simulators. Apps now use the UIKit scene-based life cycle, so projects customizing AppDelegate.swift need the scene life cycle migration.
EAS CLI now requires Node ^20.18.3 or >=22.0.0, dropping Node 18. In --egress local sessions, a guard injected into every iOS Simulator process refuses connections that bypass the system proxy and reports them with calling frameworks in the session log, and proxy environment variables are set inside the simulator for clients that read them such as gRPC and libcurl. Build-tools also skip project source refresh for jobs with no sources.