soldimobile ← all docs
Native App · QA Loop

The native app is real.

soldi's Expo app now builds in the cloud, installs on real phones, and passes its QA checklist — end to end, agent-driven, no laptop in the loop. Everything below is live and verified against staging only; production was never touched.

EAS project @soldicc/soldi Android build v0.1.0 (1) · signed OTA updates channel preview Device QA real Pixel 10 iOS build human-gated
Proof · 2026-08-21
soldi native app cold-started on a real Pixel 10: Soldi title, 'No active session' state, staging API footer
cc.soldi.app 0.1.0 · Google Pixel 10 · Android 16
hosted device fleet, cold start

What you're looking at

A real, MDM-managed Pixel 10 in Mobile Next's hosted fleet, running the signed preview APK that EAS built from this repo. The app cold-starts clean, probes the staging API, and reports the honest signed-out state — “No active session” is the correct answer until the bearer-token sign-in slice ships.

The same install receives over-the-air JS updates: any eas update --branch preview publish reaches this build on its next launch, which makes the day-to-day iteration loop a ~2-minute publish instead of a ~20-minute build.

Checklist results

CheckResult
Cold start — no redbox, staging footer visiblePASS
Signed-out shows “No active session”, not an errorPASS
soldi:// deep link opens the appPASS
Portrait lock holds under forced rotationPASS
Background → return, no crash or duplicate probePASS
Accessibility — labeled, focusable 44dp controlsPASS
Airplane-mode retry/backoff · full TalkBack sweepMANUAL
The loop — repeatable, agent-driven
Verify
Gate every change: typecheck, lint, tests, web export — green before anything ships.
Ship it
JS change → eas update (~2 min OTA). Native change → eas build (~20 min signed APK).
Install
Allocate a real device from the hosted fleet; push the APK through the upload path.
Prove
Walk the checklist with screenshots + accessibility trees, record results, release the device.
Marching orders
Cam · now
Merge the branch. claude/mobile-mcp-spike carries the EAS config, session notes, and this page — review and merge (or say the word and a PR gets opened).
Cam · now
Scope the Cloudflare token. The cloud token deploys docs today but can see every worker on the account — swap it for a least-privilege token limited to the soldi workers.
Cam · next
Greenlight the bearer-token session slice. The app is deliberately read-only until the native sign-in Worker variant is reviewed — it's the one blocker between this screen and a logged-in mobile experience.
Cam · next
Apple credentials, when iOS matters. The Android lane is fully automated; the first iOS build needs your Apple Developer sign-in (one interactive eas build). Store submission stays human-gated.
Anyone
Manual QA leftovers. Airplane-mode retry/backoff and a real TalkBack pass need a phone in hand — ten minutes with the preview APK covers both.