Skip to content

Decompose onboarding into phase composition #7695

Closed as not planned
4 of 4 issues completed
Closed as not planned

Description

@cv

Important

Reserved for @cv. Do not self-assign this issue. Do not open an implementation PR unless @cv requests help.

Parent: #7691

Problem

src/lib/onboard.ts imports more than 200 runtime modules. It contains dependency wiring and product behavior.

Scope

  • Define explicit onboarding phases.
  • Move phase behavior into feature-owned application modules.
  • Keep the onboarding entry module responsible for sequencing and dependency wiring.
  • Reduce the onboarding fan-out and root-file budgets in each PR.

Remaining sequence

  1. Extract messaging application ownership (Extract onboarding messaging application ownership #9170). Work is in progress.
  2. Extract gateway lifecycle ownership (Extract onboarding gateway lifecycle application #9171). Work is in progress.
  3. Extract provider selection and review ownership (Extract onboarding provider selection and review application #9169). This work is queued after the current gateway PR. PR feat(onboard): make configuration review editable #9037 resolved the prior dependency.
  4. Enforce the zero-decision entry boundary (Enforce the onboarding entry composition boundary #9172). This work waits for Extract onboarding provider selection and review application #9169.

Acceptance criteria

  • Each phase has a named input and result contract.
  • The entry module contains no provider, gateway, messaging, or policy decision.
  • Resume and failure behavior remain unchanged.
  • Onboarding tests pass after each phase move.

Activity

  1. self-assigned this
    on Jul 28, 2026
  2. added
    area: architectureArchitecture, design debt, major refactors, or maintainability
    area: onboardingOnboarding FSM, provider setup, sandbox launch, or first-run flow
    on Jul 28, 2026
  3. added theissue type on Jul 28, 2026
  4. cv commented on Oct 18, 2026

    @cv
    CollaboratorAuthor

    Closing as not planned. This issue concerns the TypeScript product on main, and work has moved to v1, a separate implementation. Reopen it if this still applies to main.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

area: architectureArchitecture, design debt, major refactors, or maintainabilityarea: onboardingOnboarding FSM, provider setup, sandbox launch, or first-run flow

Type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions