From a6fb90291db437c1c170fda590ffbb62863ef975 Mon Sep 17 00:00:00 2001 From: chengyongru <2755839590@qq.com> Date: Tue, 17 Mar 2026 22:55:08 +0800 Subject: [PATCH] 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. --- nanobot/cli/commands.py | 5 ++--- nanobot/cli/onboard_wizard.py | 19 +++++++++++++------ 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/nanobot/cli/commands.py b/nanobot/cli/commands.py index 7e23bb1..dfb4a25 100644 --- a/nanobot/cli/commands.py +++ b/nanobot/cli/commands.py @@ -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: diff --git a/nanobot/cli/onboard_wizard.py b/nanobot/cli/onboard_wizard.py index 3d68098..a4c06f3 100644 --- a/nanobot/cli/onboard_wizard.py +++ b/nanobot/cli/onboard_wizard.py @@ -938,14 +938,21 @@ 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. - if config_path.exists(): - config = load_config() + 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 = Config() + config_path = get_config_path() + if config_path.exists(): + config = load_config() + else: + config = Config() while True: try: