πŸ“± Android Early Access β€” Sequencing Plan

Ordered for testability: get each feature into a state QA can exercise as early as possible, so we collect feedback while there's runway to fix. Keeps the proposed priority order, front-loads the access spine, fills the gaps.
Ship by
Jun 24
Donald back 22nd

Milestone roadmap

M0 Β· Access spineowner: Rhys Β· parallelUNBLOCKS QA

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.

Exit: Play Open Testing track live; external testers can install via the Play listing.
PMF-3175 Play tracksInternal QA on Firebase App Tester βœ“
M1 Β· CallsSinger / Amos / RhysQA #1

Highest-risk, highest-value, mostly there. Reconnect on drop, session resume, network handover, 5001 recovery.

Exit: QA places a call, survives wifi↔LTE handover, recovers from drops.
M2 Β· TextsAmos (focused)QA #2

Chat reconnect, character-switch history UX, send-button stall recovery.

Exit: QA holds a text conversation, switches characters, recovers from stalls.
M3 Β· Login completenessRhysPARITY

+ gap delete-account (Play data-safety policy), sign-out. Apple Sign-In moved out of scope for 6/24 (see below).

Exit: QA can sign in with Google, sign out, and delete account.
Google login βœ“#15874/#15880 account βœ“delete-account
M4 Β· Waitlist flowDonaldMUST-SHIP

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.

Exit: non-allowlisted users hit the waitlist screen; Statsig auto-approve admits early adopters into the app.
PMF-3090 Statsig gateClient gate logicWaitlist entry screen
M5 Β· SDUI cardsRhysQA #3

Framework, shell, carousel, Search card all done. Finish card content + post-call rendering.

Exit: QA sees cards in-call and in the post-call activity sheet.
M6 Β· Push + universal linksRhys / DonaldMUST-SHIP

In-scope per the Open Testing commitment. FCM plumbing β†’ permission prompt β†’ text/waitlist push β†’ deep-link tap-through. + gap: universal links.

Exit: QA receives a push and deep-links into the right screen.
M7 Β· AnalyticsDonaldLAST

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.

Exit: joined/approved events verified; web β†’ in-app funnel intact.
PMF-3089 beta opt-inwaitlist_joined/approvedRudderstack/Bitdrift

Compressed timeline (β‰ˆ3 weeks)

Wk1 Β· Jun 2–8Wk2 Β· Jun 9–15Wk3 Β· Jun 16–24
M0 Access spine
spine
M1 Calls
QA #1
M2 Texts
QA #2
M3 Login
parity
M4 Waitlist flow
must-ship
M5 SDUI cards
QA #3
M6 Push + links
must-ship
M7 Analytics
last
Bars overlap intentionally β€” features land behind flags so a slip in one doesn't block QA of the others. M0 + M1 are the critical path; M4 Waitlist is a hard launch requirement; M7 Analytics is the only fully-deferrable bucket.

Gaps the original list was missing

βž• Add to scope

  • Distribution / release plumbing β€” Play tracks (PMF-3175), Firebase suffix builds, signing. The true M0; nothing is QA-able without it.
  • Onboarding flow β€” gender, agent audio sampler (CHA-55), greeting. Sits between login and calls/texts.
  • Universal / deep links β€” required by Open Testing + push tap-through + sesame.com/beta hand-off.
  • Settings / account parity β€” sign-out, delete-account (Play data-safety policy).
  • Profile / character parity β€” confirm release profiles reach Android (PMF-3194 was canceled β€” verify it's covered).

β›” Out of scope for 6/24

  • Apple Sign-In on Android (PMF-3215) β€” deferred post-launch. Ticket stays open in Linear as backlog. iOS-user migration via Apple ID will require pickup before that funnel is meaningful.
  • Android Auto (PMF-2704, PMF-2708) β€” backlog, Level 4, partner application + production rollout. Separate train.

❓ Confirm with team

  • Waitlist promotion cadence (time / count / manual) β€” sizes the M7 analytics work + M4 admission policy.

How to validate each milestone

Items to validate in Linear

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.