refactor(onboarding): remove onboarding v1 unleash feature flags#3458
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (53)
💤 Files with no reviewable changes (15)
🚧 Files skipped from review as they are similar to previous changes (34)
📝 WalkthroughWalkthroughThe PR removes onboarding and first-purchase feature-flag gates, eliminates trial payment-method validation and 3DS response handling, and makes authentication and deployment routing unconditional or query-driven. Related API and UI tests are updated accordingly. ChangesLegacy gate removal
Estimated code review effort: 4 (Complex) | ~60 minutes Possibly related PRs
Suggested reviewers: ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Warning There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure. 🔧 ESLint
ESLint install timed out. The project may have too many dependencies for the sandbox. Comment |
553abe1 to
39bf965
Compare
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #3458 +/- ##
==========================================
- Coverage 73.27% 72.21% -1.07%
==========================================
Files 1133 1043 -90
Lines 29639 27191 -2448
Branches 7448 6950 -498
==========================================
- Hits 21718 19636 -2082
+ Misses 6975 6647 -328
+ Partials 946 908 -38
*This pull request uses carry forward flags. Click here to find out more.
🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In
`@apps/deploy-web/src/components/onboarding/RequireOnboarding/RequireOnboarding.tsx`:
- Around line 36-39: Update the wallet predicate used by RequireOnboarding and
useOnboardingChrome to include isWalletConnected alongside hasManagedWallet &&
!!address, so connected external wallets are treated as having a wallet and
still query leases. Add external-wallet coverage to both adjacent specs, one for
each flow.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: dfec4d95-1a65-4537-ad31-4fdbb3558170
📒 Files selected for processing (52)
apps/api/src/bid-screening/routes/bid-screening.router.tsapps/api/src/billing/controllers/wallet/wallet.controller.spec.tsapps/api/src/billing/http-schemas/stripe.schema.tsapps/api/src/billing/http-schemas/wallet.schema.tsapps/api/src/billing/routes/start-trial/start-trial.router.tsapps/api/src/billing/services/first-purchase-bonus-offer/first-purchase-bonus-offer.service.spec.tsapps/api/src/billing/services/first-purchase-bonus-offer/first-purchase-bonus-offer.service.tsapps/api/src/billing/services/first-purchase-bonus/first-purchase-bonus.service.spec.tsapps/api/src/billing/services/first-purchase-bonus/first-purchase-bonus.service.tsapps/api/src/billing/services/stripe/stripe.service.spec.tsapps/api/src/billing/services/stripe/stripe.service.tsapps/api/src/billing/services/wallet-initializer/wallet-initializer.service.spec.tsapps/api/src/billing/services/wallet-initializer/wallet-initializer.service.tsapps/api/src/core/services/feature-flags/feature-flags.tsapps/deploy-web/src/components/auth/AuthPage/AuthPage.spec.tsxapps/deploy-web/src/components/auth/AuthPage/AuthPage.tsxapps/deploy-web/src/components/auth/PasswordAuth/PasswordAuth.spec.tsxapps/deploy-web/src/components/auth/PasswordAuth/PasswordAuth.tsxapps/deploy-web/src/components/auth/PasswordlessAuth/PasswordlessAuth.spec.tsxapps/deploy-web/src/components/auth/PasswordlessAuth/PasswordlessAuth.tsxapps/deploy-web/src/components/billing-usage/FirstPurchaseBonusAlert/FirstPurchaseBonusAlert.spec.tsxapps/deploy-web/src/components/billing-usage/FirstPurchaseBonusAlert/FirstPurchaseBonusAlert.tsxapps/deploy-web/src/components/new-deployment/RedirectDeployLinuxToConfigure/RedirectDeployLinuxToConfigure.spec.tsxapps/deploy-web/src/components/new-deployment/RedirectDeployLinuxToConfigure/RedirectDeployLinuxToConfigure.tsxapps/deploy-web/src/components/new-deployment/RedirectMappableBuilderToConfigure/RedirectMappableBuilderToConfigure.spec.tsxapps/deploy-web/src/components/new-deployment/RedirectMappableBuilderToConfigure/RedirectMappableBuilderToConfigure.tsxapps/deploy-web/src/components/new-deployment/TemplateList.spec.tsxapps/deploy-web/src/components/new-deployment/TemplateList.tsxapps/deploy-web/src/components/onboarding-picker/OnboardingPickerPage.spec.tsxapps/deploy-web/src/components/onboarding-picker/OnboardingPickerPage.tsxapps/deploy-web/src/components/onboarding/RequireOnboarding/RequireOnboarding.spec.tsxapps/deploy-web/src/components/onboarding/RequireOnboarding/RequireOnboarding.tsxapps/deploy-web/src/hooks/useNewDeploymentUrl/useNewDeploymentUrl.spec.tsapps/deploy-web/src/hooks/useNewDeploymentUrl/useNewDeploymentUrl.tsapps/deploy-web/src/hooks/useOnboardingChrome.spec.tsapps/deploy-web/src/hooks/useOnboardingChrome.tsapps/deploy-web/src/pages/deploy-linux/index.tsxapps/deploy-web/src/pages/login/index.tsxapps/deploy-web/src/pages/new-deployment/configure/[[...dseq]].tsxapps/deploy-web/src/pages/onboarding/index.tsxapps/deploy-web/src/types/feature-flags.tsapps/deploy-web/tests/ui/actions/auth.tsapps/deploy-web/tests/ui/actions/feature-flags.tsapps/deploy-web/tests/ui/configure-deployment-flow.spec.tsapps/deploy-web/tests/ui/deploy-from-a-template.spec.tsapps/deploy-web/tests/ui/deploy-linux.spec.tsapps/deploy-web/tests/ui/managed-wallet-alerts.spec.tsapps/deploy-web/tests/ui/managed-wallet-deployment.spec.tsapps/deploy-web/tests/ui/managed-wallet-onboarding.spec.tsapps/deploy-web/tests/ui/onboarding-gate.spec.tsapps/deploy-web/tests/ui/onboarding-journey.spec.tsapps/deploy-web/tests/ui/onboarding-picker-unlock-trial.spec.ts
💤 Files with no reviewable changes (16)
- apps/deploy-web/tests/ui/deploy-from-a-template.spec.ts
- apps/deploy-web/tests/ui/onboarding-picker-unlock-trial.spec.ts
- apps/deploy-web/tests/ui/managed-wallet-onboarding.spec.ts
- apps/deploy-web/tests/ui/deploy-linux.spec.ts
- apps/deploy-web/tests/ui/configure-deployment-flow.spec.ts
- apps/deploy-web/tests/ui/managed-wallet-alerts.spec.ts
- apps/deploy-web/tests/ui/managed-wallet-deployment.spec.ts
- apps/deploy-web/tests/ui/actions/feature-flags.ts
- apps/api/src/billing/http-schemas/wallet.schema.ts
- apps/api/src/billing/http-schemas/stripe.schema.ts
- apps/api/src/billing/services/first-purchase-bonus/first-purchase-bonus.service.ts
- apps/deploy-web/tests/ui/onboarding-journey.spec.ts
- apps/api/src/billing/services/stripe/stripe.service.spec.ts
- apps/api/src/billing/controllers/wallet/wallet.controller.spec.ts
- apps/api/src/bid-screening/routes/bid-screening.router.ts
- apps/deploy-web/src/types/feature-flags.ts
14dfb3b to
e114df0
Compare
e114df0 to
029fb17
Compare
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In
`@apps/deploy-web/src/components/new-deployment/RedirectMappableBuilderToConfigure/RedirectMappableBuilderToConfigure.spec.tsx`:
- Around line 21-24: Add a distinct test case for the redeploy intent in the
RedirectMappableBuilderToConfigure spec, passing the redeploy query flag used by
the hasRedeploy guard and asserting replace is not called while the classic
content remains visible. Keep the existing gitProvider case focused on git
intents rather than combining both scenarios.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: 4c49692c-87cd-49a9-9d65-3bea263c01d5
⛔ Files ignored due to path filters (1)
apps/api/test/functional/__snapshots__/docs.spec.ts.snapis excluded by!**/*.snap
📒 Files selected for processing (53)
apps/api/src/bid-screening/routes/bid-screening.router.tsapps/api/src/billing/controllers/wallet/wallet.controller.spec.tsapps/api/src/billing/http-schemas/stripe.schema.tsapps/api/src/billing/http-schemas/wallet.schema.tsapps/api/src/billing/routes/start-trial/start-trial.router.tsapps/api/src/billing/services/first-purchase-bonus-offer/first-purchase-bonus-offer.service.spec.tsapps/api/src/billing/services/first-purchase-bonus-offer/first-purchase-bonus-offer.service.tsapps/api/src/billing/services/first-purchase-bonus/first-purchase-bonus.service.spec.tsapps/api/src/billing/services/first-purchase-bonus/first-purchase-bonus.service.tsapps/api/src/billing/services/stripe/stripe.service.spec.tsapps/api/src/billing/services/stripe/stripe.service.tsapps/api/src/billing/services/wallet-initializer/wallet-initializer.service.spec.tsapps/api/src/billing/services/wallet-initializer/wallet-initializer.service.tsapps/api/src/core/services/feature-flags/feature-flags.tsapps/deploy-web/src/components/auth/AuthPage/AuthPage.spec.tsxapps/deploy-web/src/components/auth/AuthPage/AuthPage.tsxapps/deploy-web/src/components/auth/PasswordAuth/PasswordAuth.spec.tsxapps/deploy-web/src/components/auth/PasswordAuth/PasswordAuth.tsxapps/deploy-web/src/components/auth/PasswordlessAuth/PasswordlessAuth.spec.tsxapps/deploy-web/src/components/auth/PasswordlessAuth/PasswordlessAuth.tsxapps/deploy-web/src/components/billing-usage/FirstPurchaseBonusAlert/FirstPurchaseBonusAlert.spec.tsxapps/deploy-web/src/components/billing-usage/FirstPurchaseBonusAlert/FirstPurchaseBonusAlert.tsxapps/deploy-web/src/components/new-deployment/RedirectDeployLinuxToConfigure/RedirectDeployLinuxToConfigure.spec.tsxapps/deploy-web/src/components/new-deployment/RedirectDeployLinuxToConfigure/RedirectDeployLinuxToConfigure.tsxapps/deploy-web/src/components/new-deployment/RedirectMappableBuilderToConfigure/RedirectMappableBuilderToConfigure.spec.tsxapps/deploy-web/src/components/new-deployment/RedirectMappableBuilderToConfigure/RedirectMappableBuilderToConfigure.tsxapps/deploy-web/src/components/new-deployment/TemplateList.spec.tsxapps/deploy-web/src/components/new-deployment/TemplateList.tsxapps/deploy-web/src/components/onboarding-picker/OnboardingPickerPage.spec.tsxapps/deploy-web/src/components/onboarding-picker/OnboardingPickerPage.tsxapps/deploy-web/src/components/onboarding/RequireOnboarding/RequireOnboarding.spec.tsxapps/deploy-web/src/components/onboarding/RequireOnboarding/RequireOnboarding.tsxapps/deploy-web/src/hooks/useNewDeploymentUrl/useNewDeploymentUrl.spec.tsapps/deploy-web/src/hooks/useNewDeploymentUrl/useNewDeploymentUrl.tsapps/deploy-web/src/hooks/useOnboardingChrome.spec.tsapps/deploy-web/src/hooks/useOnboardingChrome.tsapps/deploy-web/src/pages/deploy-linux/index.tsxapps/deploy-web/src/pages/login/index.tsxapps/deploy-web/src/pages/new-deployment/configure/[[...dseq]].tsxapps/deploy-web/src/pages/onboarding/index.tsxapps/deploy-web/src/types/feature-flags.tsapps/deploy-web/tests/ui/actions/auth.tsapps/deploy-web/tests/ui/actions/feature-flags.tsapps/deploy-web/tests/ui/configure-deployment-flow.spec.tsapps/deploy-web/tests/ui/deploy-from-a-template.spec.tsapps/deploy-web/tests/ui/deploy-linux.spec.tsapps/deploy-web/tests/ui/managed-wallet-alerts.spec.tsapps/deploy-web/tests/ui/managed-wallet-deployment.spec.tsapps/deploy-web/tests/ui/managed-wallet-onboarding.spec.tsapps/deploy-web/tests/ui/onboarding-gate.spec.tsapps/deploy-web/tests/ui/onboarding-journey.spec.tsapps/deploy-web/tests/ui/onboarding-picker-unlock-trial.spec.tsapps/deploy-web/tests/ui/pages/PlainLinuxPage.tsx
💤 Files with no reviewable changes (16)
- apps/deploy-web/tests/ui/managed-wallet-onboarding.spec.ts
- apps/deploy-web/tests/ui/onboarding-picker-unlock-trial.spec.ts
- apps/api/src/bid-screening/routes/bid-screening.router.ts
- apps/deploy-web/src/types/feature-flags.ts
- apps/deploy-web/tests/ui/onboarding-journey.spec.ts
- apps/deploy-web/tests/ui/deploy-linux.spec.ts
- apps/deploy-web/tests/ui/pages/PlainLinuxPage.tsx
- apps/deploy-web/tests/ui/managed-wallet-deployment.spec.ts
- apps/api/src/billing/http-schemas/wallet.schema.ts
- apps/deploy-web/tests/ui/actions/feature-flags.ts
- apps/deploy-web/tests/ui/deploy-from-a-template.spec.ts
- apps/api/src/billing/services/stripe/stripe.service.spec.ts
- apps/deploy-web/tests/ui/managed-wallet-alerts.spec.ts
- apps/api/src/billing/controllers/wallet/wallet.controller.spec.ts
- apps/deploy-web/tests/ui/configure-deployment-flow.spec.ts
- apps/api/src/billing/services/first-purchase-bonus/first-purchase-bonus.service.ts
🚧 Files skipped from review as they are similar to previous changes (35)
- apps/deploy-web/src/components/new-deployment/RedirectDeployLinuxToConfigure/RedirectDeployLinuxToConfigure.spec.tsx
- apps/deploy-web/src/hooks/useNewDeploymentUrl/useNewDeploymentUrl.spec.ts
- apps/deploy-web/src/pages/onboarding/index.tsx
- apps/deploy-web/src/components/new-deployment/RedirectMappableBuilderToConfigure/RedirectMappableBuilderToConfigure.tsx
- apps/deploy-web/src/hooks/useOnboardingChrome.ts
- apps/api/src/billing/http-schemas/stripe.schema.ts
- apps/deploy-web/src/components/billing-usage/FirstPurchaseBonusAlert/FirstPurchaseBonusAlert.spec.tsx
- apps/deploy-web/src/components/new-deployment/RedirectDeployLinuxToConfigure/RedirectDeployLinuxToConfigure.tsx
- apps/deploy-web/src/pages/login/index.tsx
- apps/deploy-web/src/pages/new-deployment/configure/[[...dseq]].tsx
- apps/deploy-web/src/pages/deploy-linux/index.tsx
- apps/deploy-web/tests/ui/actions/auth.ts
- apps/deploy-web/src/components/auth/PasswordlessAuth/PasswordlessAuth.tsx
- apps/deploy-web/src/components/auth/PasswordlessAuth/PasswordlessAuth.spec.tsx
- apps/api/src/billing/services/first-purchase-bonus-offer/first-purchase-bonus-offer.service.ts
- apps/api/src/core/services/feature-flags/feature-flags.ts
- apps/api/src/billing/services/first-purchase-bonus-offer/first-purchase-bonus-offer.service.spec.ts
- apps/deploy-web/src/components/auth/AuthPage/AuthPage.tsx
- apps/api/src/billing/services/wallet-initializer/wallet-initializer.service.spec.ts
- apps/deploy-web/src/components/onboarding-picker/OnboardingPickerPage.tsx
- apps/deploy-web/src/hooks/useNewDeploymentUrl/useNewDeploymentUrl.ts
- apps/deploy-web/src/components/auth/PasswordAuth/PasswordAuth.spec.tsx
- apps/api/src/billing/services/first-purchase-bonus/first-purchase-bonus.service.spec.ts
- apps/deploy-web/src/components/new-deployment/TemplateList.tsx
- apps/deploy-web/src/components/onboarding-picker/OnboardingPickerPage.spec.tsx
- apps/deploy-web/src/components/auth/AuthPage/AuthPage.spec.tsx
- apps/deploy-web/src/components/auth/PasswordAuth/PasswordAuth.tsx
- apps/deploy-web/src/components/onboarding/RequireOnboarding/RequireOnboarding.tsx
- apps/api/src/billing/routes/start-trial/start-trial.router.ts
- apps/deploy-web/tests/ui/onboarding-gate.spec.ts
- apps/deploy-web/src/hooks/useOnboardingChrome.spec.ts
- apps/api/src/billing/services/wallet-initializer/wallet-initializer.service.ts
- apps/api/src/billing/services/stripe/stripe.service.ts
- apps/deploy-web/src/components/new-deployment/TemplateList.spec.tsx
- apps/deploy-web/src/components/onboarding/RequireOnboarding/RequireOnboarding.spec.tsx
a57cf22 to
93319e5
Compare
Retire the onboarding v1 redesign feature flags now that the redesign is released, making each gated behavior the default and removing the old fallback paths: - onboarding_redesign_v1 - console_embedded_login - console_auth_passwordless - console_auth_password_escape_hatch - first_purchase_bonus Covers deploy-web (flag checks, dead branches, SSR guards) and apps/api (flag constants, backend gates). Removing the trial-start branch also retires the now-dead trial-start 3DS path (validatePaymentMethodForTrial, the /v1/start-trial 202 response and its schema); AddCreditsForm 3DS on real purchases is unchanged. Fixes CON-655
e528a86 to
1cbca03
Compare
Why
The onboarding v1 redesign shipped behind Unleash feature flags. Now that it's released in prod those flags are always-on and the flag branches are dead code. Removing them keeps the auth, deployment-creation, onboarding, and first-purchase flows free of stale conditionals and lets the switches be retired in Unleash.
Fixes CON-655
What
Removes the five onboarding v1 flags and the code branches gated behind them, so each gated behavior becomes the default (no old fallback path left behind):
onboarding_redesign_v1console_embedded_loginconsole_auth_passwordlessconsole_auth_password_escape_hatchfirst_purchase_bonusdeploy-web
/loginalways renders the embeddedAuthPage; passwordless is the default auth,?auth=passwordescape hatch is permanent; deadgetAuthRedirectDestinationremoved.$1 creditauth subtext, and stripped onboarding chrome are now unconditional; deadWalletBasedGateand the two SSR flag guards removed./deploy-linuxunconditionally redirects to/new-deployment/configure?vm=true(unchanged behavior vs prod today).apps/api
ONBOARDING_REDESIGN_V1andFIRST_PURCHASE_BONUSflag constants and their backend gates (bid-screening, wallet-initializer trial start, first-purchase bonus + offer services).#validatePaymentMethod,StripeService.validatePaymentMethodForTrial,Requires3DSResult, and the/v1/start-trial202response + schema. 3DS on real credit purchases (AddCreditsForm) is untouched.Tests
Notes
Deferred (separate follow-ups, not in scope here)
/signuplegacy onboarding 3DS consumers (PaymentMethodContainer/PaymentMethodStep,useCreateManagedWalletMutation) are reachable and not flag-gated; their 3DS branches are now dead-but-harmless.StripeService.createTestChargeis now production-unused (separable cleanup).deploy-linuxadaptation to the new flow — tracked in the Console Redesign v2 project.Summary by CodeRabbit
?auth=password(passwordless remains the default).