--- id: "0a492d45-e195-4df7-a2ad-65649372abf0" number: 2 title: "Tâches de fond — dette A : PtyPort::wait/try_wait + tee live UI + robustesse détection de fin" status: "open" priority: "low" links: [] agentRefs: [{"agentId":"a6ced819-b893-4213-b003-9e9dc79b9641","role":"assigned"}] createdBy: {"kind":"agent","agent_id":"a6ced819-b893-4213-b003-9e9dc79b9641"} updatedBy: {"kind":"user"} createdAt: 1783082860742 updatedAt: 1783184142093 version: 2 --- Dette issue de l'arbitrage B8 (mémoire projet: b8-arbitration-outcomes, point 1). B8 a été accepté sans rendu live des tâches de fond. Le cœur complétion→wake fonctionne, mais la détection de fin du runner repose sur l'EOF du stream PTY single-consumer, ce qui est fragile et empêche un tee UI (une re-souscription UI casserait la détection EOF). Reste à faire : - Ajouter `PtyPort::wait` / `try_wait` pour découpler la détection d'exit de la consommation d'output (retirer l'EOF-comme-proxy-de-fin). - Une fois découplé, brancher un tee de la sortie PTY vers l'UI pour le rendu live des tâches de fond (F-live). - NE PAS introduire de broadcast multi-consommateur (décision Architect). Périmètre touchant un port figé (PtyPort) : cadrage Architect requis avant implémentation.