feat(onboarding): add Service + UI interfaces and BaselineService (PRE-2) - #1573
Merged
Conversation
…E-2) Skeleton for ADR-016 D2 onboarding-as-session: a Domain Service that both the CLI driver (cmd/wave/commands/init.go) and the upcoming webui driver (internal/webui/handlers_onboard.go, Phase 1) consume so the onboarding logic — flavour detection, manifest scaffolding, sentinel write — lives in one place. Added: - Service interface: IsOnboarded, StartSession, Resume, Status, MarkDone - UI interface: PromptString, PromptChoice, Notify (per-driver impl) - StartOptions, Question, Event, Session, Status, SessionStatus types - BaselineService: non-interactive impl that wraps the existing Greenfield path. Reuses flavour.go + metadata.go. Used by `wave init --yes`. - NoopUI: discards prompts (returns defaults), surfaces Notify to stderr. - IsOnboardedAt + MarkDoneAt + ClearSentinel: package-level helpers that read/write `.agents/.onboarding-done` so the webui boot path can branch without instantiating a Service. Defers RunWizard removal and CLI driver migration to Phase 1 children (1.3 and 1.4) so this PR stays purely additive — `wave init` and `wave init --yes` continue producing the same output. Closes #1569.
45 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #1569. Phase 0 child of Epic #1565.
What
Skeleton for ADR-016 D2 onboarding-as-session. Adds the Domain `Service` interface that both drivers (CLI in 1.3, webui in 1.2) will consume.
Why this is additive (no RunWizard delete)
Plan §3 lists "delete RunWizard" but `wave init --yes` already takes the non-interactive Greenfield path; the wizard only fires for interactive sessions. Removing it now would break `wave init` until child issue 1.3 (CLI driver migration) lands. This PR is purely additive — no behavior change for current users.
Acceptance vs #1569
Diff
3 new files, 486 LOC. Zero modified files. Tests cover sentinel idempotency, status/resume of unknown sessions, NoopUI defaults.