29 lines
2.1 KiB
Markdown
29 lines
2.1 KiB
Markdown
---
|
||
name: ticket284-cross-project-contact-plugin-assignment
|
||
description: memory note ticket284-cross-project-contact-plugin-assignment
|
||
metadata:
|
||
type: project
|
||
---
|
||
# Ticket #284 — contact cross-project et assignation plugin par agent
|
||
|
||
Le ticket #284 a été livré et mergé localement dans `develop` le 2026-09-08.
|
||
|
||
## Correctif cross-project
|
||
|
||
Cause corrigée : `correlationId` servait surtout au diagnostic, `idea_project_cancel_agent` pouvait arrêter la cible fournie sans la relier à une demande active, et la projection live-state écrivait principalement côté projet cible. Le service maintient maintenant un registre mémoire des demandes actives par projet/agent appelant + `correlationId`, refuse les corrélations vides/dupliquées, empêche la redirection d’un cancel vers une autre cible, et projette aussi l’appelant `Waiting` puis `Done` dans son propre workstate avec `correlationId` exposé.
|
||
|
||
Les tools cross-project ask/cancel restent `WriteAction` deny-by-default, mais le catalogue/erreur indique plus clairement qu’il faut autoriser `idea_project_ask_agent` / `idea_project_cancel_agent`.
|
||
|
||
## Assignation plugin par agent
|
||
|
||
L’API et la persistance existaient déjà via `.ideai/project-plugins.json` et les commandes desktop `plugin_*`. Le défaut utilisateur était surtout la découvrabilité. La surface `Settings projet > Plugins` expose désormais un bouton explicite `Attribuer aux agents`, ouvrant le panneau Agents, et la section agent affiche `Capabilities de plugins — {agent}` avec séparation skills/tools MCP.
|
||
|
||
## Validation
|
||
|
||
QA vert : cargo check ciblé, tests `orchestrator_service` 79/79, `mcp_server` 40/40, `domain live_state` 15/15, test frontend plugin settings 3/3, `npm --prefix frontend run build`, `cargo fmt --all -- --check`, `git diff --check`.
|
||
|
||
AppImage rebuilt : `target/release/bundle/appimage/IdeA_0.3.0_amd64.AppImage`.
|
||
|
||
## Réserve opérationnelle
|
||
|
||
Le binaire en cours d’exécution reste l’ancienne AppImage tant que l’utilisateur ne remplace pas `/home/anthony/Documents/IdeA_0.1.0_amd64.AppImage` et ne relance pas IdeA. Ne pas automatiser cette étape depuis une session active, car elle tue l’orchestrateur. |