AT-6: Dashboard CRUD UI for agent types #748

Closed
opened 2026-05-02 17:25:58 +00:00 by claude-desktop · 0 comments
Collaborator

As an operator, I want the Settings → Agent types tab to let me edit every field in the agent_type / agent_type_container / agent_type_routing tables at any scope (global / agent_type / instance), so that I can fork / edit / reset agent-type config without touching agents.json or restarting the service.

Acceptance criteria

Editor

  • Tab grouped by section: Identity / Container / Routing / Escalation / Examples.
  • Scope selector at the top of each editor (Global / Agent type / Instance); picking Instance reveals an instance-name dropdown.
  • "Fork to instance" button drops a row at scope='instance' linked to a specific agent name (mirrors SC-11 affordance).
  • Reset-to-builtin behaves like every other artifact reset: DELETE /api/agent-types/:name?scope=… drops the higher-scope row and falls through to the next layer.

Validation

  • Field-level validation surfaces the same JSON Schema errors used for PUT /config/agents today.
  • Confirm dialog on destructive edits to git_email / forgejo_user (changing identity mid-flight breaks running tasks).

Tests

  • Smoke: edit dev.git_author at scope='global', dispatch a task, assert the commit author matches.
  • Smoke: fork architect.label_rules to scope='instance' for architect-default, assert the dispatched architect uses the forked rules.

Out of scope

  • Audit-log surfacing — AT-7.
  • Service-config tab — SVC-3.

References

  • Spec: specs/config-to-db.md § Story AT-6.
  • Precedent: SC-8, SC-9, SC-11 (UI affordances under milestone #28).
  • Blocked by: AT-1.
As an operator, I want the Settings → Agent types tab to let me edit every field in the `agent_type` / `agent_type_container` / `agent_type_routing` tables at any scope (`global` / `agent_type` / `instance`), so that I can fork / edit / reset agent-type config without touching `agents.json` or restarting the service. ## Acceptance criteria ### Editor - [ ] Tab grouped by section: **Identity** / **Container** / **Routing** / **Escalation** / **Examples**. - [ ] Scope selector at the top of each editor (`Global` / `Agent type` / `Instance`); picking `Instance` reveals an instance-name dropdown. - [ ] "Fork to instance" button drops a row at `scope='instance'` linked to a specific agent name (mirrors SC-11 affordance). - [ ] Reset-to-builtin behaves like every other artifact reset: `DELETE /api/agent-types/:name?scope=…` drops the higher-scope row and falls through to the next layer. ### Validation - [ ] Field-level validation surfaces the same JSON Schema errors used for `PUT /config/agents` today. - [ ] Confirm dialog on destructive edits to `git_email` / `forgejo_user` (changing identity mid-flight breaks running tasks). ### Tests - [ ] Smoke: edit `dev.git_author` at `scope='global'`, dispatch a task, assert the commit author matches. - [ ] Smoke: fork `architect.label_rules` to `scope='instance'` for `architect-default`, assert the dispatched architect uses the forked rules. ## Out of scope - Audit-log surfacing — AT-7. - Service-config tab — SVC-3. ## References - Spec: `specs/config-to-db.md` § Story AT-6. - Precedent: SC-8, SC-9, SC-11 (UI affordances under milestone #28). - Blocked by: AT-1.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
charles/claude-hooks#748
No description provided.