Files
IdeA/.ideai/tickets/297/carnet.md

6.9 KiB

issueRef, version, updatedBy, updatedAt
issueRef version updatedBy updatedAt
#297 6
kind agent_id
agent a6c6ea12-bfc6-4bdc-8031-324102dfa34d
1788979147782

Ticket #297 - Unifier Skills et MCP tools

Demande

  • Supprimer la saisie manuelle du nom exact pour les tools MCP de plugins.
  • Fournir une liste cochable des tools MCP de plugins, comme pour les skills.
  • Regrouper tous les skills dans un menu Skills unique.
  • Creer un menu MCP dedie regroupant tools MCP IdeA et plugins.
  • Retirer skills plugin et tools MCP du menu agent.

Cadrage UX

  • Navigation projet: Skills, MCP, Permissions.
  • Permissions reste reserve aux permissions systeme/sandbox.
  • Skills: liste cochable unique, groupee par origine/projet/global/plugin.
  • MCP: liste cochable unique, sections IdeA et Plugins, groupes par plugin/serveur si utile.
  • Les items orphelins/indisponibles restent visibles et retirables.

Cadrage architecture

  • Ne pas fusionner les stores persistants.
  • Skills IdeA: Agent.skills via SkillGateway.
  • Skills plugin/tools plugin: .ideai/project-plugins.json via PluginGateway.
  • Tools MCP IdeA: .ideai/mcp-tool-permissions.json via PermissionGateway.
  • UI: ne plus appeler l'assignation plugin tool avec un nom non catalogue.

Etat

  • Ticket cree et passe inProgress par Main.
  • Cadrage UX et Architect obtenu.
  • Memoire durable: ticket297-skills-mcp-unified-surfaces.

Implementation DevFrontend

  • Retire la surface de capacites de la fiche agent et supprime AgentPluginCapabilities.tsx, y compris l'ajout libre d'un nom exact de tool MCP.
  • Etend le panneau Skills existant avec une cible agent, une recherche et une liste cochable unique groupee IdeA / Plugins; conserve l'edition CRUD du catalogue natif en dessous.
  • Ajoute un panneau projet MCP, disponible dans les menus desktop et web, avec le defaut projet et les agents comme cibles.
  • Conserve l'editeur des tools MCP IdeA via PermissionGateway et ajoute les tools MCP plugins catalogues via PluginGateway, groupes par plugin/serveur.
  • Les references natives/plugin absentes du catalogue restent affichees comme Indisponible et sont retirables. Un serveur plugin sans mcpServers[].tools ne propose aucune saisie libre; ses anciennes assignations deviennent des tombstones retirables.
  • Permissions est maintenant reserve aux permissions systeme/sandbox.
  • Le raccourci de Parametres > Plugins ouvre Skills et le texte renvoie vers les panneaux Skills et MCP.

Fichiers frontend modifies

  • frontend/src/features/agents/AgentsPanel.tsx
  • frontend/src/features/skills/SkillsPanel.tsx
  • frontend/src/features/skills/skills.test.tsx
  • frontend/src/features/permissions/McpPanel.tsx
  • frontend/src/features/permissions/McpToolPermissionsPanel.tsx
  • frontend/src/features/permissions/McpToolPermissionsPanel.test.tsx
  • frontend/src/features/permissions/PermissionsPanel.tsx
  • frontend/src/features/permissions/index.ts
  • frontend/src/features/plugins/AgentPluginCapabilities.tsx (supprime)
  • frontend/src/features/plugins/ProjectPluginSettings.test.tsx
  • frontend/src/features/plugins/ProjectPluginsPanel.tsx
  • frontend/src/features/plugins/index.ts
  • frontend/src/features/projects/ProjectsView.tsx
  • frontend/src/features/projects/ViewPanelBody.tsx
  • frontend/src/features/projects/viewPlacement.ts
  • frontend/src/features/web/WebWorkspace.tsx
  • frontend/src/features/web/webSurfaceCatalog.ts

