Keep the onboarding stepper on screen between setup steps

Merged
AR
9d ago
+112-51

Problem

During guided setup the stepper card disappeared and came back several times.

After Create workspace, the screen went: stepper → "Choose a workspace" card (the new workspace joined the list) → "Loading Superlog…" → a full page reload → "Loading Superlog…" → stepper. Any page load on a step, such as the return from plan checkout or the Datadog connection, also showed the plain "Loading Superlog…" card before the stepper.

Change

  • AuthGate keeps WorkspaceSetup mounted while it creates a workspace. Setup then navigates in place to the next page (/onboarding/code, /agents/new, or the template being set up) instead of calling window.location.replace.
  • WorkspaceSetup stays in guided mode once shown, so the list refetch after creation does not switch it to the workspace chooser.
  • New OnboardingLoading card (the setup frame with the stepper and "Loading…"). It is used for the session and capabilities loading states on /onboarding URLs, and for the onboarding page's own loading state.
  • onboardingStepAtPath reads the step from a setup URL, with tests.
  • The loading card uses each step's layout (onboardingStepStages). The Usage and Go live steps are full width, so the card no longer changes shape when they appear.

Verification

Recorded DOM transitions with Playwright against the local stack (sign up → create workspace → steps → reload):

Before:

/app             stepper=true  Name your workspace
/app             stepper=false Choose a workspace
/app             stepper=false Loading Superlog…
/onboarding/code stepper=false (reload)
/onboarding/code stepper=false Loading Superlog…
/onboarding/code stepper=true  Loading…
/onboarding/code stepper=true  Connect your code

After:

/app             stepper=true  Name your workspace
/onboarding/code stepper=true  Loading…
/onboarding/code stepper=true  Connect your code

A reload on /onboarding/usage now goes from a blank document straight to the stepper loading card.

  • pnpm typecheck, eslint on changed files, and the auth-gate and onboarding-presentation unit tests pass.
  • e2e/workspace-onboarding.spec.ts: 5 passed, including both workspace-creation tests. keeps an invitation link open while the recipient signs in fails because it looks for a "New to Responder? Create an account" button that is not in main's source. That failure is unrelated to this change.

Summary by cubic

Keeps the guided setup stepper on screen between steps. Creating a workspace no longer drops into the workspace chooser and a plain "Loading Superlog…" card before reloading; the auth gate keeps setup mounted and navigates in place to the next step.

  • Loading states on /onboarding URLs use the stepper card with "Loading…" instead of the plain loading card.
  • The loading card adopts each step's layout so its shape stays consistent when Usage and Go live steps appear.