From f528b4d900f02e4bfac1d3fd629284386793af79 Mon Sep 17 00:00:00 2001 From: Blomios Date: Thu, 20 Aug 2026 13:22:29 +0200 Subject: [PATCH] chore(idea): bookkeeping #225 QA verte (+ tickets #219/#224 retardataires) --- .ideai/tickets/219/carnet.md | 20 ++++++++++++++++---- .ideai/tickets/219/issue.md | 6 +++--- .ideai/tickets/224/carnet.md | 10 +++++++--- .ideai/tickets/224/issue.md | 6 +++--- .ideai/tickets/225/carnet.md | 15 +++++++++++++++ .ideai/tickets/225/issue.md | 17 +++++++++++++++++ .ideai/tickets/counter.json | 2 +- .ideai/tickets/index.json | 20 +++++++++++++++++--- 8 files changed, 79 insertions(+), 17 deletions(-) create mode 100644 .ideai/tickets/225/carnet.md create mode 100644 .ideai/tickets/225/issue.md diff --git a/.ideai/tickets/219/carnet.md b/.ideai/tickets/219/carnet.md index 58fa0403..df48ecce 100644 --- a/.ideai/tickets/219/carnet.md +++ b/.ideai/tickets/219/carnet.md @@ -1,8 +1,8 @@ --- issueRef: "#219" -version: 8 +version: 12 updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} -updatedAt: 1786982821404 +updatedAt: 1787224101407 --- ## Build AppImage 2026-08-15 - Demande: rebuild de l'AppImage Linux après le fix Git Graph des tags annotés (#218). @@ -34,7 +34,7 @@ updatedAt: 1786982821404 ## Exécution 2026-08-17 - Frontend: `npm --prefix frontend run build` => OK -- Bundle Tauri AppImage essai 1: `CARGO_HOME=/tmp/idea-cargo-home APPIMAGE_EXTRACT_AND_RUN=1 NO_STRIP=1 ../../frontend/node_modules/.bin/tauri build --bundles appimage` depuis `crates/app-tauri/` => ECHEC faute d'espace dans `/tmp` +- Bundle Tauri essai 1: `CARGO_HOME=/tmp/idea-cargo-home APPIMAGE_EXTRACT_AND_RUN=1 NO_STRIP=1 ../../frontend/node_modules/.bin/tauri build --bundles appimage` depuis `crates/app-tauri/` => ECHEC faute d'espace dans `/tmp` - Vérification espace: `df -h /tmp /home/anthony/Documents/Projects/IdeA` => `/tmp` à 100%, volume projet avec marge - Bundle Tauri essai 2: `CARGO_HOME=/home/anthony/Documents/Projects/IdeA/.appimage-build/cargo-home APPIMAGE_EXTRACT_AND_RUN=1 NO_STRIP=1 ../../frontend/node_modules/.bin/tauri build --bundles appimage` depuis `crates/app-tauri/` => OK @@ -42,4 +42,16 @@ updatedAt: 1786982821404 - `/home/anthony/Documents/Projects/IdeA/target/release/bundle/appimage/IdeA_0.3.0_amd64.AppImage` ## Rappel opérationnel 2026-08-17 -- Remplacement de l'AppImage installée et relance d'IdeA non effectués volontairement: opération manuelle pour éviter de tuer l'orchestrateur/session en cours. \ No newline at end of file +- Remplacement de l'AppImage installée et relance d'IdeA non effectués volontairement: opération manuelle pour éviter de tuer l'orchestrateur/session en cours. + +## Build AppImage 2026-08-20 +- Demande: rebuild de l'AppImage Linux après le merge local du fix #224 sur la custom CLI web téléphone. +- Workflow utilisé: skill `build-appimage`. +- Frontend: `npm --prefix frontend run build` => OK. +- Bundle Tauri AppImage: relancé directement avec `CARGO_HOME=/home/anthony/Documents/Projects/IdeA/.appimage-build/cargo-home APPIMAGE_EXTRACT_AND_RUN=1 NO_STRIP=1 ../../frontend/node_modules/.bin/tauri build --bundles appimage` depuis `crates/app-tauri/` pour éviter la rechute connue sur `/tmp` saturé => OK. +- Commit buildé: `bd9f2cb` sur `develop`. +- Artefact produit: `/home/anthony/Documents/Projects/IdeA/target/release/bundle/appimage/IdeA_0.3.0_amd64.AppImage`. +- Tag Git local posé par Git apres build: `v0.16.0`. +- Message du tag: `AppImage build 2026-08-20 on develop (bd9f2cb) — runtime node introuvable custom CLI téléphone #224 (QA verte)`. +- Aucun push demandé/effectué; vérification Git: le tag reste strictement local. +- Remplacement de l'AppImage installée et relance d'IdeA non effectués volontairement: opération manuelle pour ne pas tuer l'orchestrateur/session en cours. \ No newline at end of file diff --git a/.ideai/tickets/219/issue.md b/.ideai/tickets/219/issue.md index d2c3456b..8affc0af 100644 --- a/.ideai/tickets/219/issue.md +++ b/.ideai/tickets/219/issue.md @@ -11,7 +11,7 @@ attachments: [] createdBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} createdAt: 1786817374873 -updatedAt: 1786982821404 -version: 8 +updatedAt: 1787224101407 +version: 12 --- -Reconstruire l'AppImage Linux d'IdeA depuis l'état courant du dépôt après le correctif Git Graph des tags annotés, avec pose du tag de version local sur le commit buildé selon la règle projet. Aucun remplacement automatique de l'AppImage installée ni relance d'IdeA. \ No newline at end of file +Reconstruire l'AppImage Linux d'IdeA depuis l'état courant du dépôt après le fix #224 de la custom CLI web téléphone, avec pose du tag de version local sur le commit buildé selon la règle projet. Aucun remplacement automatique de l'AppImage installée ni relance d'IdeA. \ No newline at end of file diff --git a/.ideai/tickets/224/carnet.md b/.ideai/tickets/224/carnet.md index fd5fb47d..1bd73218 100644 --- a/.ideai/tickets/224/carnet.md +++ b/.ideai/tickets/224/carnet.md @@ -1,8 +1,8 @@ --- issueRef: "#224" -version: 14 +version: 16 updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} -updatedAt: 1787222847970 +updatedAt: 1787223037400 --- 2026-08-17 Main - Demande: permettre le passage en custom CLI sur la version web telephone avec une UI correctement adaptee aux telephones. @@ -31,4 +31,8 @@ updatedAt: 1787222847970 - 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. \ No newline at end of file +- 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. +- Validation QA finale du 2026-08-20: VERT sur commandes reelles. Preuves explicites: lancement structured conserve, pas de dependance `node` dans la commande MCP generee sous runtime web, et non-regression UI mobile verte. +- Commandes QA finales: `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`; `cd frontend && npm test -- --run src/features/web/WebAgentCell.test.tsx`. +- Retour Git final: commit scope du fix `9a3ca51` sur `fix/224-web-custom-cli-node-runtime`, commit bookkeeping separe `b51a63f`, puis merge local `--no-ff` dans `develop` via `bd9f2cb`. Aucun push. Worktree final propre hors untracked non lies `.appimage-build/` et `scripts/restart-idea-over-ssh.sh`. +- Statut final: ticket cloture le 2026-08-20 apres QA verte et merge local dans `develop`. \ No newline at end of file diff --git a/.ideai/tickets/224/issue.md b/.ideai/tickets/224/issue.md index 4ca6465e..29302b7b 100644 --- a/.ideai/tickets/224/issue.md +++ b/.ideai/tickets/224/issue.md @@ -2,7 +2,7 @@ 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: "qa" +status: "closed" priority: "high" sprint: null links: [] @@ -11,8 +11,8 @@ attachments: [] createdBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} createdAt: 1786980793023 -updatedAt: 1787222847970 -version: 14 +updatedAt: 1787223037400 +version: 16 --- 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. diff --git a/.ideai/tickets/225/carnet.md b/.ideai/tickets/225/carnet.md new file mode 100644 index 00000000..e723de5c --- /dev/null +++ b/.ideai/tickets/225/carnet.md @@ -0,0 +1,15 @@ +--- +issueRef: "#225" +version: 6 +updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} +updatedAt: 1787224897257 +--- +2026-08-20 Main +- Ticket créé suite au signalement utilisateur: erreur `invalid node id` persistante sur la version web mobile/téléphone avec custom CLI. +- Pistes initiales locales: `frontend/src/features/web/WebAgentCell.tsx`, gateways de launch/attach custom CLI, validation backend `crates/backend/src/dto.rs`, surface web mobile `frontend/src/features/web/*`. +- UX: ne pas exposer `invalid node id` brut; fallback sûr + message générique si feedback nécessaire (`Impossible d’ouvrir cette vue.` / `L’emplacement demandé n’est plus disponible. Réessayez depuis l’écran actuel.`). +- Architect: cause probable validée. `WebAgentCell` mobile custom forge `nodeId: web-mobile-${agentId}` au lieu d’utiliser le vrai `nodeId` reçu ou rien. Backend à conserver strict (UUID valide uniquement). Fix propriétaire frontend. +- Git: branche décidée `fix/225-web-mobile-invalid-node-id` basée sur `develop` @ `bd9f2cb`; commits de fix séparés du bookkeeping Idea; merge local après QA verte uniquement. +- DevFrontend: fix livré. `WebAgentCell` passe désormais le vrai `nodeId` ou rien; `CustomAgentChatView` rend `nodeId` optionnel, n’envoie `nodeId` au launch que s’il existe, et masque l’erreur technique brute en mobile derrière un message générique. Tests ciblés `WebAgentCell.test.tsx` verts (11 tests), `npm run typecheck` vert. +- QA: verdict VERT. Commandes validées sur `fix/225-web-mobile-invalid-node-id`: `npm test -- --run src/features/web/WebAgentCell.test.tsx` (11/11), `npm run typecheck`, `npm run build:web`. Aucun finding bloquant. +- Prochaine étape: demander à Git de commit/merge local conformément à la stratégie décidée. diff --git a/.ideai/tickets/225/issue.md b/.ideai/tickets/225/issue.md new file mode 100644 index 00000000..eaaaa9b7 --- /dev/null +++ b/.ideai/tickets/225/issue.md @@ -0,0 +1,17 @@ +--- +id: "469d94ea-55bd-457f-ab6d-7445446887fe" +number: 225 +title: "Bug web mobile: invalid node id avec la custom CLI téléphone" +status: "qa" +priority: "high" +sprint: null +links: [] +agentRefs: [] +attachments: [] +createdBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} +updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} +createdAt: 1787224424729 +updatedAt: 1787224897257 +version: 6 +--- +Sur la version web mobile/téléphone, l'ouverture ou l'usage de la custom CLI remonte encore une erreur `invalid node id`. Le symptôme semble lié au mode custom CLI mobile (`frontend/src/features/web/WebAgentCell.tsx`) et/ou à la validation backend du `nodeId` lors de l'attache/lancement de session. Objectif: reproduire, identifier la cause, corriger, puis valider par tests réels frontend/backend selon le périmètre. \ No newline at end of file diff --git a/.ideai/tickets/counter.json b/.ideai/tickets/counter.json index 96a57703..18002b5d 100644 --- a/.ideai/tickets/counter.json +++ b/.ideai/tickets/counter.json @@ -1,3 +1,3 @@ { - "nextNumber": 222 + "nextNumber": 226 } \ No newline at end of file diff --git a/.ideai/tickets/index.json b/.ideai/tickets/index.json index 2fcabdf9..e825d7f6 100644 --- a/.ideai/tickets/index.json +++ b/.ideai/tickets/index.json @@ -2968,7 +2968,7 @@ "kind": "agent", "agent_id": "a6c6ea12-bfc6-4bdc-8031-324102dfa34d" }, - "updatedAt": 1786982821404 + "updatedAt": 1787224101407 }, { "issueRef": "#220", @@ -3002,7 +3002,7 @@ "issueRef": "#224", "path": "224", "title": "Version web téléphone: permettre le passage en custom CLI avec UI mobile adaptée", - "status": "qa", + "status": "closed", "priority": "high", "sprint": null, "assignedAgentIds": [ @@ -3013,7 +3013,21 @@ "kind": "agent", "agent_id": "a6c6ea12-bfc6-4bdc-8031-324102dfa34d" }, - "updatedAt": 1787222847970 + "updatedAt": 1787223037400 + }, + { + "issueRef": "#225", + "path": "225", + "title": "Bug web mobile: invalid node id avec la custom CLI téléphone", + "status": "qa", + "priority": "high", + "sprint": null, + "assignedAgentIds": [], + "createdBy": { + "kind": "agent", + "agent_id": "a6c6ea12-bfc6-4bdc-8031-324102dfa34d" + }, + "updatedAt": 1787224897257 } ] } \ No newline at end of file