Metadata
| Status | done |
|---|---|
| Assigned | agent-1018 |
| Agent identity | 3184716484e6f0ea08bb13539daf07686ee79d440505f1fdf2de0357707034c3 |
| Model | claude:sonnet |
| Created | 2026-04-28T23:07:55.295959193+00:00 |
| Started | 2026-04-28T23:22:28.795736654+00:00 |
| Completed | 2026-04-28T23:50:01.673781299+00:00 |
| Tags | priority-high,fix,profiles,config, eval-scheduled |
| Eval score | 0.88 |
| └ blocking impact | 0.92 |
| └ completeness | 0.88 |
| └ coordination overhead | 0.93 |
| └ correctness | 0.92 |
| └ downstream usability | 0.87 |
| └ efficiency | 0.82 |
| └ intent fidelity | 0.87 |
| └ style adherence | 0.89 |
Description
Description
Implement the profile system designed in design-named-profiles. Read that task's log for the chosen storage format, command surface, and hot-reload semantics.
Goal: wg profile use codex switches all model/endpoint config in one command. Three starter profiles ship out of the box: claude, codex, wgnext.
Scope
- Profile storage + active-pointer (per design)
- Command surface: list, show, create, use, edit, delete, diff (per design)
- Three starter profiles created by
wg setuporwg profile init-starters:claude: claude:opus / claude:haiku per-rolecodex: codex:gpt-5.5 / codex:gpt-5.4-mini per-role (verified strings from research-current-openai)wgnext:local:<TBD>worker withendpoint = http://127.0.0.1:8088placeholder; user sets the actual model+port viawg profile edit wgnext
- Hot-reload:
wg profile use <name>sends the same IPC aswg config -mdoes today, so running daemon picks up changes without restart - Coexist with existing config: if there's no active profile, behave exactly as today (read
~/.wg/config.tomlas the implicit default profile)
Validation
- Failing tests written first
-
wg profile listshows the 3 starters afterwg profile init-starters -
wg profile use codexflips active profile and triggers IPC reload (verify daemon log shows reconfigure) -
After
wg profile use codex,wg config show --mergedreflects codex models - Worker spawned AFTER profile switch uses codex; in-flight workers continue on their original config
-
wg profile use wgnextthenwg profile edit wgnextto change endpoint — daemon picks up the new endpoint on next worker spawn - cargo build + cargo test pass with no regressions
- Permanent smoke scenario added with this task id in owners — exercises create / use / show / hot-reload
- cargo install --path . was run before claiming done
Depends on
Required by
- (none)
Log
- 2026-04-28T23:07:55.247914266+00:00 Task paused
- 2026-04-28T23:08:34.304231691+00:00 Task published
- 2026-04-28T23:22:28.795745100+00:00 Spawned by coordinator --executor claude --model sonnet
- 2026-04-28T23:22:46.120038961+00:00 Starting implementation: reading design doc and existing codebase
- 2026-04-28T23:26:10.918378173+00:00 Read design doc and codebase. Starting implementation: module restructure (profile.rs → profile/), named.rs, overlay integration, CLI extensions, IPC extension
- 2026-04-28T23:46:35.156754915+00:00 All 4 smoke scenarios pass manually. Running wg done --full-smoke to verify gate
- 2026-04-28T23:47:43.979350310+00:00 Committed: e61f15f4a — pushed to remote
- 2026-04-28T23:48:14.344412113+00:00 Validated: all criteria met — profile list/use/create/diff/allowlist working, wg config --merged reflects profile models, smoke scenarios pass, cargo install done
- 2026-04-28T23:49:54.944641329+00:00 Committed: 9a529ed2a — merge conflict in manifest.toml resolved, pushed to remote
- 2026-04-28T23:50:01.673786660+00:00 Task pending eval (agent reported done; awaiting `.evaluate-*` to score)
- 2026-04-28T23:51:34.382100387+00:00 PendingEval → Done (evaluator passed; downstream unblocks)