chore(idea): bookkeeping tickets #219-#223 et index #224
This commit is contained in:
45
.ideai/tickets/219/carnet.md
Normal file
45
.ideai/tickets/219/carnet.md
Normal file
@ -0,0 +1,45 @@
|
||||
---
|
||||
issueRef: "#219"
|
||||
version: 8
|
||||
updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
|
||||
updatedAt: 1786982821404
|
||||
---
|
||||
## Build AppImage 2026-08-15
|
||||
- Demande: rebuild de l'AppImage Linux après le fix Git Graph des tags annotés (#218).
|
||||
- Workflow utilisé: skill `build-appimage`.
|
||||
- Tag de build posé localement avant build par Git: `v0.14.0`.
|
||||
- Commit buildé: `d9172a1` sur `develop`.
|
||||
- Message du tag: `AppImage build 2026-08-15 on develop (d9172a17) — affichage tags annotés Git Graph #218 + bookkeeping`.
|
||||
- Aucun push demandé/effectué.
|
||||
|
||||
## Exécution
|
||||
- Frontend: `npm --prefix frontend run build` => OK
|
||||
- Bundle Tauri AppImage: `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/` => OK
|
||||
|
||||
## Artefact produit
|
||||
- `/home/anthony/Documents/Projects/IdeA/target/release/bundle/appimage/IdeA_0.3.0_amd64.AppImage`
|
||||
|
||||
## Rappel opérationnel
|
||||
- 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-17
|
||||
- Demande: rebuild de l'AppImage Linux après le ticket mobile custom CLI #224.
|
||||
- Workflow utilisé: skill `build-appimage`.
|
||||
- Commit buildé: `b25c17c0` sur `develop`.
|
||||
- Premier essai du bundle Tauri avec `CARGO_HOME=/tmp/idea-cargo-home` => ECHEC environnemental, `/tmp` saturé (`No space left on device`, `database or disk is full`).
|
||||
- Contournement appliqué: relance réussie avec `CARGO_HOME=/home/anthony/Documents/Projects/IdeA/.appimage-build/cargo-home` tout en conservant `APPIMAGE_EXTRACT_AND_RUN=1` et `NO_STRIP=1`.
|
||||
- Tag de build posé localement par Git apres build: `v0.15.0`.
|
||||
- Message du tag: `AppImage build 2026-08-17 on develop (b25c17c0) — passage en custom CLI sur version téléphone #224 + bookkeeping`.
|
||||
- Aucun push demandé/effectué.
|
||||
|
||||
## 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`
|
||||
- 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
|
||||
|
||||
## Artefact produit 2026-08-17
|
||||
- `/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.
|
||||
17
.ideai/tickets/219/issue.md
Normal file
17
.ideai/tickets/219/issue.md
Normal file
@ -0,0 +1,17 @@
|
||||
---
|
||||
id: "f8828b8b-1f67-4b99-87e8-257c5e658237"
|
||||
number: 219
|
||||
title: "Rebuild AppImage Linux après fix Git Graph tags annotés"
|
||||
status: "closed"
|
||||
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: 1786817374873
|
||||
updatedAt: 1786982821404
|
||||
version: 8
|
||||
---
|
||||
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.
|
||||
19
.ideai/tickets/220/carnet.md
Normal file
19
.ideai/tickets/220/carnet.md
Normal file
@ -0,0 +1,19 @@
|
||||
---
|
||||
issueRef: "#220"
|
||||
version: 4
|
||||
updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
|
||||
updatedAt: 1786819020869
|
||||
---
|
||||
2026-08-15 — Cadrage initial.
|
||||
|
||||
Demande utilisateur : étudier l’intégration d’une fonction vocale Codex dans IdeA via un agent global partagé entre projets, avec contexte propre, tout en gardant une architecture hexagonale/SOLID extensible à d’autres providers.
|
||||
|
||||
Synthèse Architecture : faisable proprement si la voix est modélisée comme une surface globale IDE distincte des agents de projet. Découpage recommandé autour de ports dédiés (`SpeechToTextPort`, `TextToSpeechPort`, `VoiceSessionRuntime`/`RealtimeConversationPort`, `GlobalAssistantContextStore`, `ProjectContextResolver`, `AssistantRuntimeRouter`). Séparer impérativement provider vocal et provider cognitif. Contexte/mémoire globaux à isoler strictement des contextes/mémoires projet. Scope actif explicite (`Global` vs `Project(projectId)`).
|
||||
|
||||
Synthèse UX : forte valeur comme porte d’entrée transverse à IdeA pour réduire la friction. Risque majeur de confusion entre assistant global et agents de projet. Recommandation MVP : assistant vocal global hors projet par défaut, badge de contexte permanent, transcript visible, bascule explicite vers un projet, confirmation avant actions projet sensibles, pas de sélection implicite du scope.
|
||||
|
||||
MVP recommandé : push-to-talk, Codex seul côté raisonnement, réponse texte d’abord, TTS facultatif/basique, aucune mémoire cross-project implicite.
|
||||
|
||||
Version cible : session temps réel plus riche, multi-provider vocal, routage vers plusieurs profils IA derrière un port dédié, handoff propre global <-> projet et permissions/outils médiés.
|
||||
|
||||
Décision produit 2026-08-15 : abandon du chantier à ce stade. Motif : la feature nécessiterait un usage API OpenAI supplémentaire (realtime/audio et/ou tokens), non couvert par l’abonnement ChatGPT Pro de l’utilisateur, qui ne souhaite pas de coût additionnel.
|
||||
17
.ideai/tickets/220/issue.md
Normal file
17
.ideai/tickets/220/issue.md
Normal file
@ -0,0 +1,17 @@
|
||||
---
|
||||
id: "df5eaadf-21a9-4a1b-ac01-1aeee98cd02f"
|
||||
number: 220
|
||||
title: "Étudier un agent vocal global Codex cross-project pour IdeA"
|
||||
status: "closed"
|
||||
priority: "medium"
|
||||
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: 1786818465461
|
||||
updatedAt: 1786819020869
|
||||
version: 4
|
||||
---
|
||||
Cadrage de faisabilité pour intégrer une fonction vocale reposant sur Codex dans IdeA via un agent global non lié à un projet, avec contexte propre et architecture extensible à d'autres providers/profils plus tard.
|
||||
21
.ideai/tickets/221/carnet.md
Normal file
21
.ideai/tickets/221/carnet.md
Normal file
@ -0,0 +1,21 @@
|
||||
---
|
||||
issueRef: "#221"
|
||||
version: 6
|
||||
updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
|
||||
updatedAt: 1786825279605
|
||||
---
|
||||
2026-08-15 — Ouverture du bug.
|
||||
|
||||
Signalement utilisateur : l'heure affichée sur les messages ne correspond pas a l'heure reelle; toutes les heures semblent a 1:00.
|
||||
|
||||
Cadrage UX : l'heure doit etre fiable, coherente et rendue dans la timezone locale utilisateur. Verifier aussi date hors jour courant, passage minuit, DST, fallback timestamp invalide, coherence desktop/mobile.
|
||||
|
||||
Cadrage Architecture : suspect principal = timestamp minuscule ou en secondes interprete comme epoch ms (symptome compatible avec new Date(1) => 01:00 Europe/Paris). Point UI cite : frontend/src/features/agents/CustomAgentChatView.tsx autour du formatage `new Date(receivedAtMs)`. Strategie recommandee : corriger l'unite a la source si besoin, ajouter une garde frontend contre timestamps absurdes et centraliser la normalisation.
|
||||
|
||||
Implementation DevFrontend : cause racine trouvee dans le replay de scrollback au reattach. Le code faisait `reattached.scrollback.reduce(foldChunk, ...)`; `Array.reduce` passait l'index en 3e argument, interprete par `foldChunk` comme `receivedAtMs`. Les messages rejoues recevaient donc `0`, `1`, `2` ms, ce qui rendait `new Date(1)` a 01:00 en Europe/Paris. Correctif applique dans `frontend/src/features/agents/CustomAgentChatView.tsx` : wrapper explicite autour de `foldChunk` dans le `reduce`, plus normalisation/garde centralisee avant rendu des heures. Test de regression ajoute dans `frontend/src/features/agents/CustomAgentChatView.test.tsx`.
|
||||
|
||||
Resultats annonces par DevFrontend : `npm test -- CustomAgentChatView.test.tsx` OK (51 tests), `npm run typecheck` OK.
|
||||
|
||||
Validation QA 2026-08-15 : VERT sur `fix/221-message-time-frozen`. Verifications reelles : `git rev-parse --abbrev-ref HEAD` => `fix/221-message-time-frozen`; `npm run test -- src/features/agents/CustomAgentChatView.test.tsx` => 51/51 OK; `npm run typecheck` => OK. Limite residuelle QA : pas de scenario E2E/UI manuel complet execute.
|
||||
|
||||
Note produit/contrat : le contrat backend de scrollback ne porte pas d'horodatage metier sur les `ReplyChunk`; apres reattach l'UI evite des heures absurdes mais ne peut pas reconstituer l'heure historique exacte du chunk sans evolution de contrat.
|
||||
17
.ideai/tickets/221/issue.md
Normal file
17
.ideai/tickets/221/issue.md
Normal file
@ -0,0 +1,17 @@
|
||||
---
|
||||
id: "a2eb5752-4604-44ad-8670-9c25921c84cb"
|
||||
number: 221
|
||||
title: "Corriger l'heure affichée des messages figée à 1:00"
|
||||
status: "closed"
|
||||
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: 1786824825568
|
||||
updatedAt: 1786825279605
|
||||
version: 6
|
||||
---
|
||||
Bug UI: les heures affichées sur les messages ne correspondent pas à l'heure réelle; elles semblent toutes rendues à 1:00. Investiguer source des timestamps, timezone/formatting et corriger l'affichage.
|
||||
99
.ideai/tickets/222/carnet.md
Normal file
99
.ideai/tickets/222/carnet.md
Normal file
@ -0,0 +1,99 @@
|
||||
---
|
||||
issueRef: "#222"
|
||||
version: 4
|
||||
updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
|
||||
updatedAt: 1786974344024
|
||||
---
|
||||
## Triage 2026-08-17
|
||||
- Symptôme rapporté: le script de redémarrage d'IdeA lancé en SSH affiche un succès, mais IdeA ne redémarre pas visiblement.
|
||||
- Reproduction locale statique:
|
||||
- commande: `bash scripts/restart-idea-over-ssh.sh --dry-run /home/anthony/Documents/Projects/IdeA/IdeA_0.3.0_amd64.AppImage`
|
||||
- sortie clé: `Detected running IdeA pid: 1` et `Detected graphical session pid: 1`
|
||||
- Diagnostic initial Main:
|
||||
- la détection `find_running_idea_pid()` repose sur `pgrep -f 'IdeA|AppImage'`, ce qui peut matcher le shell/script appelant car sa ligne de commande contient le chemin de l'AppImage;
|
||||
- le dry-run montre effectivement une fausse détection sur `pid 1`, incompatible avec un vrai process IdeA utilisateur;
|
||||
- conséquence probable: le script conclut sur un faux positif de détection au lieu de vérifier l'instance réelle.
|
||||
- Flux demandé:
|
||||
- Architect: cadrer le correctif minimal et les garde-fous de détection;
|
||||
- Git: décider la branche locale;
|
||||
- DevBackend: corriger le script shell;
|
||||
- QA: prouver la correction par commandes réelles.
|
||||
|
||||
## Architect
|
||||
- Cause racine retenue: détection trop floue et premier match accepté, via heuristiques `pgrep -f 'IdeA|AppImage'` capables de matcher le script lui-même, un parent, ou un process générique.
|
||||
- Cadrage de fix: valider strictement le PID IdeA contre le chemin AppImage cible, séparer la détection de session graphique, interdire `pid 1`, `$$` et les ancêtres, et échouer explicitement en cas d'ambiguïté.
|
||||
|
||||
## Git
|
||||
- Topologie recommandée: branche `fix/ticket-222-restart-idea-over-ssh` depuis `develop`.
|
||||
- Réserve Git: le worktree courant est sale et la branche active `qa/functional-coverage-suite` n'est pas une bonne base pour ce correctif.
|
||||
|
||||
## DevBackend
|
||||
- Correctif livré dans `scripts/restart-idea-over-ssh.sh` uniquement.
|
||||
- Changements clés:
|
||||
- exclusion de `pid 1`, `$$` et des ancêtres du script;
|
||||
- validation stricte d'un process IdeA par `/proc/<pid>/exe` et `cmdline` liés à l'AppImage cible;
|
||||
- détection de session graphique limitée à des process de session connus avec variables d'environnement graphiques et DBus cohérentes;
|
||||
- échec explicite en cas de pluralité de candidats ou d'absence de session graphique exploitable.
|
||||
- Vérifications DevBackend:
|
||||
- `bash -n /home/anthony/Documents/Projects/IdeA/scripts/restart-idea-over-ssh.sh`
|
||||
- `bash /home/anthony/Documents/Projects/IdeA/scripts/restart-idea-over-ssh.sh --dry-run /home/anthony/Documents/Projects/IdeA/IdeA_0.3.0_amd64.AppImage`
|
||||
- Résultat utile post-fix:
|
||||
- `Detected running IdeA pid: 16`
|
||||
- `error: no unambiguous graphical session found for user anthony`
|
||||
|
||||
## QA
|
||||
- Verdict: `PARTIEL`.
|
||||
- Prouvé:
|
||||
- le script est syntaxiquement valide;
|
||||
- le `--dry-run` ne retourne plus `pid 1`;
|
||||
- le script n'annonce plus un faux succès quand la session graphique n'est pas détectable, il échoue proprement.
|
||||
- Non prouvé dans cet environnement:
|
||||
- un redémarrage réel de bout en bout avec changement de PID sur une vraie session graphique utilisateur.
|
||||
- Décision Main: ticket passé en statut `QA`, pas clôturé, en attente d'une validation live sur machine/session graphique réelle.
|
||||
|
||||
## Reprise 2026-08-17
|
||||
- Demande utilisateur complémentaire: le but du script est précisément de pouvoir redémarrer IdeA à distance via SSH quand l'utilisateur n'est pas chez lui.
|
||||
- Nouveau périmètre borné:
|
||||
- conserver l'auto-détection quand elle marche;
|
||||
- ajouter un mode explicite pour fournir/cibler la session graphique depuis SSH (variables d'environnement et/ou PID de session);
|
||||
- documenter la ligne de commande attendue.
|
||||
- Cycle relancé: Architect -> Git -> DevBackend -> QA.
|
||||
|
||||
## Architect lot 2
|
||||
- Contrat retenu pour SSH:
|
||||
- `--session-pid <pid>`
|
||||
- `--display <value>`
|
||||
- `--wayland-display <value>`
|
||||
- `--xdg-runtime-dir <path>`
|
||||
- `--dbus-session-bus <addr>`
|
||||
- `--xauthority <path>`
|
||||
- Priorité de résolution retenue: flags explicites, puis environnement shell, puis auto-détection.
|
||||
|
||||
## Git lot 2
|
||||
- Topologie recommandée: continuer `fix/ticket-222-restart-idea-over-ssh` si la branche existe encore, sinon repartir de `develop`.
|
||||
- Réserve inchangée: le worktree courant est sale.
|
||||
|
||||
## DevBackend lot 2
|
||||
- `scripts/restart-idea-over-ssh.sh` supporte maintenant le ciblage explicite de session graphique pour usage SSH.
|
||||
- Garde-fous clés:
|
||||
- validation de la cohérence `XDG_RUNTIME_DIR` / `DBUS_SESSION_BUS_ADDRESS`;
|
||||
- validation des chemins absolus;
|
||||
- validation croisée avec `--session-pid`;
|
||||
- auto-détection reléguée au dernier recours;
|
||||
- pas de succès si aucun nouveau PID IdeA n'est vu après relance.
|
||||
- Vérifications utiles:
|
||||
- sans env/flags: échec explicite;
|
||||
- avec env shell Wayland/DBus: `Session source: shell environment`;
|
||||
- avec flags explicites:
|
||||
- commande: `bash /home/anthony/Documents/Projects/IdeA/scripts/restart-idea-over-ssh.sh --dry-run --xdg-runtime-dir /run/user/1000 --dbus-session-bus unix:path=/run/user/1000/bus --wayland-display wayland-0 /home/anthony/Documents/Projects/IdeA/IdeA_0.3.0_amd64.AppImage`
|
||||
- résultat: `Session source: explicit flags`
|
||||
|
||||
## QA lot 2
|
||||
- Verdict: `PARTIEL`.
|
||||
- Prouvé:
|
||||
- le mode `flags explicites` existe bien et fonctionne en `--dry-run`;
|
||||
- le mode `environnement shell` fonctionne en `--dry-run`;
|
||||
- sans cible exploitable, le script échoue proprement au lieu d'annoncer un faux succès.
|
||||
- Non prouvé:
|
||||
- relance réelle de bout en bout depuis SSH sur une session graphique distante visible côté utilisateur.
|
||||
- Décision Main: ticket repassé en `QA`; prêt pour validation live utilisateur avec la commande SSH finale.
|
||||
17
.ideai/tickets/222/issue.md
Normal file
17
.ideai/tickets/222/issue.md
Normal file
@ -0,0 +1,17 @@
|
||||
---
|
||||
id: "2a6a8109-3e3b-4032-b3cc-478e61433df9"
|
||||
number: 222
|
||||
title: "Script de redémarrage SSH: succès affiché sans redémarrage réel d'IdeA"
|
||||
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: 1786965035875
|
||||
updatedAt: 1786974344024
|
||||
version: 4
|
||||
---
|
||||
Le script `scripts/restart-idea-over-ssh.sh` annonce un redémarrage réussi ou complet, mais l'instance IdeA visible ne redémarre pas réellement. Lot 2 demandé par l'utilisateur: permettre un vrai redémarrage à distance en SSH même quand l'auto-détection de la session graphique est ambiguë, via un ciblage explicite de l'environnement/session.
|
||||
66
.ideai/tickets/223/carnet.md
Normal file
66
.ideai/tickets/223/carnet.md
Normal file
@ -0,0 +1,66 @@
|
||||
---
|
||||
issueRef: "#223"
|
||||
version: 3
|
||||
updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
|
||||
updatedAt: 1787578200000
|
||||
---
|
||||
## Triage 2026-08-17
|
||||
- Symptôme utilisateur:
|
||||
- le startup MCP échoue;
|
||||
- l'utilisateur précise qu'il utilise la surface Web fournie par l'AppImage IdeA, pas le binaire Web standalone.
|
||||
- Vérifications statiques:
|
||||
- `crates/app-tauri/src/lib.rs`: le binaire AppImage route `--serve` vers `server::run_from_args(...)`;
|
||||
- `crates/app-tauri/src/server.rs`: ce wrapper appelle `web_server::run_from_args(...)`;
|
||||
- `crates/app-tauri/src/commands.rs`: `open_project_for_adapter(...)` appelle `state.ensure_orchestrator_watch(&output.project)`;
|
||||
- `crates/web-server/src/lib.rs`: `invoke_open_project(...)` se contente de `resolve_project_readonly(...)` et sérialise le DTO.
|
||||
- Hypothèse principale:
|
||||
- en surface Web embarquée, l'ouverture de projet ne passe pas par la logique partagée qui réconcilie l'état et démarre `ensure_orchestrator_watch`;
|
||||
- conséquence probable: watcher/orchestrateur/MCP non armés pour le projet ouvert via HTTP, alors que le desktop le fait.
|
||||
- Références de code utiles:
|
||||
- `crates/app-tauri/src/commands.rs:462`
|
||||
- `crates/web-server/src/lib.rs:3094`
|
||||
- `crates/backend/src/lib.rs:3301`
|
||||
- Travail attendu:
|
||||
- Architect: valider la cause racine et le contrat de convergence desktop/Web;
|
||||
- Git: décider la branche locale;
|
||||
- DevBackend: faire passer l'ouverture de projet Web par le même flux que le desktop, sans régression sur les lectures read-only non concernées;
|
||||
- QA: prouver que le startup MCP remarche réellement en surface Web embarquée, avec commandes/sorties réelles.
|
||||
|
||||
## Implémentation 2026-08-17
|
||||
- Correctif appliqué dans `crates/web-server/src/lib.rs`.
|
||||
- Changement:
|
||||
- `invoke_open_project(...)` ne fait plus une simple lecture read-only;
|
||||
- nouveau helper `open_project_for_web(...)` qui exécute `open_project`, réconcilie layouts/live-state/background tasks, arme `ensure_orchestrator_watch`, puis lance `reconcile_claude_run_dirs`, comme le flux desktop.
|
||||
- Test ajouté:
|
||||
- `authorized_open_project_arms_orchestrator_watch`
|
||||
- preuve: après `open_project` via `/api/invoke`, `state.app.open_project_ids()` contient bien le projet ouvert.
|
||||
|
||||
## QA 2026-08-17
|
||||
- Commandes:
|
||||
- `cargo test -p web-server authorized_open_project -- --nocapture`
|
||||
- `cargo test -p web-server web_invoke_routes_agent_commands -- --nocapture`
|
||||
- Résultat:
|
||||
- `authorized_open_project_returns_readonly_project_dto ... ok`
|
||||
- `authorized_open_project_arms_orchestrator_watch ... ok`
|
||||
- `web_invoke_routes_agent_commands ... ok`
|
||||
- Verdict:
|
||||
- `QA` sur preuve automatisée ciblée.
|
||||
- Validation live restante utile: vérifier en AppImage surface Web qu'un projet ouvert puis un agent MCP-capable lancé déclenche bien un startup MCP réussi de bout en bout.
|
||||
|
||||
## Reprise 2026-08-20
|
||||
- Signal utilisateur:
|
||||
- "le mcp fail encore sur la version web".
|
||||
- Vérification de l'état courant du code:
|
||||
- `crates/web-server/src/lib.rs` contient a nouveau le helper `open_project_for_web(...)`;
|
||||
- le flux HTTP `invoke_open_project(...)` n'utilise plus `resolve_project_readonly(...)` mais execute `open_project`, puis `reconcile_layouts`, `reconcile_live_state`, `reconcile_background_tasks`, `ensure_orchestrator_watch(&output.project)` et `reconcile_claude_run_dirs(&output.project)`;
|
||||
- `crates/web-server/src/bin/idea-serve.rs` route maintenant aussi le sous-mode `mcp-server` vers `backend::mcp_bridge::run_mcp_bridge(...)`;
|
||||
- `crates/backend/src/lib.rs` exporte le module partage `mcp_bridge` pour reutiliser le meme pont stdio<->loopback entre desktop et binaire web.
|
||||
- Validation automatisee du 2026-08-20:
|
||||
- `cargo check -p web-server` -> OK
|
||||
- `cargo test -p web-server authorized_open_project_arms_orchestrator_watch -- --nocapture` -> OK
|
||||
- `cargo test -p web-server web_root_candidates_include_appimage_resource_dir -- --nocapture` -> OK
|
||||
- `cargo test -p web-server web_invoke_routes_agent_commands -- --nocapture` -> OK
|
||||
- Conclusion de pilotage:
|
||||
- le correctif backend/web pour re-armer l'orchestrateur/MCP sur `open_project` web est present dans l'arbre courant et vert en tests cibles;
|
||||
- le ticket passe en `QA`;
|
||||
- fermeture a garder conditionnee a une preuve live AppImage/web montrant qu'un agent MCP-capable lance depuis la surface web demarre bien son MCP de bout en bout.
|
||||
17
.ideai/tickets/223/issue.md
Normal file
17
.ideai/tickets/223/issue.md
Normal file
@ -0,0 +1,17 @@
|
||||
---
|
||||
id: "6d08f613-f1b7-4e16-91c2-e1b94833d6e1"
|
||||
number: 223
|
||||
title: "MCP startup en surface Web embarquée: open_project n'arme pas l'orchestrateur comme le desktop"
|
||||
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: 1786992000000
|
||||
updatedAt: 1787578200000
|
||||
version: 4
|
||||
---
|
||||
En surface Web servie par l'AppImage IdeA, le startup MCP échoue alors qu'il fonctionnait auparavant. Le diagnostic initial pointe un écart de câblage entre le chemin desktop/Tauri et le chemin HTTP Web: l'ouverture de projet desktop appelle `open_project_for_adapter(...)`, qui exécute `state.ensure_orchestrator_watch(&output.project)`, tandis que le routeur Web `invoke_open_project(...)` ne fait actuellement qu'un `resolve_project_readonly(...)` sans armer l'orchestrateur/MCP du projet.
|
||||
@ -1,3 +1,3 @@
|
||||
{
|
||||
"nextNumber": 219
|
||||
"nextNumber": 222
|
||||
}
|
||||
@ -2968,7 +2968,7 @@
|
||||
"kind": "agent",
|
||||
"agent_id": "a6c6ea12-bfc6-4bdc-8031-324102dfa34d"
|
||||
},
|
||||
"updatedAt": 1786817616398
|
||||
"updatedAt": 1786982821404
|
||||
},
|
||||
{
|
||||
"issueRef": "#220",
|
||||
@ -3002,15 +3002,18 @@
|
||||
"issueRef": "#224",
|
||||
"path": "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,
|
||||
"assignedAgentIds": [],
|
||||
"assignedAgentIds": [
|
||||
"fe887179-933f-47d4-960f-c3b06827f86c",
|
||||
"ab328d90-c307-4771-a3b6-6c56089c8506"
|
||||
],
|
||||
"createdBy": {
|
||||
"kind": "agent",
|
||||
"agent_id": "a6c6ea12-bfc6-4bdc-8031-324102dfa34d"
|
||||
},
|
||||
"updatedAt": 1786981905837
|
||||
"updatedAt": 1787222847970
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user