62 lines
1.8 KiB
Markdown
62 lines
1.8 KiB
Markdown
|
|
---
|
||
|
|
kind: task
|
||
|
|
slug: settings-ai-role-routing-ui
|
||
|
|
title: Settings UI — per-role model routing
|
||
|
|
plan_slug: automation-foundation
|
||
|
|
epic_slug: model-provider-registry
|
||
|
|
status: ready
|
||
|
|
priority: P1
|
||
|
|
tenant_id: global
|
||
|
|
owner: unassigned
|
||
|
|
cursor_todo_id: null
|
||
|
|
updated_at: "2026-07-03"
|
||
|
|
agent_prompt: |
|
||
|
|
Read docs/adr-model-routing.md. apps/web UI. Route:
|
||
|
|
/[workspaceSlug]/settings/ai/role-routing. Allow adding custom role_id
|
||
|
|
strings. claim_task before work.
|
||
|
|
---
|
||
|
|
|
||
|
|
# Task summary
|
||
|
|
|
||
|
|
Build the Settings page that maps `role_id` → provider alias, with pipeline defaults seeded and support for custom roles.
|
||
|
|
|
||
|
|
## Description
|
||
|
|
|
||
|
|
### Route
|
||
|
|
|
||
|
|
`apps/web/app/(app)/[workspaceSlug]/settings/ai/role-routing/page.tsx`
|
||
|
|
|
||
|
|
### UI
|
||
|
|
|
||
|
|
- Table: role id, display label (optional friendly name), provider alias (dropdown from `listProviders`), tier badge from provider metadata, enabled toggle
|
||
|
|
- “Add role” — free-text `role_id` + alias dropdown (for `gate-copilot`, custom auditors, etc.)
|
||
|
|
- “Reset to pipeline defaults” — calls upsert for nine L2 roles + `gate-copilot` + `chat-default` **if** matching aliases exist; confirm dialog
|
||
|
|
- Link to ADR / note about convoy `model_policy` overrides
|
||
|
|
|
||
|
|
### Default labels
|
||
|
|
|
||
|
|
Map known `role_id` to human labels (Conductor, Architect, …) in a const — custom roles show raw id.
|
||
|
|
|
||
|
|
## Subtasks
|
||
|
|
|
||
|
|
- [ ] Page + list routes query
|
||
|
|
- [ ] Upsert/disable per row
|
||
|
|
- [ ] Add custom role flow
|
||
|
|
- [ ] Reset defaults action
|
||
|
|
- [ ] Settings nav entry
|
||
|
|
|
||
|
|
## Estimation
|
||
|
|
|
||
|
|
M
|
||
|
|
|
||
|
|
## Acceptance criteria
|
||
|
|
|
||
|
|
- [ ] User can set `role-architect` → `claude-planning`, `role-implementer` → `qwen-coder`
|
||
|
|
- [ ] User can add `gate-copilot` role row
|
||
|
|
- [ ] Dropdown only lists enabled providers for the workspace
|
||
|
|
|
||
|
|
## Links
|
||
|
|
|
||
|
|
- Epic: `./Epic-model-provider-registry.md`
|
||
|
|
- Depends on: `Task-trpc-models-router.md`, `Task-settings-ai-providers-ui.md` (providers should exist first for dogfood; soft dependency)
|