chore(tickets): journalise le correctif routing chat vs PTY #149

- Met à jour le carnet avec la preuve runtime returned cellKind=pty; expected chat
- Documente les hypothèses invalidées et la nouvelle cible de correction
- Met à jour issue.md avec le titre et le diagnostic consolidés
- Incrémente le compteur et ajoute les tickets 150-158 à l'index

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-08-05 23:40:03 +02:00
parent 937ea07df1
commit ee35c15958
4 changed files with 259 additions and 148 deletions

View File

@ -1,19 +1,29 @@
---
id: "1bd74960-361f-4083-acff-4c0b55cd920f"
number: 149
title: "CLI custom: fallback silencieux vers Plain/TUI avant chargement du catalogue agent/profil"
status: "inProgress"
title: "CLI custom: une demande chat est routee en PTY au lieu d'une session structured"
status: "closed"
priority: "high"
sprint: null
links: [{"target":"#148","kind":"relatesTo"},{"target":"#147","kind":"relatesTo"}]
agentRefs: [{"agentId":"8f7da528-58df-4315-97e9-0562230ecc19","role":"assigned"}]
agentRefs: [{"agentId":"fe887179-933f-47d4-960f-c3b06827f86c","role":"assigned"},{"agentId":"8f7da528-58df-4315-97e9-0562230ecc19","role":"assigned"}]
attachments: []
createdBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
updatedBy: {"kind":"user"}
createdAt: 1785930073255
updatedAt: 1785937428431
version: 15
updatedAt: 1785964173499
version: 25
---
Bug report utilisateur du 2026-08-05: la CLI custom ne se lance plus; à l'ouverture elle se ferme immédiatement et la cellule revient sur Plain/TUI. Diagnostic Architecture: bug distinct de #148. Dans `frontend/src/features/layout/LayoutGrid.tsx`, `cellMode` restauré à `custom` depuis le storage est forcé trop tôt vers `tui` par l'effet garde-fou `if (!customCliAvailable && cellMode !== \"tui\") setCellMode(\"tui\")`, alors que `agents`/`profiles` sont encore vides pendant leur chargement asynchrone initial. Résultat: la préférence `custom` est écrasée silencieusement avant même que la vue puisse se monter. Objectif: retarder ce fallback jusqu'à la fin du premier chargement du catalogue, couvrir par test de non-régression, valider QA, puis rebuild AppImage Linux.
Bug report utilisateur confirme le mercredi 5 aout 2026: la CLI custom de l'agent Main peut de nouveau etre lancee, mais l'ouverture echoue avec le message runtime exact `custom CLI launch for agent a6c6ea12-bfc6-4bdc-8031-324102dfa34d in project 97b49ac2-8376-4aa3-8ea9-bf3ac81d0023 returned cellKind=pty; expected chat. sessionId=28b18fd2-e70c-4509-a633-e57e568234d9; nodeId=3e5d083c-4d04-41d6-a4e9-2970fc5b1fd6`.
Reouvert le 2026-08-05 apres retest utilisateur: le symptome persiste. La CLI custom s'ouvre environ une demi-seconde puis se referme directement vers Plain/TUI.
Le ticket a ete initialement ouvert sur une hypothese frontend de fallback silencieux vers Plain/TUI pendant le chargement du catalogue agent/profil. Cette hypothese n'est plus la piste principale. La preuve runtime ci-dessus tranche que le frontend demande bien une cellule `chat`, mais que le runtime/backend renvoie effectivement `cellKind=pty`; le garde frontend rejette alors correctement la reponse au lieu de publier un faux `sessionId` structured.
Diagnostic courant consolide le mercredi 5 aout 2026:
- le message `not found: structured session ...` doit etre traite comme symptome secondaire historique, pas comme cause racine actuelle ;
- la prochaine cible de correction est le routage backend/human launcher et/ou la propagation du contrat `cellKind: chat -> require_structured`, pas un nouveau fallback `LayoutGrid.tsx` ;
- DevBackend a localise les points de verite dans `crates/app-tauri/src/commands.rs`, `crates/application/src/agent/lifecycle.rs`, `crates/backend/src/lib.rs` et `crates/backend/src/dto.rs` ;
- QA a valide sur l'arbre courant, le mercredi 5 aout 2026, les tests cibles backend/frontend couvrant cette propagation.
Objectif du ticket: garantir qu'un lancement custom CLI demande en `chat` ouvre une vraie session structured quand le profil le permet, et n'aboutit jamais a un retour `pty` silencieux ou a une boucle de reattach secondaire.
Voir le carnet pour l'historique detaille, les hypotheses invalidees et les regles anti-boucle.