Immutable
release. Only release title and notes can be modified.
Added
update_agentMCP tool — change a roster agent'smodel,tools,system_prompt,name,descriptionordepartmentwithout raw SQL or the dashboard; omitted fields stay unchanged,nullclears the nullable ones, and the reply names the Task-tool tier the new model routes to. Models are validated against the new single source of truthKNOWN_AGENT_MODELS(src/scrum/agent-model.ts), which the dashboard'sALLOWED_AGENT_MODELSnow re-exports, so the server and the dashboard can no longer drift. The sprint-instructions text and the empty-team hint advertised acreate_agenttool that never existed; they now point atupdate_agent/reset_agents.- Claude Opus 5 in the model catalog —
claude-opus-5is offered by the dashboard picker and accepted everywhere; the QA factory seed movesclaude-opus-4-8→claude-opus-5.claude-opus-4-8joinsclaude-sonnet-4-6as a legacy id (rendered and editable, not offered for new picks).
Fixed
- A model or provider name in
assigned_tosilently routed to sonnet —create_ticketandupdate_ticketaccepted any string on the single-assignee path (only theagents[]path validated roles), so a ticket assigned to"opus"or"glm"found no agent inbuildModelRoutingSectionand got the sonnet fallback with no error anywhere. Both tools now reject anassigned_tothat is not a roster role (message lists the valid roles and points atimpl:*tags for the runtime); an empty roster (agentless mode) still accepts anything. (unknownRosterRole)