From ab30db122aa07850bcfaecefbc2aac5d3cdc5bd9 Mon Sep 17 00:00:00 2001 From: Blomios Date: Mon, 7 Sep 2026 18:13:42 +0200 Subject: [PATCH] =?UTF-8?q?chore(tickets):=20synchro=20store=20local=20?= =?UTF-8?q?=E2=80=94=20cycle=20#267=20QA=20verte=20(carnet=20complet:=20im?= =?UTF-8?q?pl=C3=A9mentation,=20tests,=20build=20AppImage=200.3.0=20+=20re?= =?UTF-8?q?mplacement=20racine)=20;=20cl=C3=B4ture=20#268=20en=20doublon?= =?UTF-8?q?=20de=20#267=20;=20index/counter?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .ideai/tickets/267/carnet.md | 52 ++++++++++++++++++++++++++++++++++++ .ideai/tickets/267/issue.md | 17 ++++++++++++ .ideai/tickets/268/carnet.md | 22 +++++++++++++++ .ideai/tickets/268/issue.md | 17 ++++++++++++ .ideai/tickets/counter.json | 2 +- .ideai/tickets/index.json | 34 +++++++++++++++++++++++ 6 files changed, 143 insertions(+), 1 deletion(-) create mode 100644 .ideai/tickets/267/carnet.md create mode 100644 .ideai/tickets/267/issue.md create mode 100644 .ideai/tickets/268/carnet.md create mode 100644 .ideai/tickets/268/issue.md diff --git a/.ideai/tickets/267/carnet.md b/.ideai/tickets/267/carnet.md new file mode 100644 index 00000000..8a8d3c70 --- /dev/null +++ b/.ideai/tickets/267/carnet.md @@ -0,0 +1,52 @@ +--- +issueRef: "#267" +version: 4 +updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} +updatedAt: 1788797485001 +--- +# Ticket #267 - reprise orchestrée par Main + +Demande utilisateur: corriger le parcours complet permissions cross-project agents/templates et reconstruire/remplacer l'AppImage visible. + +Constats initiaux: +- Les tools MCP inter-projets ne sont pas exposés correctement dans l'éditeur MCP. +- La case `Contactable depuis d'autres projets` dans les templates est visible mais ne persiste pas après save/reopen. +- Les permissions d'agent projet doivent permettre la configuration des tools MCP et de la contactabilité. +- Deux AppImages `0.3.0` existent; la racine contenait une ancienne AppImage du 2026-08-17. + +Arbitrage UX: +- Groupe MCP attendu: `IdeA inter-projets`. +- Tools/libellés: `idea_project_ask_agent` = `Demander à un agent d'un autre projet`; `idea_project_cancel_agent` = `Annuler une demande inter-projet`. +- Contactabilité et permissions MCP restent deux réglages distincts: être appelable vs pouvoir appeler. +- Save/reopen doit conserver les états cochés/décochés. + +Arbitrage Architecture: +- MCP tool groups: frontend pur. +- Template.defaultContactable: frontend pur si DTO/adapters existants sont câblés correctement; ne pas sérialiser dans `defaultSystemPermissions`. +- Agent.contactable est source de vérité agent projet. Backend devait fournir `update_agent_contactable`. +- Les tools catalogués mais non groupés doivent rester visibles via fallback. + +Implémentation: +- DevBackend a ajouté le use case/DTO/commande Tauri/route web `update_agent_contactable` et tests associés. +- DevFrontend a modifié adapters/domain/ports/panels/tests pour exposer les tools cross-project, fallback visible, `defaultContactable` template séparé et `Agent.contactable` via `updateAgentContactable`. + +Validation QA: +- Premier passage QA: code vert, ticket rouge uniquement car AppImage racine non remplacée. +- Build AppImage exécuté via skill `build-appimage`: `npm --prefix frontend run build`, puis `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`. +- Nouvel artefact: `/home/anthony/Documents/Projects/IdeA/target/release/bundle/appimage/IdeA_0.3.0_amd64.AppImage`, 118921720 bytes, mtime 2026-09-07 18:08:44 +0200, sha256 `770b6f59ad4c82222522da5c53a757531b91365e68bd2d33d1fe84155ca2efa0`. +- AppImage racine remplacée: `/home/anthony/Documents/Projects/IdeA/IdeA_0.3.0_amd64.AppImage`, même taille/mtime/hash; `cmp` root vs target = 0. +- Ancienne AppImage sauvegardée: `/home/anthony/Documents/Projects/IdeA/IdeA_0.3.0_amd64.AppImage.old-before-267-20260907180854`, 118745592 bytes, mtime 2026-08-17 16:31:45 +0200, sha256 `e66a8a9f4a55cdfd5eb55f1ccf8681a58f5c9f08977659cf9531101500675290`. +- QA final: VERT. + +Tests verts relevés par QA: +- `cargo test -p infrastructure --test mcp_server tools_list_advertises_the_idea_tools_with_schemas -- --nocapture` +- `cargo test -p infrastructure orchestrator::mcp::tools::tests -- --nocapture` +- `cargo test -p application --test agent_lifecycle update_agent_contactable -- --nocapture` +- `cargo test -p web-server web_invoke_routes_permission_commands -- --nocapture` +- `cargo test -p app-tauri --test dto_templates -- --nocapture` +- `cd frontend && npm test -- --run src/features/permissions/McpToolPermissionsPanel.test.tsx src/features/permissions/permissions.test.tsx src/features/templates/templates.test.tsx src/adapters/agent.test.ts src/adapters/http/agentGateway.test.ts` +- `cd frontend && npm run typecheck` + +Etat Git: +- Branche préparée par Git: `fix/268-cross-project-permissions-appimage` (nom historique malgré suivi #267). +- Aucun commit au moment de ce carnet; Git doit décider commit/merge local. \ No newline at end of file diff --git a/.ideai/tickets/267/issue.md b/.ideai/tickets/267/issue.md new file mode 100644 index 00000000..d69fcf73 --- /dev/null +++ b/.ideai/tickets/267/issue.md @@ -0,0 +1,17 @@ +--- +id: "e68681a5-2a9e-4742-912b-9c1d726ca789" +number: 267 +title: "Corriger permissions cross-project agents/templates et reconstruire l’AppImage" +status: "qa" +priority: "critical" +sprint: null +links: [{"target":"#260","kind":"relatesTo"},{"target":"#264","kind":"relatesTo"},{"target":"#265","kind":"relatesTo"}] +agentRefs: [{"agentId":"fe887179-933f-47d4-960f-c3b06827f86c","role":"assigned"},{"agentId":"8f7da528-58df-4315-97e9-0562230ecc19","role":"assigned"},{"agentId":"b4730d7f-c54d-4736-8a04-c6203aa2fd49","role":"assigned"},{"agentId":"ab328d90-c307-4771-a3b6-6c56089c8506","role":"assigned"},{"agentId":"1ff94b51-3e17-4a39-8543-7715d1ff0f80","role":"assigned"}] +attachments: [] +createdBy: {"kind":"agent","agent_id":"fe887179-933f-47d4-960f-c3b06827f86c"} +updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} +createdAt: 1788795096659 +updatedAt: 1788797485001 +version: 4 +--- +Cycle complet demandé par l’utilisateur. Corriger : (1) exposer les tools MCP cross-project dans l’éditeur de permissions agent/projet et dans les templates ; (2) permettre d’autoriser précisément idea_project_list/read_context/list_agents/ask_agent/cancel_agent selon le catalogue canonique ; (3) persister et réafficher correctement defaultContactable dans TemplateEditor après save/reopen ; (4) conserver la permission agent Contactable depuis d’autres projets dans Permissions ; (5) tests frontend/backend/transport/persistance, QA complète ; (6) intégration Git puis nouvelle AppImage clairement publiée à la place de l’ancienne artefact visible. \ No newline at end of file diff --git a/.ideai/tickets/268/carnet.md b/.ideai/tickets/268/carnet.md new file mode 100644 index 00000000..122ac225 --- /dev/null +++ b/.ideai/tickets/268/carnet.md @@ -0,0 +1,22 @@ +--- +issueRef: "#268" +version: 4 +updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} +updatedAt: 1788796144919 +--- +# Ticket #268 - reprise permissions inter-projets + +Demande utilisateur: reprendre après erreur d'agent et livrer le cycle complet + rebuild AppImage. + +Constats transmis par DevBackend: +- Le panneau permissions agent expose deja la case `Contactable depuis d'autres projets` dans `frontend/src/features/permissions/PermissionsPanel.tsx`. +- Les tools inter-projets `idea_project_ask_agent` et `idea_project_cancel_agent` ne sont pas dans `frontend/src/features/permissions/mcpToolGroups.ts`, donc l'UI ne permet pas de les autoriser. +- Deux AppImages `0.3.0` existent; celle a la racine est ancienne (17 aout), celle de `.appimage-build/...` plus recente (7 septembre) contient seulement une partie. + +Definition of done: +- Template: la case contactable est persistée après save/reopen. +- Permissions agent projet: contactable configurable et persistant. +- Permissions MCP IdeA: les tools inter-projets sont visibles/configurables. +- Tests QA reels verts. +- Git gère branche/commit/merge local. +- AppImage reconstruite et l'ancienne AppImage visible a la racine remplacée explicitement. \ No newline at end of file diff --git a/.ideai/tickets/268/issue.md b/.ideai/tickets/268/issue.md new file mode 100644 index 00000000..2fdbd8a6 --- /dev/null +++ b/.ideai/tickets/268/issue.md @@ -0,0 +1,17 @@ +--- +id: "b8510b67-2378-4292-9f46-83fb3988ac63" +number: 268 +title: "Corriger permissions MCP inter-projets, contactable template/agent et rebuild AppImage" +status: "closed" +priority: "high" +sprint: null +links: [{"target":"#267","kind":"duplicates"}] +agentRefs: [] +attachments: [] +createdBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} +updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"} +createdAt: 1788795950006 +updatedAt: 1788796144919 +version: 4 +--- +Reprise demandée par l'utilisateur. Problèmes à corriger: (1) les tools MCP inter-projets idea_project_ask_agent et idea_project_cancel_agent ne sont pas exposés dans les groupes de l'éditeur MCP; (2) dans l'éditeur de template, la case contactable depuis d'autres projets est visible mais ne persiste pas après save/reopen; (3) vérifier que les permissions de l'agent projet permettent de configurer tools MCP et contactable; (4) cycle complet QA vert; (5) reconstruire l'AppImage et remplacer explicitement l'ancienne AppImage visible à la racine si validation OK. \ No newline at end of file diff --git a/.ideai/tickets/counter.json b/.ideai/tickets/counter.json index 32bd3a58..c771f694 100644 --- a/.ideai/tickets/counter.json +++ b/.ideai/tickets/counter.json @@ -1,3 +1,3 @@ { - "nextNumber": 267 + "nextNumber": 269 } \ No newline at end of file diff --git a/.ideai/tickets/index.json b/.ideai/tickets/index.json index a6e2b828..daf34a8f 100644 --- a/.ideai/tickets/index.json +++ b/.ideai/tickets/index.json @@ -3618,6 +3618,40 @@ "agent_id": "a6c6ea12-bfc6-4bdc-8031-324102dfa34d" }, "updatedAt": 1788793585703 + }, + { + "issueRef": "#267", + "path": "267", + "title": "Corriger permissions cross-project agents/templates et reconstruire l’AppImage", + "status": "qa", + "priority": "critical", + "sprint": null, + "assignedAgentIds": [ + "fe887179-933f-47d4-960f-c3b06827f86c", + "8f7da528-58df-4315-97e9-0562230ecc19", + "b4730d7f-c54d-4736-8a04-c6203aa2fd49", + "ab328d90-c307-4771-a3b6-6c56089c8506", + "1ff94b51-3e17-4a39-8543-7715d1ff0f80" + ], + "createdBy": { + "kind": "agent", + "agent_id": "fe887179-933f-47d4-960f-c3b06827f86c" + }, + "updatedAt": 1788797485001 + }, + { + "issueRef": "#268", + "path": "268", + "title": "Corriger permissions MCP inter-projets, contactable template/agent et rebuild AppImage", + "status": "closed", + "priority": "high", + "sprint": null, + "assignedAgentIds": [], + "createdBy": { + "kind": "agent", + "agent_id": "a6c6ea12-bfc6-4bdc-8031-324102dfa34d" + }, + "updatedAt": 1788796144919 } ] } \ No newline at end of file