Installable Dev/Alpha/Beta build + Google login + minimal onboarding that reaches the home/call screen. Internal QA confirmed via Firebase App Tester β Alex is in and testing today. M0 now narrows to external/Play distribution for the Open Testing launch.
Highest-risk, highest-value, mostly there. Reconnect on drop, session resume, network handover, 5001 recovery.
Chat reconnect, character-switch history UX, send-button stall recovery.
delete-account (Play data-safety policy), sign-out. Apple Sign-In moved out of scope for 6/24 (see below).
Confirmed launch requirement. In-app gate (GET /waitlist/status β app-or-waitlist-screen) + waitlist entry screen + Statsig waitlist_auto_approve for early-adopter admission. Reuses iOS waitlist infra end-to-end.
Framework, shell, carousel, Search card all done. Finish card content + post-call rendering.
In-scope per the Open Testing commitment. FCM plumbing β permission prompt β text/waitlist push β deep-link tap-through. universal links.
Final polish: verify waitlist_joined / waitlist_approved events fire on Android, webβapp funnel from sesame.com/beta, Rudderstack + Bitdrift sinks. Mostly-built framework needs Android wiring + verification.
capture-android (visual evidence) and navigate-android (Maestro flow runs) at each exit.call.connect.duration_ms and reconnect success.UserWaitlistEntry.accepted via the internal tool β re-auth should admit them.Plan items that don't reference a Linear ticket β confirm whether each needs to be tracked, is already covered by an existing issue, or can be dropped.
GET /waitlist/status handling + entry-screen UI need their own ticket(s).