Sign-up and welcome cleanup

Task 8560 · Done · Coder · created · updated

Quality goals for the sign-up → welcome flow (was #8533, #8501, #8473, #8502, #8480). Skip anything already fixed. Pages (/login, /signup/*, /welcome), 375 px and 1280 px, light and dark: 1. Pre-auth pages follow `prefers-color-scheme` (`lib/colorScheme.ts::colorSchemeFor(null)` is always light). 2. Placeholders never read as prefilled values (Occupation "Software engineer"). 3. One column width on the sign-up card (provider buttons cap at 400 px, fields span 472 px). 4. Plan cards: no repeated "Free" (name = price); the "Plan" legend is screen-reader only. 5. Profile: Country preselected from `navigator.language`; "Use a different account" after a provider sign-up (clears the signup cookie); Organization card copy fits one line at 375 px. 6. Payment: a Payment Element-sized skeleton while Stripe loads. 7. Welcome: show the `?git_connect=error` return error even with no GitHub app; step count matches the rail (Done marker); `lib/onboarding.ts` Connect GitHub uses `return_to`. API (`apps/api/app/signup_draft.py`): 8. `submit` passes the skipped domain-join org to `record_submission` (`domain_join_skipped_org_id`, R-X4); restore `test_no_skipped_join_is_recorded_without_a_registered_domain` plus the positive case. Delete `signup_plans.offered_key` or say why it stays. 9. `purge_drafts` deletes the Stripe Customer after detaching cards (new `customers_delete` gateway method, fake included) and writes one operator-plane activity row per purged draft (org id, no email). 10. Sign up on a free plan detaches a card saved earlier on a paid plan. Out of scope: signup routes' contract (pinned for C3), prices, trial length, approval billing, the change-plan wizard. Done means: - Each item fixed or rejected with a one-line reason in the PR. - Tests: vitest for 1, 4, 5 (different account), 7; API tests for 8, 9, 10. - Screenshots of the changed pages at 375 px and 1280 px, light and dark.

Outcome

Fixed 1 (system colour scheme), 2 (placeholders), 3 (one 400px column), 7 (welcome error/Done flag/return_to); 4-6, 8-10 already shipped (Task 8521), verified. Quick gate + 10.5k vitest green; visual check done 375/1280 light/dark. PR #6491 queued. Follow-up draft 8594.

Pull request

Artifacts

Activity

  • Created
  • Run
  • Runner started
  • Runner ended (done)