Skip to content

Wizard: collapse memory and cost-report steps into one plugin-selection step #40

Description

@verkligheten

Parent Epic

Part of #32 — Plugin system: toggleable internal subsystems

Blocked by #39 (memory must be a plugin before its wizard step folds in). Depends on #37 (cost-report) being a plugin too.

Task

Collapse the two hardcoded per-feature wizard steps — memory (step 7) and cost-report (step 8) — into a single plugin-selection step driven by the registry. New subsystems then cost zero hardcoded wizard steps.

Location

  • agent_notes/commands/wizard/orchestrator.py:53,84-88,116,135TOTAL_STEPS, the two _select_* calls, the execute payload
  • agent_notes/commands/wizard/NEW _select_plugins step; retire cost_report.py's _select_cost_report and fold memory-backend selection appropriately
  • agent_notes/commands/wizard/execute.py:152,277-281 — replace the cost_report_enabled param with resolved enabled_plugins
  • tests/unit/commands/test_wizard*.py — update step count and assertions

Changes

  • TOTAL_STEPS drops from 9 to 8.
  • The new step presents a checklist of plugins with their default pre-selected and description shown: memory, cost-report, cred-guard, plus any future plugin — all sourced from plugin_registry.all(), nothing hardcoded.
  • Memory keeps its backend sub-question. Selecting the memory plugin still needs obsidian-vs-local and, for obsidian, a path. Two clean options — pick one and document it:
    • (a) plugin checklist first, then a conditional memory-backend follow-up when memory is selected;
    • (b) memory stays a richer step, other plugins are simple toggles beneath it.
      Recommendation: (a) — it generalizes, and the follow-up pattern is reusable for any future plugin that needs sub-configuration.
  • execute.py receives enabled_plugins: dict and memory_backend/memory_path, drops the standalone cost_report_enabled param.

Verification

uv run pytest tests/unit/commands/test_wizard_role_model_default.py tests/unit/commands/ -k wizard -v
uv run pytest tests/ -v

Manual: run the wizard, confirm 8 steps, the plugin checklist reflects registry defaults, and selecting memory prompts for backend + path.

Dist: byte-identical for equivalent selections. The wizard writes config; a run that reproduces today's default choices must produce today's dist.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions