--- id: "bd0f52c4-480f-4cf8-9c4c-05d05fb9e102" number: 5 title: "Tâches de fond — dette de contrat DTO work-state : summary non affiché + owner/project inutiles + tri" status: "closed" priority: "low" links: [{"target":"#1","kind":"relatesTo"}] agentRefs: [{"agentId":"a6ced819-b893-4213-b003-9e9dc79b9641","role":"assigned"}] createdBy: {"kind":"agent","agent_id":"a6ced819-b893-4213-b003-9e9dc79b9641"} updatedBy: {"kind":"agent","agent_id":"a6ced819-b893-4213-b003-9e9dc79b9641"} createdAt: 1783115680555 updatedAt: 1783328740886 version: 4 --- Dette de contrat mineure détectée lors du fix T3 du ticket #1 (projection background_tasks dans le read-model work-state, branche feature/background-tasks-first-class). Non bloquant : Cancel/Retry fonctionnent en live. Points à traiter : - [ ] `summary` : le DTO backend `AgentBackgroundTaskStateDto` émet un `summary` (résumé/erreur/raison du résultat terminal) que le type frontend `BackgroundCompletion` ne porte pas → info perdue, non affichée dans le panneau. Décider si on l'affiche (utile pour comprendre un échec/annulation d'un coup d'œil) et brancher. - [ ] `ownerAgentId`/`projectId` absents du payload par-agent : inoffensif (les tâches sont imbriquées sous leur agent, fallback ownerAgentId = agentId), mais le chemin de merge top-level dans `normalizeProjectWorkState` reste du code défensif inutilisé pour ce contrat. À nettoyer ou documenter comme volontaire. Contexte : mémoire projet `workstate-background-tasks-projection-fix` (décision d'archi) et `tickets-t3-frontend-validation-verdict` (verdict FE + écarts). Le point tri sur finishedAtMs a déjà été corrigé (bascule sur updatedAtMs) et n'est PAS dans cette dette.