Metadata
| Status | done |
|---|---|
| Assigned | agent-807 |
| Agent identity | f51439356729d112a6c404803d88015d5b44832c6c584c62b96732b63c2b0c7e |
| Created | 2026-04-27T17:38:13.231190668+00:00 |
| Started | 2026-04-27T18:39:52.681107326+00:00 |
| Completed | 2026-04-27T18:40:40.252801382+00:00 |
| Tags | eval-scheduled |
| Tokens | 4627924 in / 25847 out |
Description
Description
User noticed today (2026-04-27) that ~/.wg/config.toml (global) and project-local .wg/config.toml have:
- Different model defaults (global =
openrouter:anthropic/claude-sonnet-4, local =claude:opus) — global is stale - Same agent.executor / dispatcher.executor deprecated keys (now removed manually in this repo, but other repos still have them)
- Same dozens of keys repeated in both files even when defaults are fine
User question: 'what's the ideal config file and do we get it configurated easily?'
Required artifacts
Produce a markdown document docs/config-canonical.md that includes:
-
Full key inventory — list every key in [agent], [dispatcher], [agency], [tui], [chat], [models.], [tiers], [llm_endpoints], [native_executor.], etc., with for each:
- What it does (one-line)
- Source of truth: code path that reads it
- Current default
- Should-it-be-global, project-local-override, both, or neither
- Deprecation status (deprecated / current / soon-to-deprecate)
-
Layered-config story — the canonical resolution order (e.g. CLI flag → env var → project config → global config → built-in default) — and which keys legitimately differ per-project vs which should be global-only.
-
Stale value audit — find every default that references a deprecated/old model (
claude-sonnet-4vs currentclaude:opus/claude:sonnet-4-6), executor name, endpoint, etc. List what should be replaced. -
Minimal global config — propose what
~/.wg/config.tomlshould look like for a typical user starting fresh today. Should be SHORT — most things should fall through to built-in defaults rather than be respecified in the user's file. -
Minimal project config — propose what
./.wg/config.tomlshould look like — only override what the project genuinely needs to differ.
Files to read
- src/config/ — config schema and resolution code
- src/cli.rs — CLI flag → config wiring
- ~/.wg/config.toml + /home/erik/workgraph/.wg/config.toml — current real-world examples
- .workgraph/config.toml in this repo (hardlinked to .wg/config.toml — see ls -la)
Validation
- Document exists at docs/config-canonical.md and covers every config section
- Each key has source-of-truth code reference (file:line)
- Stale defaults flagged with replacement
- Minimal global + project config snippets included as concrete examples
- No proposals to break backward compatibility without an explicit migration plan
- Reviewer can read the doc and say 'I know exactly what to put in my global config now'
Depends on
Required by
- (none)
Log
- 2026-04-27T17:38:13.198555737+00:00 Task paused
- 2026-04-27T17:38:54.607816603+00:00 Task published
- 2026-04-27T17:40:01.354956117+00:00 Spawned by coordinator --executor claude --model opus
- 2026-04-27T17:40:11.060050749+00:00 Starting audit — exploring config schema, code, and current real-world examples
- 2026-04-27T17:42:51.280152524+00:00 Read src/config.rs (7992 lines) + src/config_defaults.rs. Key findings: (1) Config::global_dir() reads ~/.workgraph/config.toml but main.rs resolve_workgraph_dir() prefers ~/.wg/ — user has them hardlinked. (2) Local has chat_agent/max_chats but code uses coordinator_agent/max_coordinators with no aliases (silently dropped). (3) [coordinator] -> [dispatcher] alias is wired (LEGACY_SECTION_ALIASES). (4) executor= is deprecated, derived from model spec prefix.
- 2026-04-27T17:47:06.316047808+00:00 Wrote docs/config-canonical.md (~570 lines): full key inventory with src/config.rs line refs, layered-config resolution, stale-value audit (chat_agent/max_chats silently dropped, models.default openrouter:claude-sonnet-4 stale), minimal global+project snippets, no-break migration plan.
- 2026-04-27T17:47:23.207904706+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:39:52.681111033+00:00 Spawned by coordinator --executor claude --model opus
- 2026-04-27T18:40:07.687268628+00:00 Resuming task — synthesizing config audit document
- 2026-04-27T18:40:32.795451097+00:00 Validated: doc exists at docs/config-canonical.md (547 lines), source-of-truth refs spot-checked accurate (coordinator_agent:2825, max_coordinators:2860, global_dir:3669). All 6 validation checklist items met: (1) covers every config section, (2) source refs included, (3) stale defaults flagged with replacements, (4) minimal global+project snippets included, (5) migration plan in section 6 preserves backward compat, (6) doc is actionable.
- 2026-04-27T18:40:40.252813204+00:00 Task marked as done