feat(tickets): tri de la liste de tickets côté backend (#21)

Ajoute le paramètre de tri dans TicketListQuery et l'expose via
ticket_list (surface app-tauri + MCP). Ports et adaptateur mock
frontend alignés sur le contrat de tri. La partie UI (contrôle de tri
dans TicketFacetsBar) suivra dans un commit frontend dédié.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-07 11:45:59 +02:00
parent 2f8467e2dd
commit e523f44425
4 changed files with 184 additions and 5 deletions

View File

@ -74,6 +74,15 @@ pub fn catalogue() -> Vec<ToolDef> {
let ticket_ref = json!({ "type": "string", "pattern": "^#[1-9][0-9]*$" });
let status = json!({ "type": "string", "enum": ["open", "inProgress", "QA", "closed"] });
let priority = json!({ "type": "string", "enum": ["low", "medium", "high", "critical"] });
let sort = json!({
"type": "object",
"properties": {
"field": { "type": "string", "enum": ["number", "priority", "status", "title"] },
"direction": { "type": "string", "enum": ["asc", "desc"] }
},
"required": ["field", "direction"],
"additionalProperties": false
});
let link_kind = json!({
"type": "string",
"enum": ["relatesTo", "blocks", "blockedBy", "duplicates", "dependsOn"]
@ -137,6 +146,7 @@ pub fn catalogue() -> Vec<ToolDef> {
},
"assignedAgentId": { "type": "string", "format": "uuid" },
"text": { "type": "string" },
"sort": sort.clone(),
"limit": { "type": "integer", "minimum": 1 },
"cursor": { "type": "string" }
},