Skip to content

Tier 4 Onset T5-1-iOS — Step 1 prep (public journey test)

Status: STOP — awaiting Ryan real-device journey confirmation
Date: 2026-08-30
Prerequisite: T5-1 Phase 2 accepted — public endpoint live at onset-api.theonset.app
Reference: TIER_4_ONSET_T5-1_INFRA_REPORT.md


Scope lock (Step 1 only)

Allowed Blocked until Ryan confirms Step 1
Staging TestFlight build → public onset-api.theonset.app Flip Production.xcconfig
Onset Staging scheme / Release-Staging archive Onset Release archive
Ryan journey test on device App Store upload / submit
Build 7 (reuse Gate E build slot for Staging dogfood) Build 8 bump (Step 2)

This mirrors Gate E (a414fb6): Staging dogfood on R940, but over the public hostname App Store users will hit — not Tailscale (onset-db.tailc3bbdc.ts.net).


Server preflight (infra — PASS)

Run: bash scripts/onset/t5-1-ios-step1-preflight.sh

Check Result
CF proxy in path (cf-ray, server: cloudflare) PASS
/auth/v1/health 200
/auth/v1/settings → apple: true PASS (R940 GoTrue + TU6S85XABQ)
Journey account hello@unicornryda.com on R940 1 user, 23 shared_checkins

BWS ONSET_DB_PROD_SUPABASE_ANON_KEY matches VM 119 .env ANON_KEY (verified; not inlined here).


Mac agent (agent-01) — build + TestFlight

Repo: onset-ios @ main (9825d3f or later)

1. Point Staging at public R940 (NOT Production)

From Mac with BWS access:

cd /path/to/onset-ios
bash /path/to/lastvet-gates/scripts/onset/t5-1-ios-render-staging-xcconfig.sh "$(pwd)"

Expected Staging.xcconfig:

Key Value
SUPABASE_HOST onset-api.theonset.app
SUPABASE_URL https://onset-api.theonset.app
SUPABASE_ANON_KEY BWS ONSET_DB_PROD_SUPABASE_ANON_KEY

Do not edit Production.xcconfig (still hosted emxrmjys…).

2. Archive for TestFlight

Setting Value
Scheme Onset Staging
Archive configuration Release-Staging
Display name Onset Staging (distinguishes from App Store build)
ONSET_STAGING flag Present
Version 1.2.22 (7) — same marketing/build as repo today

Xcode: Product → Archive with Onset Staging scheme selected.

3. Upload to TestFlight

  • Distribute → App Store Connect (TestFlight processing is fine)
  • Same bundle ID com.last1enterprises.Onset as production — Ryan installs Onset Staging build 1.2.22 (7) from TestFlight

Note: Step 2 production archive will use build 8; Staging journey test can stay on 7.


Ryan journey test (real device, public path)

Install TestFlight build. Use cellular or Wi‑Fi (not Tailscale). Account: hello@unicornryda.com.

# Step Pass criteria
1 Launch app Opens without crash; backend is public (no Tailscale dependency)
2 Sign in Email/password or SIWA succeeds against onset-api.theonset.app
3 Load own data Home/dashboard loads; user sees their check-ins / protocol data (expect non-empty for hello)
4 Check-in or protocol view Open a check-in history or active protocol — data renders, no auth errors
5 Sign out Clean logout; re-login works

Failure signals: auth loop, empty data for hello, network errors referencing wrong host, SIWA failure (would indicate Apple key mismatch — preflight says R940 apple: true).


Step 1 report template (Ryan fills after journey)

T5-1-iOS Step 1 journey: PASS | FAIL
Device:
Network: cellular | wifi
Sign-in method: email | SIWA
Own data visible: yes | no
Check-in/protocol view: yes | no
Sign-out: ok | fail
Notes:

After Step 1

| If journey PASS | Ryan authorizes Step 2: flip Production.xcconfig, bump build 8, Onset Release archive | | If journey FAIL | STOP — diagnose on public path; do not flip Production |

Revert Staging.xcconfig to hosted rollback net after Step 1 (same as Gate E closeout 9825d3f), either before or after Step 2 — do not leave Staging on R940 prod long-term.


Step 2 / Step 3 preview (NOT authorized yet)

Documented for continuity only — do not execute until Ryan confirms Step 1:

  • Step 2: Production.xcconfig → onset-api.theonset.app + BWS anon key; build 8; Onset / Release archive
  • Step 3: Upload for App Store review (not Internal Testing only); review notes per Ryan's list

STOP

Infra preflight: PASS.
Device journey: pending Ryan on TestFlight build from Mac agent.

Do not flip Production or archive for App Store until Ryan confirms Step 1 journey PASS.