Files
IdeA/.ideai/memory/tickets-v1-e2e-validated-qa.md
Blomios ebd992e41a docs(memory): notes projet tâches de fond, tickets V1 et checkpoints ticket #1
Capitalise la mémoire projet accumulée pendant les chantiers B7/B8
(tâches de fond first-class), le système de tickets V1 et le ticket #1 :
design, cadrages d'archi, checkpoints d'avancement et verdicts QA/frontend.
Mise à jour de l'index MEMORY.md.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-04 00:21:43 +02:00

2.0 KiB

name, description, metadata
name description metadata
tickets-v1-e2e-validated-qa Verdict QA du système de tickets V1 sans attachments sur feature/issue-ticket-system — vert de bout en bout, avec la seule réserve du typage de conflit côté UI.
type
reference

Validation QA de bout en bout du système de tickets V1 (sans attachments) sur feature/issue-ticket-system (backend commité 8de7be0, frontend non commité). Verdict : OK.

Preuves réelles :

  • cargo build --workspace OK. Tests verts sur domain/application ; infrastructure et app-tauri verts sauf la dette pré-existante déclarée (orchestrator_watcher::ask_request_surfaces_reply_alongside_detail + app-tauri state::mcp_e2e_loopback_tests::*, tous Elapsed(()) du rendez-vous, sans rapport avec les tickets). Aucun échec imputable aux tickets.
  • Frontend : npm run build OK (tsc+vite), npm test = 459 passed / 49 files.

Invariants prouvés par tests : #N séquentiel jamais réutilisé (allocator_never_reuses_numbers) ; create→read round-trip ; carnet remplaçable & scoped .ideai/tickets/N/carnet.md ; pas de self-link (IssueError::SelfLink, domain/issue.rs) ; assignation agent connu seulement (create_issue_rejects_unknown_assignee) ; concurrence optimiste (update_issue_maps_version_conflict, IssueStoreError::VersionConflict) ; énums fermés statut/priorité.

Réserve non bloquante (dette technique) : le conflit de version est détecté côté front par fragment de message (message.includes("version conflict"), frontend/src/adapters/ticket.ts, useTicketDetail.ts), s'appuyant sur domain/ports.rs #[error("issue version conflict: …")]. Un code typé "versionConflict" existe DÉJÀ mais uniquement sur la surface MCP (app-tauri/src/tickets.rs:942) ; le chemin Tauri command renvoie INVALID. Recommandation : propager le code typé dans l'enveloppe d'erreur des ticket_* commands et brancher l'UI sur error.code. Comportement actuel correct et testé, donc non bloquant.