πŸ“± 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, fills the gaps.
Ship by
Jun 24
Donald back 22nd

Milestone roadmap

M0 Β· CallsSinger / Amos / Rhys

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.
M1 Β· TextsAmos (focused)

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

Exit: QA holds a text conversation, switches characters, recovers from stalls.
M2 Β· Push + universal linksRhys / Donald

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.
M3 Β· Waitlist flowDonald / Rhys

Confirmed launch requirement. In-app gate (GET /waitlist/status β†’ app-or-waitlist-screen) + waitlist entry screen + Statsig waitlist_auto_approve for early-adopter admission + Google Play tracks (closed β†’ open β†’ production) so external testers can install. Reuses iOS waitlist infra end-to-end.

Exit: Play Open Testing track live; non-allowlisted users hit the waitlist screen; Statsig auto-approve admits early adopters.
PMF-3175 Play tracksPMF-3090 Statsig gateClient gate logicWaitlist entry screen
M4 Β· SDUI cardsRhys

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.
M5 Β· AnalyticsDonald

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

Progress by milestone

M0 Calls Β· 2/5
M1 Texts Β· 0/3
M2 Push + links Β· 1/5
M3 Waitlist flow Β· 0/4
M4 SDUI cards Β· 3/4
M5 Analytics Β· 0/3
Bar length = items in that milestone; solid fill = done, faded = remaining. Counts exclude parent epics and stretch items. M0 Calls and M2 Push carry the most outstanding work; M4 SDUI is 75% done with PMF-2722 in review.

Gaps the original list was missing

βž• Add to scope

  • Onboarding flow β€” gender, agent audio sampler (PMF-3211), greeting. Sits between login and calls/texts.
  • Profile / character parity β€” confirm release profiles reach Android (PMF-3194 was canceled as duplicate β€” 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 M5 analytics work + M3 admission policy.

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.