Skip to content

fix(signup): register-only chooser (SIGNUP-CHOOSER-02) - #178

Merged
lukedanielchapman merged 1 commit into
mainfrom
fix/signup-chooser-02
Aug 2, 2026
Merged

fix(signup): register-only chooser (SIGNUP-CHOOSER-02)#178
lukedanielchapman merged 1 commit into
mainfrom
fix/signup-chooser-02

Conversation

@lukedanielchapman

Copy link
Copy Markdown
Contributor

Summary

  • Login never shows the register Continue-as / Already started interstitial — credentials only
  • Create account alone shows register-only actions: Log in with session / Continue registration / Remove / Create new
  • Conflict (session X ≠ pending Y): separate buttons, not a merged Continue-as primary
  • GATE-01 provisionable path unchanged; billing/resume bypasses preserved

Test plan

  • cd apps/shell && npx vitest run src/auth (56 passed)
  • Live: ?auth=login with session → credentials, not Already started?
  • Live: ?auth=register with session/pending → interstitial with distinct X/Y actions when conflict

SIGNUP-CHOOSER-02: Login opens credentials only. Create account alone offers
Log in with session / Continue registration / Remove / Create new, with
separate X vs Y actions on conflict.
@vercel

vercel Bot commented Aug 2, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
atom-registry Ready Ready Preview Aug 2, 2026 6:51pm

Request Review

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR refactors the auth “account chooser” interstitial into a register-only flow (SIGNUP-CHOOSER-02), ensuring login mode never shows the “Already started?” interstitial and that session-vs-pending conflicts present distinct actions instead of a merged “Continue as”.

Changes:

  • Reworks AuthWizard chooser state + rendering to be register-only, with cancellation guards to avoid stale async updates painting after mode switches.
  • Replaces generic chooser logic with register-specific helpers (shouldShowRegisterChooser, registerChooserActions, registerChooserBody, etc.) and updates action handling accordingly.
  • Updates unit tests to match the new chooser behavior and action set.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.

File Description
apps/shell/src/auth/AuthWizard.tsx Converts chooser to a register-only interstitial with new state, rendering gates, and updated action handling.
apps/shell/src/auth/accountChooser.ts Introduces register-only chooser decision logic, action construction, and body/label helpers.
apps/shell/src/auth/accountChooser.test.ts Updates tests to validate the new register-only chooser behavior and copy/labels.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +123 to +133
if (opts.pendingKind === "register" || opts.pendingKind === "login") {
if (pendingEmail || opts.pendingKind) {
actions.push({
id: "remove_registration",
label: pendingEmail
? `Remove this registration`
: "Remove this registration",
email: pendingEmail ?? undefined,
});
}
}
@lukedanielchapman
lukedanielchapman merged commit 6bbed9b into main Aug 2, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants