fix(web): démarre le serveur MCP custom CLI via idea-serve au lieu de node — #224
This commit is contained in:
@ -1,17 +1,34 @@
|
||||
---
|
||||
issueRef: "#224"
|
||||
version: 5
|
||||
version: 14
|
||||
updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
|
||||
updatedAt: 1786981905837
|
||||
updatedAt: 1787222847970
|
||||
---
|
||||
2026-08-17 Main
|
||||
- Demande: permettre le passage en custom CLI sur la version web telephone avec une UI correctement adaptee aux telephones.
|
||||
- UX: la bascule doit vivre dans la session agent plein ecran mobile, pas dans la liste Travail. Controle segmente `TUI native` / `CLI custom`, affichage exclusif d'un mode a la fois, composer fixe en bas, adaptation tactile/mobile, confirmations en bottom sheet.
|
||||
- Architect: aucun nouveau port backend; reutiliser AgentGateway et CustomAgentChatView. Introduire un host mobile de session agent, partager la logique d'eligibilite custom CLI avec le desktop, et ajouter un `draftScope` explicite pour la persistance mobile sans `layoutId`.
|
||||
- DevFrontend: implementation annoncee terminee sur `feature/224-mobile-web-custom-cli`.
|
||||
- QA: verdict ROUGE. Repro reelle sur fallback mobile quand un profil perd le support custom CLI apres le mount.
|
||||
- Commande QA en echec: `cd /home/anthony/Documents/Projects/IdeA/frontend && npm test -- --run src/features/web/WebAgentCell.test.tsx`.
|
||||
- Symptom QA: test `falls back to native TUI when the mobile agent loses custom CLI support` KO, `terminal-view` introuvable, l'UI reste sur `custom-agent-chat-view` avec le bouton `CLI custom` toujours actif.
|
||||
- Diagnostic QA: `WebAgentCell.tsx` ne re-resout agent/profil qu'au mount; le fallback depend d'un `resolvedProfile` perime.
|
||||
- Signal secondaire QA: warning cleanup au detach depuis `CustomAgentChatView.tsx:924` avec `Cannot read properties of undefined (reading 'has')`.
|
||||
- Prochaine etape: correctif DevFrontend puis nouveau passage QA.
|
||||
- DevFrontend: implementation livree puis correctif applique apres retour QA rouge sur le fallback quand le support custom disparait apres mount.
|
||||
- QA finale: VERTE le 2026-08-17.
|
||||
- Commandes QA vertes: `cd /home/anthony/Documents/Projects/IdeA/frontend && npm test -- --run src/features/web/WebAgentCell.test.tsx` (8 passed), `npm test -- --run src/features/layout/LayoutGrid.chat.test.tsx` (14 passed), `npm run typecheck` (OK), `npm run build:web` (OK).
|
||||
- Git: commit feature `c547b71`, merge local `911dcf8` dans `develop`, puis bookkeeping `b25c17c`. Aucun push.
|
||||
- Statut: ticket cloture apres merge local dans `develop` avec QA verte.
|
||||
|
||||
2026-08-20 Main
|
||||
- Regression utilisateur: sur la version web telephone, le lancement de la custom CLI echoue maintenant avec un symptome runtime indiquant que `node` est introuvable.
|
||||
- Decision de pilotage: reouverture du ticket #224 car le symptome touche le meme parcours produit `version web telephone -> custom CLI`.
|
||||
- Ordre impose avant tout fix: QA doit d'abord ajouter des tests de non-regression sur le bon demarrage des serveurs MCP dans ce parcours web/mobile, vu l'historique de regressions repetes dans cette zone.
|
||||
- Regle anti-boucle pour la reprise: ne pas partir directement sur un correctif applicatif tant que QA n'a pas produit un signal rouge/vert concret sur ce scenario.
|
||||
- Retour QA: non-regression ajoutee dans `frontend/src/features/web/WebAgentCell.test.tsx` pour figer la couche existante la plus pertinente du parcours mobile web -> CLI custom.
|
||||
- Bornes couvrees par QA: reprise visible d'une session custom mobile avec replay d'activite MCP au re-attach; echec de lancement mobile quand le runtime remonte un `spawn node ENOENT`, avec erreur visible cote UI.
|
||||
- Commande QA executee: `cd /home/anthony/Documents/Projects/IdeA/frontend && npm test -- --run src/features/web/WebAgentCell.test.tsx`.
|
||||
- Resultat QA: VERT, `Test Files 1 passed`, `Tests 10 passed`.
|
||||
- Gap residuel explicitement note par QA: cette suite ne prouve pas encore le demarrage reel de `node` ni le boot effectif des serveurs MCP dans le runtime backend/web reel; elle fige le contrat frontend/integration autour du symptome.
|
||||
- Retour UX: en cas d'echec de boot runtime/MCP, garder la vue `CLI custom` mais afficher une alerte inline bloquante avec message utilisateur clair, CTA `Reessayer` et `Revenir a TUI native`; le detail technique brut `spawn node ENOENT` ne doit pas etre le message principal final.
|
||||
- Retour Architect: cause la plus probable cote backend/runtime sur le profil custom CLI Node-backed ou la resolution de commande dans le chemin web; points de verite a traiter d'abord dans `crates/web-server/src/lib.rs`, `StructuredSessionFactory`, et plus generalement dans le routage structured pour ne jamais degrader en PTY.
|
||||
- Decision d'implementation: DevBackend d'abord; frontend ne revient que si le backend expose une erreur typee ou si l'etat visible doit etre nettoye apres le fix runtime.
|
||||
- Decision Git: branche de travail locale `fix/224-web-custom-cli-node-runtime` creee depuis `develop@b25c17c`; commit scope puis merge local `--no-ff` vers `develop` une fois QA verte; aucun push.
|
||||
- Retour DevBackend: fix runtime implemente sans commit. `crates/application/src/agent/lifecycle.rs` fait maintenant reutiliser `mcp_server_wiring(...)` par `opencode_config_json` pour ecrire une commande MCP OpenCode basee sur le binaire IdeA (`idea-serve ... mcp-server`) quand un `McpRuntime` web est injecte, au lieu de dependre d'un `node` externe.
|
||||
- Preuve de test ajoutee par DevBackend: integration dans `crates/application/tests/agent_lifecycle.rs` garantissant qu'un lancement custom chat OpenCode avec runtime reste structured, n'ouvre aucun PTY, ecrit `opencode.json`, transmet `OPENCODE_CONFIG`, et que `mcp.idea.command[0] != "node"`.
|
||||
- Tests verts annonces par DevBackend: `cargo fmt`; `cargo test -p application opencode_config_json_with_runtime_uses_idea_exe_not_node -- --nocapture`; `cargo test -p application --test agent_lifecycle launch_opencode_chat_with_runtime_uses_idea_bridge_without_pty_or_node -- --nocapture`; `cargo test -p backend mcp_bridge -- --nocapture`; `cargo test -p web-server web_root_candidates_include_appimage_resource_dir -- --nocapture`; `cargo test -p web-server authorized_open_project_arms_orchestrator_watch -- --nocapture`; `npm test -- WebAgentCell.test.tsx`.
|
||||
- Note de reprise: un filtre large `cargo test -p application opencode -- --nocapture` remonte un echec existant non cible `p8c_opencode_same_pair_and_provider_are_isolated_by_project_root` (`left: 0 right: 2`), mais les non-regressions cibles du fix sont vertes separement.
|
||||
@ -2,16 +2,20 @@
|
||||
id: "2be065b5-1859-4698-8c9e-7f1fc2c1f7a3"
|
||||
number: 224
|
||||
title: "Version web téléphone: permettre le passage en custom CLI avec UI mobile adaptée"
|
||||
status: "inProgress"
|
||||
status: "qa"
|
||||
priority: "high"
|
||||
sprint: null
|
||||
links: []
|
||||
agentRefs: []
|
||||
agentRefs: [{"agentId":"fe887179-933f-47d4-960f-c3b06827f86c","role":"assigned"},{"agentId":"ab328d90-c307-4771-a3b6-6c56089c8506","role":"assigned"}]
|
||||
attachments: []
|
||||
createdBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
|
||||
updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
|
||||
createdAt: 1786980793023
|
||||
updatedAt: 1786981905837
|
||||
version: 5
|
||||
updatedAt: 1787222847970
|
||||
version: 14
|
||||
---
|
||||
Ajouter sur la version web téléphone d'IdeA la possibilité de passer en custom CLI, avec une interface et un parcours adaptés aux écrans téléphone.
|
||||
Regression du parcours version web téléphone -> custom CLI. Le jeudi 20 août 2026, l'utilisateur signale qu'en lançant la custom CLI depuis la version web téléphone, le runtime indique que `node` est introuvable. Avant tout correctif de production, la priorité est d'ajouter des tests de non-régression prouvant le bon démarrage des serveurs MCP dans ce parcours web/mobile, car cette zone a déjà régressé plusieurs fois.
|
||||
|
||||
Ordre de traitement imposé:
|
||||
1. QA ajoute/étend la couverture de tests pour le démarrage des serveurs MCP via la version web téléphone et établit un signal rouge/vert fiable.
|
||||
2. Ensuite seulement, l'implémentation du correctif sera cadrée et déléguée au(x) dev(s) concerné(s).
|
||||
Reference in New Issue
Block a user