52 lines
3.8 KiB
Markdown
52 lines
3.8 KiB
Markdown
---
|
|
issueRef: "#267"
|
|
version: 5
|
|
updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
|
|
updatedAt: 1788797669968
|
|
---
|
|
# 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. |