--- name: checkpoint-workstate-delegation-queue-lot-b description: memory note checkpoint-workstate-delegation-queue-lot-b metadata: type: project --- # Checkpoint — Workstate delegation/queue snapshot Lot B Date: 2026-06-20 ## État final Lot B `workstate delegation/queue snapshot` terminé, validé QA et mergé localement dans `develop`. Branche finale: - `develop` @ `64c2c14` — merge local `feature/workstate-delegation-queue`. - `feature/workstate-delegation-queue` conservée. - Aucun push, aucune branche supprimée. - Working tree propre après décision Git. ## Commits créés - `cc7d99a` — `feat(workstate): snapshot des délégations en file par agent (Lot B backend)` - `QueuedTicketSnapshot` + port read-only `AgentQueueSnapshot`. - Impl `InMemoryMailbox` snapshot FIFO sans cloner les senders. - `GetProjectWorkState.agents[].tickets` avec statut dérivé `inProgress/queued`, source `human/agent`, preview bornée. - DTO Tauri camelCase et wiring `AppState` avec le même mailbox partagé en deux ports. - `c600604` — `feat(workstate): UI des délégations en file par agent (Lot B frontend)` - Types TS `AgentTicketState`, `TicketWorkStatus`, `TicketWorkSource`. - Mock gateway normalise `tickets: []`. - Panneau Work affiche les tickets FIFO, source Human/Agent, preview, ticket court. - Refresh ajouté sur `delegationReady`. - `5cb99fd` — `chore(wip): état runtime .ideai (flux conversation live, layouts)` - Runtime isolé des commits feature. - `64c2c14` — merge local dans `develop`. ## QA verte Commandes QA réelles validées: - `cargo fmt --all -- --check` OK. - `cargo test -p infrastructure mailbox --lib` OK, 13 passed. - `cargo test -p application --test workstate` OK, 12 passed. - `cargo test -p app-tauri --test dto_agents` OK, 20 passed. - `cargo check -p app-tauri` OK. - `cd frontend && npx vitest run src/features/workstate/workstate.test.tsx src/features/projects/projects.test.tsx` OK, 2 files / 17 tests. - `cd frontend && npx tsc --noEmit` OK. - QA ajoutée: `cargo test -p domain mailbox --lib` OK, 6 passed. Warnings observés uniquement côté Vite sur options `esbuild` dépréciées/ignorées au profit de `oxc`, non bloquants. ## Décisions produit/techniques - Les tickets `human` et `agent` sont inclus dans le snapshot; l'UI distingue explicitement `Human` vs agent/requester au lieu de tout appeler délégation agent. - Le statut est dérivé à la lecture: `inProgress` si le ticket courant correspond au `busy_state`, sinon `queued`. - Pas de nouvelle persistance, pas de lecture `log.jsonl`/handoff, pas d'événement `agentQueueChanged`, pas d'action UX d'annulation/résolution. ## Suite probable Le prochain lot logique du chantier UX conversations/délégations est Lot C: résumés de conversations depuis log/handoff en lecture best-effort, ou Lot D actions UX selon priorité produit. Suivre le cycle Main: Architect -> Git -> DevBackend/DevFrontend -> QA -> Git.