Phase 1 offline prototype — test results

Pass criteria are in the README.

Run 1 — 31 Oct 2026

Setup: real Android phone, Expo Go (SDK 58), API on the developer PC over home Wi-Fi, Cloudflare R2 bucket property-preservation-hub.

#TestResultNotes
—Online capture → R2Pass4 photos, ~1.5 s each (presign ~20 ms, server verify ~1.2 s).
1Airplane mode capture, kill app, reopenPassPhotos stayed Waiting after the app was killed.
2Network back → sends on its ownPassAll moved to "Sent to office" with no taps.
—TotalsPassPhone: 15 sent, 0 waiting, 0 failed. R2: 15 objects. Server: 15 presign, 15 confirm stored, 0 errors, 0 duplicates.
3Kill app mid-uploadNot run
4500 photos on mobile dataNot run
5Weak network retriesNot run
6Background send with app closedNot runNeeds an EAS development build; Expo Go is not reliable for background tasks.
7Mock-location flagNot run

Tests 3–7 deferred by decision (31 Oct 2026): run them before phase 4 (sync, QA) on an EAS development build.

Fixed during the run: Link asChild with an array style crashed expo-router's Slot; the button now uses router.push.

docs/prototype-test-results.md