chore(tickets): synchro du store local — cycle cross-project #260–#265 (cadrage/architecture/backend/UI/QA), carnets #117/#155/#185/#196/#243/#259, contextes agents, index/counter

This commit is contained in:
2026-09-07 16:55:37 +02:00
parent 3513e90101
commit 5d7ab903fe
29 changed files with 378 additions and 63 deletions

View File

@ -94,9 +94,10 @@ tu le dis.
## 4. Conventions
- **Messages de commit** : en **français**, style Conventional Commits cohérent avec
- **Messages de commit** : en **anglais**, style Conventional Commits cohérent avec
l'historique : `feat(scope): …`, `fix(scope): …`, `chore(scope): …`, `docs(scope): …`,
`refactor(scope): …`. Corps multi-ligne expliquant le **pourquoi** quand utile.
`refactor(scope): …`. Le ou les tickets sur lesquels portent le commit.
Corps multi-ligne expliquant le **pourquoi** quand utile.
- **Atomicité** : un commit = une intention cohérente. Tu sépares le code de feature de
l'état runtime (`.ideai/` conversations, layouts, manifestes) et des docs.
- **Co-author** : termine les messages de commit par

View File

@ -105,8 +105,3 @@ Si aucun ticket n'existe pour la demande de l'utilisateur, créé le. S'il exist
Mets à jour le status des tickets que tu traites: in progress, closed, QA.
Mets a jour le carnet des tickets que tu traites en cas de futur reprise de ce ticket pour éviter
de boucler plusieurs fois sur les memes soucis.
A chaque build de l'appimage, j'aimerais que tu demandes à Git d'incrémenter la version, par le tag,
du commit sur lequel à été faite l'appimage sous cette forme: vx.y.z (donc par exemple v1.0.0).
Incrémente x pour chaque build faite sur la branche main,y pour chaque build faite sur la branche develop
et z pour chaque build faite sur une autre branche.

View File

@ -101,5 +101,3 @@ Ta place dans le cycle dépend de l'enjeu :
- Avec **Architect** : dis explicitement ce que la surface exige de la donnée. Si sa
contrainte technique borne ta conception, propose une alternative plutôt que de
concéder en silence.
- En fonction des modifications à apporter, tu soulignes la necessité de répliquer les modifications
UI sur les interfaces Web PC et Web téléphone

View File

@ -1,8 +1,8 @@
---
issueRef: "#117"
version: 12
updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
updatedAt: 1787336067149
version: 13
updatedBy: {"kind":"user"}
updatedAt: 1788789622644
---
2026-08-21 Main
- Ticket rouvert pour livraison effective sur la branche backend dédiée `feature/117-ask-agent-sync-background-tasks` depuis `develop` @ `c1d7f6d`.

View File

@ -2,17 +2,17 @@
id: "66e80f94-780b-4856-806d-ba4b96673630"
number: 117
title: "Garantir la synchronie métier de idea_ask_agent malgré les background tasks"
status: "inProgress"
status: "closed"
priority: "critical"
sprint: null
links: []
agentRefs: [{"agentId":"a6ced819-b893-4213-b003-9e9dc79b9641","role":"assigned"}]
attachments: []
createdBy: {"kind":"user"}
updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
updatedBy: {"kind":"user"}
createdAt: 1785500280516
updatedAt: 1787336067149
version: 12
updatedAt: 1788789622644
version: 13
---
Constat : quand un agent `A` délègue une demande à un agent `B` via `idea_ask_agent`, `B` peut lancer une background task puis terminer son tour avant que cette tâche ne finisse. Dans ce cas, `A` peut recevoir une pseudo-réponse terminale trop tôt, alors que le travail réel n'est pas terminé.

View File

@ -1,8 +1,8 @@
---
issueRef: "#155"
version: 13
updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
updatedAt: 1786346556578
version: 14
updatedBy: {"kind":"user"}
updatedAt: 1788789622554
---
## 2026-08-06 — Reopened from user validation on AppImage
- User reports that clipboard paste in the custom CLI chat still does not work in practice.

View File

@ -2,16 +2,16 @@
id: "620bc08f-835c-483c-a9f1-59690ebf8ab5"
number: 155
title: "Custom chat: paste image/fichier depuis le clipboard dans le composer"
status: "inProgress"
status: "closed"
priority: "medium"
sprint: null
links: [{"target":"#154","kind":"dependsOn"}]
agentRefs: [{"agentId":"8f7da528-58df-4315-97e9-0562230ecc19","role":"assigned"},{"agentId":"fe887179-933f-47d4-960f-c3b06827f86c","role":"assigned"}]
attachments: []
createdBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
updatedBy: {"kind":"user"}
createdAt: 1785964740363
updatedAt: 1786346556578
version: 13
updatedAt: 1788789622554
version: 14
---
Demande utilisateur requalifiée le 2026-08-06: la custom CLI ne permet toujours pas de coller un fichier dans la barre de chat, comme dans une TUI native Claude Code ou Codex. Le scope ne doit pas rester limité au seul collage d'image: il faut couvrir au minimum les fichiers/images exposés par le clipboard et les convertir en attachments utilisables dans le composer custom, via le pipeline d'attachments existant.

View File

@ -1,8 +1,8 @@
---
issueRef: "#185"
version: 13
updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
updatedAt: 1786709806993
version: 14
updatedBy: {"kind":"user"}
updatedAt: 1788789622659
---
2026-08-13
- Constaté depuis Main que `.ideai/permissions.json` est déjà en `allow` global sur read/write/delete/executeBash.

View File

@ -2,16 +2,16 @@
id: "3eea8ad2-e8c5-4a1a-881e-dbf129aa60b0"
number: 185
title: "Codex structured sandbox: rétablir l'écriture du project root pour les agents Dev sans perdre l'accès à .git"
status: "inProgress"
status: "closed"
priority: "critical"
sprint: null
links: []
agentRefs: [{"agentId":"b4730d7f-c54d-4736-8a04-c6203aa2fd49","role":"assigned"},{"agentId":"fe887179-933f-47d4-960f-c3b06827f86c","role":"assigned"}]
attachments: []
createdBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
updatedBy: {"kind":"user"}
createdAt: 1786606428812
updatedAt: 1786709806993
version: 13
updatedAt: 1788789622659
version: 14
---
L'UI expose une policy Allow/Write globale, mais les sessions structurées Codex semblent recevoir un runtime dont les writable_roots sont limités aux racines Git enrichies. Les tests backend actuels verrouillent même que le project root ne soit pas ajouté comme writable root. Impact: Main et potentiellement DevBackend/DevFrontend ne peuvent plus modifier le code applicatif malgré une UI permissive. Objectif: réaligner la projection structured Codex et/ou le plan OS sandbox avec la policy UI voulue, en conservant l'accès Git ajouté récemment.

View File

@ -1,8 +1,8 @@
---
issueRef: "#196"
version: 6
updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
updatedAt: 1786709807009
version: 7
updatedBy: {"kind":"user"}
updatedAt: 1788789622674
---
2026-08-14
- Bug utilisateur: les grants accordes dans la page Permissions ne donnent toujours pas l'ecriture au root du projet dans la nouvelle AppImage.

View File

@ -2,16 +2,16 @@
id: "c8ee4aa6-e301-4002-af26-7ca4e537d77a"
number: 196
title: "Permissions page grants do not allow agent write access to project root"
status: "inProgress"
status: "closed"
priority: "high"
sprint: null
links: [{"target":"#185","kind":"relatesTo"}]
agentRefs: []
attachments: []
createdBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
updatedBy: {"kind":"user"}
createdAt: 1786704189602
updatedAt: 1786709807009
version: 6
updatedAt: 1788789622674
version: 7
---
Malgre le fix precedent et une nouvelle AppImage, accorder les permissions dans la page Permissions ne donne toujours pas aux agents l'acces en ecriture au root du projet. Attendu: quand les permissions correspondantes sont accordees dans la page Permissions, les agents doivent pouvoir ecrire dans le root du projet et ses chemins pertinents selon le grant.

View File

@ -1,8 +1,8 @@
---
issueRef: "#243"
version: 3
version: 7
updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
updatedAt: 1787476334103
updatedAt: 1788439323308
---
2026-08-23
- Rebuild AppImage demandé par l’utilisateur.
@ -12,3 +12,13 @@ updatedAt: 1787476334103
- Artefact produit: `/home/anthony/Documents/Projects/IdeA/target/release/bundle/appimage/IdeA_0.3.0_amd64.AppImage` (114M constatés à 11:10 le 2026-08-23).
- Git a décidé puis posé le tag local `v0.27.0` sur le commit `24c237b` de `develop` après build réussi, conformément à la règle de bump mineur sur `develop`.
- Point d’attention Git: après le build/tag, deux commits `chore` sans impact code sur l’AppImage buildée ont été ajoutés sur `develop`; le tag reste volontairement sur le commit buildé `24c237b`.
2026-09-03
- Rebuild AppImage redemandé par l’utilisateur.
- Skill `build-appimage` relu avant exécution.
- Git a inspecté `develop` HEAD `d7b24ad` et préparé le prochain tag local `v0.39.0` à poser sur ce commit si le build réussit.
- Build relancé avec shell propre (pollution AppImage évitée via unset `PYTHONHOME`/`PYTHONPATH`).
- Frontend build OK: `env -u PYTHONHOME -u PYTHONPATH npm --prefix frontend run build`.
- Bundle Tauri AppImage OK: `env -u PYTHONHOME -u PYTHONPATH bash -lc 'mkdir -p /tmp/idea-cargo-home && cd crates/app-tauri && CARGO_HOME=/tmp/idea-cargo-home APPIMAGE_EXTRACT_AND_RUN=1 NO_STRIP=1 ../../frontend/node_modules/.bin/tauri build --bundles appimage'`.
- Artefact produit: `/home/anthony/Documents/Projects/IdeA/target/release/bundle/appimage/IdeA_0.3.0_amd64.AppImage` (114M constatés à 14:41 le 2026-09-03).
- Git a posé le tag local annoté `v0.39.0` sur `d7b24ad`; `git tag --points-at d7b24ad` retourne `v0.39.0`. Rien poussé.

View File

@ -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: 1787475935659
updatedAt: 1787476334103
version: 3
updatedAt: 1788439323308
version: 7
---
Reconstruction demandée de l’AppImage Linux IdeA à partir de l’état courant du dépôt, en suivant le workflow validé projet. Le tag Git local de version du commit buildé doit être incrémenté selon la règle projet: x sur main, y sur develop, z sur toute autre branche.

View File

@ -1,13 +1,15 @@
---
issueRef: "#259"
version: 3
version: 5
updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
updatedAt: 1788438656514
updatedAt: 1788438757480
---
2026-09-03 Main
- Bug reproduit/qualifié: les permissions MCP d’un template semblent perdues après save puis réouverture.
- UX: pas de redesign requis; l’éditeur doit refléter l’état réellement sauvegardé.
- Architect: pas de changement de contrat large; vérifier le mapping wire alias/DTO.
- Git: a prescrit `fix/259-template-permissions-reopen` depuis `develop`, mais DevFrontend n’a pas pu créer la branche ici (`.git/index.lock: Read-only file system`). Modifs laissées localement, non pushées/non commit.
- DevFrontend: cause réelle = désalignement de normalisation frontend sur les réponses template (`defaultMcpToolPermissions`/`defaultSystemPermissions` backend non remappés vers `mcpToolPermissions`/`systemPermissions` consommés par l’UI à la réouverture). Correctif local livré avec test de régression adapter + vérifications ciblées vertes.
- En attente: verdict QA réel sur l’état local actuel, puis Git pour commit/merge si vert.
- Git: a d’abord prescrit `fix/259-template-permissions-reopen` depuis `develop`. DevFrontend n’a pas pu créer la branche dans son sandbox (`.git/index.lock: Read-only file system`), mais Git a ensuite exécuté la topologie git locale depuis sa propre session.
- DevFrontend: cause réelle = désalignement de normalisation frontend sur les réponses template (`defaultMcpToolPermissions`/`defaultSystemPermissions` backend non remappés vers `mcpToolPermissions`/`systemPermissions` consommés par l’UI à la réouverture). Correctif livré avec test de régression adapter.
- QA: vert sur l’état local actuel avec `npm test -- --run src/adapters/http/httpInvoker.test.ts src/features/templates/templates.test.tsx` et `npm run typecheck`.
- Git: a créé `fix/259-template-permissions-reopen`, commit de fix `4d34ade`, merge local `cd8bca9` dans `develop`, puis commit séparé du store tickets `d7b24ad`. Rien poussé.
- Résultat: ticket corrigé, validé QA, mergé localement dans `develop`.

