fix(orchestrator,plugins): contact cross-project corrélé + découvrabilité assignation plugin par agent — #284 (backend: registre des demandes actives clé projet/agent appelant + correlationId, refus corrélation vide/dupliquée, cancel routé après correspondance exacte sans redirection vers une autre cible, appelant projeté Waiting→Done dans le live-state de son propre projet avec correlationId exposé par idea_workstate_read, gardes RAII réconcilient l'abandon du futur, tools ask/cancel WriteAction deny-by-default dont le refus indique où activer la permission; frontend: action Attribuer aux agents depuis Settings projet > Plugins ouvrant le panneau Agents flottant/ancré/détaché, section Capabilities de plugins — {agent} explicitant attribution skills et tools MCP des plugins activés; QA verte: orchestrator_service 79/79, mcp_server 40/40, domain live_state 15/15, correlated_update_is_preserved_in_the_lean_projection 1/1, frontend ProjectPluginSettings 3 tests, npm run build frontend, cargo fmt --check, git diff --check; AppImage IdeA_0.3.0_amd64.AppImage rebuildée workflow build-appimage, validation live cross-project restant après remplacement/relance manuels; réserves: registre corrélation en mémoire non persisté, surface web unsupported, catalogue dynamique tools MCP = réserve #282)
This commit is contained in:
@ -50,6 +50,7 @@ interface SettingsViewProps {
|
||||
section: SettingsSection;
|
||||
projectId?: string;
|
||||
onSectionChange: (section: SettingsSection) => void;
|
||||
onAssignPluginCapabilities?: () => void;
|
||||
onClose: () => void;
|
||||
}
|
||||
|
||||
@ -57,6 +58,7 @@ export function SettingsView({
|
||||
section,
|
||||
projectId,
|
||||
onSectionChange,
|
||||
onAssignPluginCapabilities,
|
||||
onClose,
|
||||
}: SettingsViewProps) {
|
||||
return (
|
||||
@ -99,7 +101,10 @@ export function SettingsView({
|
||||
) : section === "deployment" ? (
|
||||
<DeploymentSettings />
|
||||
) : section === "plugins" ? (
|
||||
<PluginsPanel projectId={projectId} />
|
||||
<PluginsPanel
|
||||
projectId={projectId}
|
||||
onAssignAgents={onAssignPluginCapabilities}
|
||||
/>
|
||||
) : (
|
||||
// No `onSessionEnded`: the desktop app hosts the server and is never
|
||||
// itself a paired device, so it cannot revoke its own session.
|
||||
|
||||
Reference in New Issue
Block a user