feat: interactive onboarding wizard for first-time setup#192
Merged
nextlevelshit merged 7 commits intomainfrom Feb 28, 2026
Merged
feat: interactive onboarding wizard for first-time setup#192nextlevelshit merged 7 commits intomainfrom
nextlevelshit merged 7 commits intomainfrom
Conversation
Specification covering accurate per-step token counts, total tokens in run list, real-time SSE updates, and TUI/WebUI consistency.
- Add formatTokens template function and JS equivalent with k/M/B thresholds mirroring FormatTokenCount in Go - Show total tokens in run list rows and run detail summary header - Display per-step token counts for running/completed/failed steps - Update SSE handler to push real-time token count updates to step cards - Extend FormatTokenCount to handle M and B thresholds with tests - Always show token count in CLI pipeline completion summary Closes #98
…etup Add an interactive onboarding wizard to `wave init` that guides users through 5 setup steps: dependency verification, test command configuration, pipeline selection, adapter configuration, and model selection. Pipeline execution is gated on onboarding completion. New package `internal/onboarding` with: - State persistence via .wave/.onboarded JSON marker file - WizardStep interface with 5 implementations (DependencyStep, TestConfigStep, PipelineSelectionStep, AdapterConfigStep, ModelSelectionStep) - RunWizard orchestrator supporting interactive and non-interactive modes - Reconfigure mode (--reconfigure) that pre-fills from existing manifest Command integration: - `wave run` and `wave do` gated on onboarding completion - Existing projects grandfathered (wave.yaml present = skip gate) - `--force` flag bypasses the onboarding gate on `wave run` - `--yes` flag runs wizard non-interactively with defaults - Pipeline metadata Category field for grouped selection Comprehensive test coverage: 24 unit tests for onboarding package, all existing tests continue to pass with race detector.
6186197 to
17c65c6
Compare
… in manifest buildManifest() was missing the personas section entirely, causing executor to fail finding personas. Model was also written at the adapter level instead of persona level where the executor reads it. Rewrite buildManifest() to iterate PersonaConfigs and emit a proper personas block with model at the persona level. Add PersonaConfigs field to WizardConfig struct.
Pass PersonaConfigs from init assets into WizardConfig in both runWizardInit() and runReconfigure(). Add removeDeselectedPipelines() to prune .wave/pipelines/ files the user deselected in the wizard.
…model Add ollama to knownAdapters with llama3.1, codellama, deepseek-coder models. Add "Other (type manually)" option for both adapter and model selection. Unknown adapters now prompt for free-text model name instead of skipping the step entirely.
Add ollama install instructions to quickstart. Replace incorrect model-at-adapter-level example with persona-level model config. Add model field to persona fields table in manifest reference.
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.
Summary
wave init --reconfigureto re-run the wizard when configuration changes are neededCloses #163
Changes
cmd/wave/commands/init.go— Extended theinitcommand with the interactive onboarding wizard flow, replacing the previous heuristic-only approachcmd/wave/commands/do.go/cmd/wave/commands/run.go— Added onboarding completion gate checks before pipeline executioncmd/wave/commands/helpers.go— Added shared helper for onboarding state checksinternal/onboarding/onboarding.go— Core wizard orchestrator that drives the step-by-step onboarding flowinternal/onboarding/steps.go— Implementation of all 5 onboarding steps with heuristic defaults and interactive confirmationinternal/onboarding/state.go— Onboarding state persistence (load/save/check completion)internal/onboarding/onboarding_test.go/state_test.go/steps_test.go— Comprehensive test coverage for the onboarding packageinternal/pipeline/types.go— AddedReleasefield to pipeline metadata for experimental classificationinternal/tui/pipelines.go— Added display support for experimental pipeline markersspecs/163-onboarding-wizard/— Specification, plan, and task artifactsTest Plan
onboarding_test.go,state_test.go,steps_test.go)wave inittriggers interactive wizard,wave do/wave runblocked without completed onboarding