View File

@ -2,7 +2,7 @@
id: "0c7d8e1b-bf25-4620-9eaa-36e545388056"
number: 259
title: "Template permissions do not persist after save"
status: "qa"
status: "closed"
priority: "high"
sprint: null
links: []
@ -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: 1788438150527
updatedAt: 1788438656514
version: 3
updatedAt: 1788438757480
version: 5
---
Dans l’éditeur de template, les permissions ajoutées semblent disparaître après sauvegarde : en revenant sur le template, les cases sont vides. Corriger la persistance/relance de l’état des permissions des templates.

View File

@ -0,0 +1,17 @@
---
issueRef: "#260"
version: 8
updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
updatedAt: 1788791628015
---
# Carnet #260
- Ticket principal cree pour la feature agents cross-project.
- Sous-tickets: #261 UX closed, #262 Architecture closed, #263 Backend QA, #264 Frontend QA, #265 QA/AppImage inProgress.
- UX #261 rendu: checkbox `Contactable depuis d’autres projets` dans Permissions agent et template, defaut decoche, texte d'aide distinct agent/template, erreur sauvegarde `La permission n’a pas pu être enregistrée. Réessayez.`
- Architect #262 rendu: identite canonique `projectId + agentId`, DTO MCP `idea_project_list`, `idea_project_read_context`, `idea_project_list_agents`, `idea_project_ask_agent`, `idea_project_cancel_agent`; runtime minimal projet ferme; reconciliation ouverture projet; queue/busy/cancel indexes par `RuntimeAgentKey(projectId, agentId)`; routage par correlationId requester/target project-scoped.
- Git: branche root `feature/260-cross-project-agents`; worktrees devs realignes; commits de lot faits puis merges locaux root sans conflit.
- Backend: commit `9895498` sur `feature/260-backend`, merge root `530ce01`; tests Main verts: `cargo fmt --check`, `cargo check -p application -p infrastructure -p backend -p app-tauri --lib`, `cargo test -p application cross_project --test orchestrator_service`, `cargo test -p infrastructure --test mcp_server`, `cargo test -p application --test template_usecases`, `cargo test -p infrastructure --test template_store`.
- Frontend: commit `8496507` sur `feature/260-frontend`, merge root `b0f8fe4`; DevFrontend annonce verts: `npm run typecheck`, `npm test -- src/features/permissions/permissions.test.tsx src/features/templates/templates.test.tsx src/adapters/http/httpInvoker.test.ts`, 48 passed.
- Git verification root apres merge: `npm run typecheck` vert + `cargo +stable check -p application -p infrastructure -p backend -p app-tauri --lib` vert.
- Etat actuel: pret pour QA complete sur branche integree; aucun push, aucun merge develop/main. Dirty restant attendu: store `.ideai/`/tickets/scripts non lies au code produit.

View File

