feat(onboard): pass CLI args as initial config to interactive wizard

--workspace and --config now work as initial defaults in interactive mode:
- The wizard starts with these values pre-filled
- Users can view and modify them in the wizard
- Final saved config reflects user's choices

This makes the CLI args more useful for interactive sessions while
still allowing full customization through the wizard.
This commit is contained in:
chengyongru
2026-03-17 22:55:08 +08:00
committed by Xubin Ren
parent 67528deb4c
commit a6fb90291d
2 changed files with 15 additions and 9 deletions

View File

@@ -308,9 +308,8 @@ def onboard(
from nanobot.cli.onboard_wizard import run_onboard
try:
config = run_onboard()
# Re-apply workspace override after wizard
config = _apply_workspace_override(config)
# Pass the config with workspace override applied as initial config
config = run_onboard(initial_config=config)
save_config(config, config_path)
console.print(f"[green]✓[/green] Config saved at {config_path}")
except Exception as e:

View File

@@ -938,10 +938,17 @@ def _show_summary(config: Config) -> None:
# --- Main Entry Point ---
def run_onboard() -> Config:
"""Run the interactive onboarding questionnaire."""
config_path = get_config_path()
def run_onboard(initial_config: Config | None = None) -> Config:
"""Run the interactive onboarding questionnaire.
Args:
initial_config: Optional pre-loaded config to use as starting point.
If None, loads from config file or creates new default.
"""
if initial_config is not None:
config = initial_config
else:
config_path = get_config_path()
if config_path.exists():
config = load_config()
else: