Metadata
| Status | done |
|---|---|
| Assigned | agent-822 |
| Agent identity | f51439356729d112a6c404803d88015d5b44832c6c584c62b96732b63c2b0c7e |
| Created | 2026-04-27T17:38:47.858020631+00:00 |
| Started | 2026-04-27T18:47:06.964132416+00:00 |
| Completed | 2026-04-27T19:34:23.099043654+00:00 |
| Tags | eval-scheduled |
| Tokens | 0 in / 0 out |
Description
Description
Implement the canonical-config UX designed in design-canonical-wg. Specifically:
-
Bake canonical defaults into the binary — so a user with no
~/.wg/config.tomlgets a working setup. Update src/config/ default constructors with the values the design picked (no moreopenrouter:anthropic/claude-sonnet-4ghosts). -
Ship
wg config init [--global|--local]— writes the minimal-form config files from the design. -
Improve
wg setup— implement the interactive wizard changes from the design (or note if no changes are needed). -
Migration command — implement the chosen migration path (probably
wg migrate configper design). It should:- Detect deprecated keys (
agent.executor,dispatcher.executor,coordinator.*instead ofdispatcher.*, etc.) - Detect stale model strings (anything matching old model patterns)
- Detect duplicated defaults (key set in user config but matching the built-in default — can be removed)
- Print a diff of what will change, prompt for confirmation, write the new file (back up old as
.bak)
- Detect deprecated keys (
-
Update docs — README / setup guide / quickstart mentions of config to reference the new commands.
Files to touch
- src/config/ — defaults, schema, validation
- src/commands/setup.rs — interactive wizard
- src/commands/config/ (or wherever
wg configlives) — addinitsubcommand - src/commands/migrate/ — add
configsubcommand (or extend existing) - docs/quickstart.md / README.md — mention new commands
- CLAUDE.md — update template if any
wg addexamples reference config
Validation
-
Failing tests first (TDD):
- test_defaults_no_user_config — boot wg with no
~/.wg/config.toml→ assert claude executor + opus model active - test_config_init_global_writes_minimal —
wg config init --globalwrites the expected file with only the keys the design picked as 'always-set' - test_migrate_strips_deprecated — fixture config with
agent.executor = "claude"→wg migrate configproduces a clean output without that key - test_migrate_stale_model — fixture config with
model = "openrouter:anthropic/claude-sonnet-4"→ migrate produces current model
- test_defaults_no_user_config — boot wg with no
- cargo build + cargo test pass with no regressions
-
Manual smoke: rm
~/.wg/config.toml, runwg quickstart→ no errors, sensible behavior;wg config init --globalrecreates it cleanly -
Manual smoke:
wg migrate configon a fixture with the historical keys (agent.executor,coordinator.*, old model) → produces canonical form - No deprecation warnings on a fresh-install + freshly-init'd config
Depends on
Required by
- (none)
Log
- 2026-04-27T17:38:47.827901016+00:00 Task paused
- 2026-04-27T17:38:54.607814218+00:00 Task published
- 2026-04-27T17:52:34.807803096+00:00 Spawned by coordinator --executor claude --model opus
- 2026-04-27T17:52:37.671697258+00:00 Task marked as failed: Agent exited with code 1
- 2026-04-27T18:39:11.139741402+00:00 Reset by `wg recover` — reason: openrouter outage cleanup; everything moved to claude:opus
- 2026-04-27T18:47:06.964139670+00:00 Spawned by coordinator --executor claude --model opus
- 2026-04-27T18:47:20.303300095+00:00 Resuming task — clean working tree, checking design doc
- 2026-04-27T19:33:14.083486466+00:00 All validation criteria met: 8/8 integration tests + 6/6 unit tests pass; manual smoke confirms wg config init / wg migrate config / quickstart-with-no-global all work as designed. Committing.
- 2026-04-27T19:33:48.659263499+00:00 Committed: 78a973d65 — pushed to remote
- 2026-04-27T19:34:23.099060766+00:00 Task marked as done