Verification DevFrontend

  • npm --prefix frontend run build : OK.
  • npm --prefix frontend test -- --run src/features/skills/skills.test.tsx src/features/plugins/ProjectPluginSettings.test.tsx src/features/permissions/McpToolPermissionsPanel.test.tsx : OK, 28 tests.
  • npm --prefix frontend test -- --run src/features/permissions/permissions.test.tsx src/features/projects/viewPlacement.test.ts src/features/web/webWorkspaceSession.test.ts src/features/web/webSurfaceNavigation.test.ts : OK, 24 tests.
  • git diff --check : OK.
  • Suite frontend complete executee : 1223 tests OK, 32 echecs dans 6 fichiers hors perimetre (principalement attentes historiques des menus web et tests live/conversation instables); les suites directement touchees sont vertes isolees.

Validation QA - 2026-09-09T18:36:15Z

Verdict QA: VERT pour le perimetre #297 sur feature/297-skills-mcp-unified-menus.

Audit independant:

  • Diff local relu: l'ancienne surface agent AgentPluginCapabilities est retiree de AgentsPanel et le composant supprime.
  • PermissionsPanel ne contient plus l'onglet MCP et reste dedie aux permissions systeme/sandbox.
  • SkillsPanel devient la surface d'assignation unifiee des skills IdeA + plugin, avec checkbox par agent et tombstones retirables, en conservant les stores separes (SkillGateway pour IdeA, PluginGateway pour plugins).
  • McpPanel est expose comme panneau dedie desktop/web; il regroupe les tools MCP IdeA via PermissionGateway et les tools MCP plugins catalogues via PluginGateway.
  • La saisie libre d'un nom exact de tool MCP plugin n'est plus presente dans le diff ni dans les tests cibles; les serveurs sans catalogue ne proposent que des tombstones retirables si des assignations anciennes existent.

Commandes executees et sorties utiles:

git diff --check

Sortie: aucune sortie, code 0.

npm --prefix frontend test -- --run src/features/skills/skills.test.tsx src/features/plugins/ProjectPluginSettings.test.tsx src/features/permissions/McpToolPermissionsPanel.test.tsx

Sortie utile:

Test Files  3 passed (3)
Tests  28 passed (28)
npm --prefix frontend test -- --run src/features/permissions/permissions.test.tsx src/features/projects/viewPlacement.test.ts src/features/web/webWorkspaceSession.test.ts src/features/web/webSurfaceNavigation.test.ts

Sortie utile:

Test Files  4 passed (4)
Tests  24 passed (24)
npm --prefix frontend run build

Sortie utile:

tsc --noEmit && vite build
515 modules transformed.
dist/index.html                     1.13 kB
dist/assets/index-BcSNdddW.css     49.69 kB
dist/assets/index-Cj2HhIoI.js   1,265.10 kB
built in 5.18s
npm --prefix frontend test -- --run

Sortie utile:

Test Files  6 failed | 120 passed (126)
Tests  32 failed | 1223 passed (1255)

Echecs de suite complete isoles hors perimetre #297:

  • frontend/src/features/projects/ProjectsView.ls7.test.tsx: 3 echecs conversation viewer LS7.
  • frontend/src/features/web/WebAgentCell.test.tsx: 1 echec mobile custom CLI.
  • frontend/src/features/web/WebApp.test.tsx: 3 echecs routing/pairing web.
  • frontend/src/features/web/WebDesktopWorkspace.test.tsx: 1 echec menu/dock web.
  • frontend/src/features/web/WebMenus.test.tsx: 8 echecs menus web historiques.
  • frontend/src/features/web/tickets/WebTicketsSprints.test.tsx: 16 echecs tickets/sprints web.

Conclusion: les suites directement touchees par #297 sont vertes, le build TypeScript/Vite est vert, et la suite complete ne met pas en evidence de regression dans le perimetre #297.