2.1 KiB
name, description, metadata
| name | description | metadata | ||
|---|---|---|---|---|
| ticket284-cross-project-contact-plugin-assignment | memory note ticket284-cross-project-contact-plugin-assignment |
|
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.