feat(auth): register via API, collect names in onboarding for all new signups
Summary (AI generated)
Moves console registration from the Supabase SDK to POST /auth/register (email + password only), collects first and last name in console onboarding, and ships that name step to 100% of new signups with no onboarding_v6 experiment and no legacy path. Includes the work from #3744 and supersedes it.
-
Remove
onboarding_v6fromab_tests.jsonand deletehasProfileOnboarding/PROFILE_ONBOARDING_AB_TEST.onboardingABTests.tsis now identical tomain. -
Every self-signup without an organization (and not invited) completes About you (first + last name) before Your goal. Invited users and existing organization members keep their current flow.
-
OnboardingProfile,/onboarding/nameandAppOnboardingFlowno longer wait for A/B assignments to decide whether to ask for names. Removed the "authoritative" reconcile option, the startup A/B wait and the redirect-on-assignment hook. -
Initial onboarding runs (
pre_org, not a new organization) always report analytics version 6. Other flows keep the existing experiment versions. -
Route guard: if organizations fail to load, navigation is no longer aborted, so established users can't be stuck on a blank screen. The wizard still re-checks names before creating the organization.
-
Tests: removed the allocation test and the treatment fixtures in Playwright and visual diff. The register e2e spec now exercises the real flow with no seeded assignment.
-
src/pages/register.vueno longer callssupabase.auth.signUp, asks for names, or asks to confirm the password (email + password only, like the website); it callsPOST /auth/registerthroughsrc/services/registration.tsand sets the returned session. -
New
/onboarding/name(About you) step plus draft/resume handling, reused from #3744.
Landing page counterpart: Cap-go/website#1235.
Motivation (AI generated)
The name step should apply to every new account, not to an experiment cohort, and the legacy no-name onboarding path should be removed.
Business Impact (AI generated)
Every new account gets a real first and last name for Bento/PostHog and support, and signup has two fewer fields. One flow means less code to maintain and no stale experiment cohorts.
Test Plan (AI generated)
-
bun run typecheck(CLI, backend, frontend) - ESLint on all changed files
- Focused unit suites: onboarding name gate/page/profile, app onboarding integration, auth guard (SSO provisioning): all pass
- Full
bun test:unit: the only remaining failures (dual-onboarding-*,native-device-stats,onboarding-redirect) fail identically on the base branch -
playwright/e2e/register.spec.tsagainst local Supabase: 15/15 pass with no V6 fixture
Screenshots (AI generated)
Captured locally with a fictional account against this branch.
| Step | Desktop | Mobile |
|---|---|---|
| Register (email + password only, no confirm) | ![]() | ![]() |
| Onboarding: About you (required) | ![]() | ![]() |
| About you filled | ![]() | |
| Next: Your goal | ![]() | ![]() |
Generated with AI
🤖 Generated with Claude Code
Summary by CodeRabbit
-
New Features
- Added a dedicated onboarding step for collecting and saving first and last names, with draft recovery and validation.
- Added clearer onboarding progress, navigation, resume, cancel, and logout experiences across screen sizes.
- Registration now uses email and password, then continues directly into onboarding.
- Added profile-recovery options when account information cannot be loaded.
-
Bug Fixes
- Improved onboarding progress persistence and retry behavior.
- Added localized messaging for account-loading failures and profile setup guidance.