@ -0,0 +1,17 @@
---
id: "1f6e430c-d7ca-49cb-8eac-dc885aa593ce"
number: 260
title: "Agents cross-project: MCP discovery, permissions et contact inter-projets"
status: "inProgress"
priority: "critical"
sprint: null
links: []
agentRefs: [{"agentId":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d","role":"assigned"}]
attachments: []
createdBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
createdAt: 1788773711834
updatedAt: 1788791628015
version: 8
---
Feature demandée: permettre à un agent IdeA de découvrir les projets IdeA, lire leur contexte, lister les agents explicitement contactables d’un projet avec leur contexte, puis contacter un agent d’un autre projet via MCP avec routage fiable de la réponse vers le bon agent et le bon projet. Contraintes clés: lancer un agent même si son projet n’est pas ouvert; si le projet est ouvert ensuite, l’agent doit être considéré comme déjà lancé; gérer busy/cancel/rendez-vous comme idea_ask_agent; désambiguïser les agents homonymes par projectId + agentId; exposer une permission par agent persistée aussi dans les templates.

View File

@ -0,0 +1,6 @@
---
issueRef: "#261"
version: 2
updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
updatedAt: 1788774465904
---

View File

@ -0,0 +1,17 @@
---
id: "5bbf6483-1dfa-4150-90c9-49f8e03f16e8"
number: 261
title: "Cross-project agents: cadrage UX permission agent/template"
status: "closed"
priority: "high"
sprint: null
links: [{"target":"#260","kind":"dependsOn"}]
agentRefs: [{"agentId":"757430bb-014a-40fa-b82b-f2429dab9766","role":"assigned"}]
attachments: []
createdBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
createdAt: 1788773730333
updatedAt: 1788774465904
version: 2
---
Définir la surface UI pour rendre un agent contactable depuis d’autres projets IdeA. Probable ajout d’une checkbox dans les permissions d’agent, avec libellés, comportement dans les templates, indication dans les listes d’agents contactables si nécessaire. Doit rester cohérent avec les permissions existantes et persister dans les templates.

View File

@ -0,0 +1,6 @@
---
issueRef: "#262"
version: 2
updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
updatedAt: 1788774465928
---

View File

@ -0,0 +1,17 @@
---
id: "94c6e01a-4efc-479a-9b92-d75153160390"
number: 262
title: "Cross-project agents: architecture MCP, registry projets et rendez-vous"
status: "closed"
priority: "critical"
sprint: null
links: [{"target":"#260","kind":"dependsOn"}]
agentRefs: [{"agentId":"b4730d7f-c54d-4736-8a04-c6203aa2fd49","role":"assigned"}]
attachments: []
createdBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
createdAt: 1788773730351
updatedAt: 1788774465928
version: 2
---
Cadrer les contrats backend et runtime pour: lister les projets IdeA avec contexte; lister les agents contactables d’un projet avec contexte; contacter un agent via projectId + agentId + message; lancer/reattacher un agent dans un projet fermé; réconcilier l’état lorsque le projet est ouvert ensuite; gérer busy/cancel/rendez-vous et routage de réponse vers le bon demandeur; éviter toute ambiguïté d’agents homonymes.

View File

@ -0,0 +1,29 @@
---
issueRef: "#263"
version: 14
updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
updatedAt: 1788792738864
---
# Carnet #263
Contexte implementation backend issu de #262:
- Identite canonique cross-project: `CrossProjectAgentRef { projectId, agentId }`; ne jamais router par nom.
- Tools MCP additifs: `idea_project_list`, `idea_project_read_context`, `idea_project_list_agents`, `idea_project_ask_agent`, `idea_project_cancel_agent`.
- Runtime target et busy/cancel indexes par `RuntimeAgentKey(projectId, agentId)`.
- Permissions: agent contactable cross-project par projet, templates avec default materialise a la creation d'agent.
Git:
- Lot initial committe par Git: `9895498` sur `feature/260-backend`, merge root `530ce01` dans `feature/260-cross-project-agents`.
Corrections QA:
- Homonymes ask/cancel: `crates/application/src/orchestrator/service.rs` route via l'Agent resolu par `agentId`, sans repasser par nom; `idea_project_cancel_agent` stoppe via `agentId`.
- App-tauri fixture: `crates/app-tauri/src/templates.rs` corrige `with_metadata(...)` avec `default_contactable`.
- Provider template update: `crates/domain/src/template.rs` serialise toujours `default_contactable`, y compris `false`, pour renvoyer `defaultContactable: false` au lieu de Null.
Tests verts connus:
- `cargo test -p application cross_project_ --test orchestrator_service -- --nocapture` (5 passed)
- `cargo test -p app-tauri --test dto_templates -- --nocapture` (22 passed)
- `cargo test -p app-tauri template_provider_crud_round_trips_and_update_publishes_event -- --nocapture` (1 passed)
- `cargo fmt --check`
- `cargo check -p application -p infrastructure -p backend -p app-tauri --lib`
- `cargo check -p domain -p app-tauri --lib`

View File

@ -0,0 +1,17 @@
---
id: "b31676b7-ca52-4273-b00d-c0c46cb6c8ba"
number: 263
title: "Cross-project agents: implémentation backend MCP et runtime"
status: "closed"
priority: "critical"
sprint: null
links: [{"target":"#260","kind":"dependsOn"}]
agentRefs: [{"agentId":"fe887179-933f-47d4-960f-c3b06827f86c","role":"assigned"}]
attachments: []
createdBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
createdAt: 1788773730400
updatedAt: 1788792738864
version: 14
---
Implémenter les tools MCP cross-project et la mécanique runtime validée par Architect: discovery projets/contextes, discovery agents contactables/contextes, contact agent cross-project, permission persistée, launch projet fermé, reconciliation à l’ouverture, routage project-scopé, busy/cancel. Inclure tests backend ciblés.

View File

@ -0,0 +1,25 @@
---
issueRef: "#264"
version: 8
updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
updatedAt: 1788792738961
---
# Carnet #264
Contexte UI issu de #261:
- Ajouter dans section `Permissions` agent une checkbox `Contactable depuis d’autres projets`.
- Texte aide agent: `Autorise les agents d’autres projets IdeA à solliciter cet agent via l’orchestration inter-projets. L’agent reste soumis à ses permissions et à son contexte.`
- Dans editeur de template agent, meme checkbox; texte aide template: `Les agents créés avec ce template reprendront cette permission.`
- Defaut decoche pour valeurs absentes/anciens templates/nouveaux agents.
- Creation depuis template: copier la valeur du template; modifier un template ne change pas retroactivement les agents existants.
- Erreur sauvegarde: `La permission n’a pas pu être enregistrée. Réessayez.`
- Lecture impossible: permission decochee visuellement desactivee avec `Permission indisponible pour le moment.`
Git:
- Worktree frontend dedie: `/home/anthony/Documents/Projects/IdeA/.ideai/run/8f7da528-58df-4315-97e9-0562230ecc19/worktree` sur branche `feature/260-frontend`, propre apres stash Git `pre-260 leftovers frontend`.
Blocage:
- Les tours DevFrontend echouent avant generation avec erreur Codex 400: `gpt-5.6` non supporte.
- Cause source: profil global `e9c0b04e-6506-498e-8a4a-f3713b87583d` dans `/home/anthony/.local/share/app.idea.ide/profiles.json` reste `model: gpt-5.6`.
- Pas de diff frontend produit pour #264.

View File

@ -0,0 +1,17 @@
---
id: "f9559bb0-47d4-43ef-99ce-1d81b9b8f5de"
number: 264
title: "Cross-project agents: UI permissions agents et templates"
status: "closed"
priority: "high"
sprint: null
links: [{"target":"#260","kind":"dependsOn"}]
agentRefs: [{"agentId":"8f7da528-58df-4315-97e9-0562230ecc19","role":"assigned"}]
attachments: []
createdBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
createdAt: 1788773730439
updatedAt: 1788792738961
version: 8
---
Implémenter la surface frontend validée par UX et les contrats fournis par Architect/DevBackend pour la permission contactable depuis d’autres projets, sur agents et templates. Inclure tests frontend ciblés.

View File

@ -0,0 +1,28 @@
---
issueRef: "#265"
version: 5
updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
updatedAt: 1788792738991
---
# Carnet #265
QA finale sur `feature/260-cross-project-agents`: VERT.
Commandes QA vertes:
- `cargo test -p application cross_project_ --test orchestrator_service -- --nocapture`: 5 passed, incluant homonymes ask/cancel et filtre contactable.
- `cargo test -p app-tauri --test dto_templates -- --nocapture`: 22 passed.
- `cargo test -p app-tauri template_provider_crud_round_trips_and_update_publishes_event -- --nocapture`: 1 passed.
- `cargo test -p infrastructure project_tool -- --nocapture`: 4 passed.
- `cargo test -p infrastructure --test mcp_server tools_list_advertises_the_idea_tools_with_schemas -- --nocapture`: 1 passed.
- `npm run typecheck`: vert.
- `npm test -- src/features/permissions/permissions.test.tsx src/features/templates/templates.test.tsx src/features/workstate/workstate.test.tsx src/adapters/http/httpInvoker.test.ts`: 4 files passed, 71 tests passed.
- `cargo fmt --check`: exit 0.
Rouges corriges:
- Homonymes `idea_project_ask_agent` / `idea_project_cancel_agent` ne reroutent plus par nom apres resolution UUID.
- `dto_templates` app-tauri adapte a `default_contactable`.
- `idea_template_update` provider retourne `defaultContactable: false` au lieu de Null.
Gap/risque accepte: pas de test reel multi-process/projet ferme/reconciliation; validation par tests Rust cibles, fakes applicatifs, catalogue MCP, DTO/provider template et UI frontend.
Etape suivante: Git commit/merge local puis build AppImage.

View File

@ -0,0 +1,17 @@
---
id: "e7e283b0-e774-415f-8260-ac649dc38a32"
number: 265
title: "Cross-project agents: validation QA complète et AppImage"
status: "inProgress"
priority: "critical"
sprint: null
links: [{"target":"#260","kind":"dependsOn"}]
agentRefs: [{"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: 1788773730479
updatedAt: 1788792738991
version: 5
---
Valider la feature cross-project de bout en bout: tools MCP de discovery, agents contactables, contact cross-project avec projets fermés/ouverts, homonymes, busy/cancel/routage réponse, persistence permissions agents/templates, réconciliation à l’ouverture d’un projet. Puis valider le build AppImage produit.

View File

@ -1,3 +1,3 @@
{
"nextNumber": 260
"nextNumber": 266
}

View File

@ -1487,7 +1487,7 @@
"issueRef": "#117",
"path": "117",
"title": "Garantir la synchronie métier de idea_ask_agent malgré les background tasks",
"status": "inProgress",
"status": "closed",
"priority": "critical",
"sprint": null,
"assignedAgentIds": [
@ -1496,7 +1496,7 @@
"createdBy": {
"kind": "user"
},
"updatedAt": 1787336067149
"updatedAt": 1788789622644
},
{
"issueRef": "#119",
@ -2025,7 +2025,7 @@
"issueRef": "#155",
"path": "155",
"title": "Custom chat: paste image/fichier depuis le clipboard dans le composer",
"status": "inProgress",
"status": "closed",
"priority": "medium",
"sprint": null,
"assignedAgentIds": [
@ -2036,7 +2036,7 @@
"kind": "agent",
"agent_id": "a6c6ea12-bfc6-4bdc-8031-324102dfa34d"
},
"updatedAt": 1786346556578
"updatedAt": 1788789622554
},
{
"issueRef": "#156",
@ -2483,7 +2483,7 @@
"issueRef": "#185",
"path": "185",
"title": "Codex structured sandbox: rétablir l'écriture du project root pour les agents Dev sans perdre l'accès à .git",
"status": "inProgress",
"status": "closed",
"priority": "critical",
"sprint": null,
"assignedAgentIds": [
@ -2494,7 +2494,7 @@
"kind": "agent",
"agent_id": "a6c6ea12-bfc6-4bdc-8031-324102dfa34d"
},
"updatedAt": 1786709806993
"updatedAt": 1788789622659
},
{
"issueRef": "#186",
@ -2632,7 +2632,7 @@
"issueRef": "#196",
"path": "196",
"title": "Permissions page grants do not allow agent write access to project root",
"status": "inProgress",
"status": "closed",
"priority": "high",
"sprint": null,
"assignedAgentIds": [],
@ -2640,7 +2640,7 @@
"kind": "agent",
"agent_id": "a6c6ea12-bfc6-4bdc-8031-324102dfa34d"
},
"updatedAt": 1786709807009
"updatedAt": 1788789622674
},
{
"issueRef": "#197",
@ -3279,7 +3279,7 @@
"kind": "agent",
"agent_id": "a6c6ea12-bfc6-4bdc-8031-324102dfa34d"
},
"updatedAt": 1787476334103
"updatedAt": 1788439323308
},
{
"issueRef": "#244",
@ -3497,7 +3497,7 @@
"issueRef": "#259",
"path": "259",
"title": "Template permissions do not persist after save",
"status": "qa",
"status": "closed",
"priority": "high",
"sprint": null,
"assignedAgentIds": [],
@ -3505,7 +3505,103 @@
"kind": "agent",
"agent_id": "a6c6ea12-bfc6-4bdc-8031-324102dfa34d"
},
"updatedAt": 1788438656514
"updatedAt": 1788438757480
},
{
"issueRef": "#260",
"path": "260",
"title": "Agents cross-project: MCP discovery, permissions et contact inter-projets",
"status": "inProgress",
"priority": "critical",
"sprint": null,
"assignedAgentIds": [
"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"
],
"createdBy": {
"kind": "agent",
"agent_id": "a6c6ea12-bfc6-4bdc-8031-324102dfa34d"
},
"updatedAt": 1788791628015
},
{
"issueRef": "#261",
"path": "261",
"title": "Cross-project agents: cadrage UX permission agent/template",
"status": "closed",
"priority": "high",
"sprint": null,
"assignedAgentIds": [
"757430bb-014a-40fa-b82b-f2429dab9766"
],
"createdBy": {
"kind": "agent",
"agent_id": "a6c6ea12-bfc6-4bdc-8031-324102dfa34d"
},
"updatedAt": 1788774465904
},
{
"issueRef": "#262",
"path": "262",
"title": "Cross-project agents: architecture MCP, registry projets et rendez-vous",
"status": "closed",
"priority": "critical",
"sprint": null,
"assignedAgentIds": [
"b4730d7f-c54d-4736-8a04-c6203aa2fd49"
],
"createdBy": {
"kind": "agent",
"agent_id": "a6c6ea12-bfc6-4bdc-8031-324102dfa34d"
},
"updatedAt": 1788774465928
},
{
"issueRef": "#263",
"path": "263",
"title": "Cross-project agents: implémentation backend MCP et runtime",
"status": "closed",
"priority": "critical",
"sprint": null,
"assignedAgentIds": [
"fe887179-933f-47d4-960f-c3b06827f86c"
],
"createdBy": {
"kind": "agent",
"agent_id": "a6c6ea12-bfc6-4bdc-8031-324102dfa34d"
},
"updatedAt": 1788792738864
},
{
"issueRef": "#264",
"path": "264",
"title": "Cross-project agents: UI permissions agents et templates",
"status": "closed",
"priority": "high",
"sprint": null,
"assignedAgentIds": [
"8f7da528-58df-4315-97e9-0562230ecc19"
],
"createdBy": {
"kind": "agent",
"agent_id": "a6c6ea12-bfc6-4bdc-8031-324102dfa34d"
},
"updatedAt": 1788792738961
},
{
"issueRef": "#265",
"path": "265",
"title": "Cross-project agents: validation QA complète et AppImage",
"status": "inProgress",
"priority": "critical",
"sprint": null,
"assignedAgentIds": [
"ab328d90-c307-4771-a3b6-6c56089c8506"
],
"createdBy": {
"kind": "agent",
"agent_id": "a6c6ea12-bfc6-4bdc-8031-324102dfa34d"
},
"updatedAt": 1788792738991
}
]
}