Repository navigation
feat(app): Yinka's first-conversation onboarding as the yinka arm of a three-way onboarding experiment - #21650
Merged
Merged
Conversation
…a three-way onboarding experiment (control / reid / yinka)
kodjima33
added a commit
that referenced
this pull request
Oct 15, 2026
…he release build compiles (#21651) ## Summary The release (AOT) compile of main failed at `flutter build ipa` after #21650: the summary card's entrance in Yinka's activation assigned the `AnimatedBuilder` child (`Widget?`) to a `Widget` when the blur is already gone. Unwrap it. Debug builds and the analyzer did not flag it; the local prod-flavor release build reproduced the exact CI error. ## Testing Local `flutter build ios --release --flavor prod --no-codesign` on the fix: compiles. Activation tests pass. ## Product invariants affected none ## Failure class (fixes) Failure-Class: none UI-Evidence: none -- one-token type fix in a flag-gated screen; no visual change. <!-- This is an auto-generated description by cubic. --> <a href="https://cubic.dev/pr/BasedHardware/omi/pull/21651?utm_source=github" target="_blank" rel="noopener noreferrer" data-no-image-dialog="true"><picture><source media="(prefers-color-scheme: dark)" srcset="https://www.cubic.dev/buttons/review-in-cubic-dark.svg"><source media="(prefers-color-scheme: light)" srcset="https://www.cubic.dev/buttons/review-in-cubic-light.svg"><img alt="View guided diff" src="https://www.cubic.dev/buttons/review-in-cubic-light.svg"></picture></a> <a href="https://www.cubic.dev/action/auto-fix/pr/BasedHardware/omi/21651?returnTo=https%3A%2F%2Fgithub.com%2FBasedHardware%2Fomi%2Fpull%2F21651&source=description" target="_blank" rel="noopener noreferrer" data-no-image-dialog="true"><picture><source media="(prefers-color-scheme: dark)" srcset="https://www.cubic.dev/buttons/turn-on-auto-fix-dark.svg"><source media="(prefers-color-scheme: light)" srcset="https://www.cubic.dev/buttons/turn-on-auto-fix-light.svg"><img alt="Turn on auto-fix" src="https://www.cubic.dev/buttons/turn-on-auto-fix-light.svg"></picture></a> <!-- End of auto-generated description by cubic. -->
10 of 16 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds Yinka's onboarding (PR #21445: Name → Permissions → Language → Connect Omi → a first real conversation, its summary and to-dos, the paywall, the rating ask) as the
yinkaarm of a three-way first-run onboarding experiment, next to today's native steps (control) and Reid's web page (reid). Nothing changes for anyone not in the experiment: the flag targets the test account only, and an unread flag, an unknown variant or a bad payload is control.OnboardingVariantGatereplacesOnboardingWebviewGate: one multivariate PostHog flagonboarding-variant(control/reidwith{"url"}payload /yinka), same identity wait, warm-up, account-switch fence and verified reload. Debug:--dart-define=OMI_ONBOARDING_VARIANT=reid|yinka.app/lib/pages/onboarding/variants/yinka/(copied from her branch, imports rebased) with a smallYinkaOnboardingFlowpage that runs them after sign-in and consent, like the web onboarding page. The wrapper still owns completion; it skips the end-of-onboarding paywall placement when the activation already offered a plan.endSearch, Bluetooth in the permissions panel enum, scanning ripple colour, in-app web page close button, the Omi shop helper, 32 strings in all 49 locales.Onboarding Variant Shownwith$feature/onboarding-variantfor every arm, the experiment's exposure event.PostHog: flag 961069 (test account →
yinka, everyone else control), draft experiment 484222, dashboard 2212642.Testing
Simulator (dev flavour, prod backend,
OMI_ONBOARDING_VARIANT=yinka): Name → Permissions → Language → Connect Omi ("Not ordered yet" opens the store sheet) → "Let's try Omi" → dictation → "You're all set, Nik" → rating prompt → outline paywall (the account's paywall arm) → Home, no second paywall. Kill-and-relaunch mid-flow resumed at Connect Omi. 60 unit/widget tests pass (gate, activation flow, connect step, summary text, existing onboarding tests).Product invariants affected
Failure class (fixes)
Failure-Class: none
UI-Evidence: none -- new screens are flag-gated to the test account; simulator walkthrough screenshots in the PR description are the evidence.