Files
IdeA/.ideai/memory/ticket284-cross-project-contact-plugin-assignment.md

29 lines
2.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
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.