chore(tickets): sync store local — #307 QA verte finale backend+frontend, merge develop e1dbe56 (branche fix/307-startup-ghost-states-reconciliation commit 57cf825), carnet v7 section Git; AppImage rebuild 14:21 déjà formalisée v0.46.0 (commit dédié 99b400a + tag annoté, artefact sha256 vérifié identique au contenu develop post-merge — pas de nouveau tag); tickets 299-307 + index/counter + #296 carnet/issue; attachments/ et scripts/ hors périmètre; aucun push
This commit is contained in:
119
.ideai/tickets/300/carnet.md
Normal file
119
.ideai/tickets/300/carnet.md
Normal file
@ -0,0 +1,119 @@
|
||||
---
|
||||
issueRef: "#300"
|
||||
version: 4
|
||||
updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
|
||||
updatedAt: 1788984710401
|
||||
---
|
||||
# Ticket #300 - Plugins: tools MCP Unity non catalogues malgre skills visibles
|
||||
|
||||
## Signalement
|
||||
Dans le projet UnitySoundTool, le plugin Unity est actif et ses skills sont visibles par les agents, mais les tools MCP du plugin ne le sont pas. La surface indique: `Aucun tool MCP plugin catalogue.`
|
||||
|
||||
## Cadrage UX
|
||||
La surface ne doit pas confondre toutes les absences:
|
||||
- Plugin sans tool MCP: `Aucun tool MCP fourni` / `Le plugin Unity est actif, mais il ne fournit aucun tool MCP.`
|
||||
- Tools en erreur: `Tools MCP indisponibles` + `Reessayer` + `Voir les details`.
|
||||
- Tools masques par permissions: `Tools MCP non autorises` + action `Configurer les permissions`.
|
||||
- Catalogue perime/reload requis: `Rechargement necessaire` + `Recharger le plugin`.
|
||||
- Pendant resolution initiale: `Chargement des tools MCP...`, pas d'etat vide premature.
|
||||
|
||||
## Cadrage Architect
|
||||
Les skills visibles valident seulement `contributes.skills` + assignation skill. Le message vide vient du panneau MCP quand le catalogue statique `plugins.installed[*].contributes.mcpServers[*].tools` est vide partout.
|
||||
|
||||
Contrat:
|
||||
- Les tools MCP plugin se declarent via `contributes.mcpServers[].tools[]` dans le manifeste, pas via `activate(ctx)`.
|
||||
- `tools[]` est le catalogue statique UI/assignation; l'execution reelle vient du serveur MCP et de `tools/list`.
|
||||
- Ref stable d'assignation: `pluginId/serverId/toolName`.
|
||||
|
||||
Arbitrage correctif:
|
||||
1. Si le manifeste Unity installe n'a pas `contributes.mcpServers[].tools[]`: corriger/reinstaller le plugin Unity, pas IdeA core.
|
||||
2. Si la source a `tools[]` mais l'UI ne les voit pas apres reload: bug IdeA install/reload/registry/DTO frontend.
|
||||
3. Si l'UI liste les tools mais l'agent ne les voit pas apres assignation: bug distinct injection/effective catalogue agent-facing ou cache provider/CLI.
|
||||
|
||||
## Git IdeA
|
||||
Branche de diagnostic: `fix/300-unity-mcp-tools-uncatalogued` depuis `develop` @ `941db62`. Aucun correctif IdeA requis.
|
||||
|
||||
## Diagnostic DevBackend - 2026-09-09
|
||||
|
||||
### Verdict
|
||||
Probleme de donnees du plugin Unity, pas bug IdeA install/reload/registry/DTO. Aucun code IdeA modifie.
|
||||
|
||||
### Preuves
|
||||
- SoundTool active `com.idea.unity-developer-tools` dans `.ideai/project-plugins.json`; les six skills sont assignes, tandis que les tableaux `tools` de tous les agents etaient vides.
|
||||
- Le registre global IdeA marquait le plugin `enabled`, sans erreur ni restart requis, et pointait vers la source packagee:
|
||||
`/home/anthony/Documents/Projects/UnityPlugin/plugins/unity-developer-tools/build/idea-install/unity-developer-tools`.
|
||||
- Les manifestes source, package prepare et installe avaient le meme SHA-256
|
||||
`e7410c8ec6c3ceefef4d4ed5ba9cf227f86e5dea272fcbbade48a9c9560d23ab`.
|
||||
- Dans ces trois manifestes, `contributes.mcpServers[0]` declarait correctement le serveur `unity-developer-tools.tools`, mais omettait `tools[]`.
|
||||
- Le serveur MCP installe fonctionnait: un appel reel `tools/list` retournait huit tools:
|
||||
`unity_detect_project`, `unity_audit_project`, `unity_run_editmode_tests`,
|
||||
`unity_run_playmode_tests`, `unity_summarize_tests`, `unity_benchmark_report`,
|
||||
`unity_compare_cpu_gpu`, `unity_verify_architecture`.
|
||||
- Le panneau frontend derive volontairement son catalogue de
|
||||
`installed[*].contributes.mcpServers[*].tools`; une liste absente donne donc
|
||||
exactement `Aucun tool MCP plugin catalogue.`
|
||||
- Le domaine et le DTO IdeA conservent fidelement cette liste. Le test existant
|
||||
`validates_mcp_server_without_static_tool_metadata_for_compatibility` confirme
|
||||
qu'une omission est valide pour compatibilite et produit une liste statique vide.
|
||||
|
||||
### Validation IdeA
|
||||
- `cargo test -p application validates_mcp_server_without_static_tool_metadata_for_compatibility`: vert, 1 test passe.
|
||||
- Aucun test ou correctif supplementaire IdeA n'est justifie: le contrat existant est respecte de bout en bout.
|
||||
|
||||
## Diagnostic DevFrontend - 2026-09-09
|
||||
|
||||
### Verdict
|
||||
Aucun correctif frontend IdeA ne doit etre applique pour le cas UnitySoundTool actuel. Le message est emis parce que le DTO contient effectivement zero declaration statique `tools[]`; il ne resulte ni d'un filtrage de permissions frontend, ni d'une perte dans l'adapter Tauri.
|
||||
|
||||
### Chaine et semantique confirmees
|
||||
- `McpToolPermissionsPanel` appelle `useProjectPlugins(projectId)`.
|
||||
- Le hook appelle uniquement `PluginGateway.listProjectSettings`, implemente par `plugin_list_project_settings` dans l'adapter Tauri.
|
||||
- La reponse `ProjectPluginSettingsView` transporte sans transformation `settings` et les manifestes valides `installed`.
|
||||
- `PluginMcpToolsEditor` construit ses lignes exclusivement depuis `installed[*].contributes.mcpServers[*].tools[]`.
|
||||
- Le compteur `cataloguedCount` porte sur tous les plugins installes, pas seulement ceux actifs dans le projet. Le texte `Aucun tool MCP plugin catalogue.` signifie donc exactement: aucun manifeste installe ne declare de metadata statique de tool, et aucune assignation orpheline n'est presente pour l'agent selectionne.
|
||||
- Les skills visibles ne prouvent que la presence de `contributes.skills`; leur affichage est independant de `mcpServers[].tools[]`.
|
||||
|
||||
## Correction UnityPlugin - 2026-09-09
|
||||
Prise en charge par le projet UnityPlugin, ticket miroir local `#13`, ferme apres QA.
|
||||
|
||||
Fichier modifie et committe localement:
|
||||
- `/home/anthony/Documents/Projects/UnityPlugin/plugins/unity-developer-tools/idea-plugin.json`: ajout de `contributes.mcpServers[0].tools[]` avec les 8 tools statiques.
|
||||
|
||||
Tools catalogues:
|
||||
- `unity_detect_project`
|
||||
- `unity_audit_project`
|
||||
- `unity_run_editmode_tests`
|
||||
- `unity_run_playmode_tests`
|
||||
- `unity_summarize_tests`
|
||||
- `unity_benchmark_report`
|
||||
- `unity_compare_cpu_gpu`
|
||||
- `unity_verify_architecture`
|
||||
|
||||
Commandes validees depuis `plugins/unity-developer-tools`:
|
||||
- `node scripts/validate-manifest.mjs`: OK
|
||||
- `node scripts/test-mcp-server.mjs`: OK, 8 tools exposes
|
||||
- `npm test`: OK
|
||||
- `npm run package:dir`: OK
|
||||
|
||||
Artefact produit:
|
||||
- `/home/anthony/Documents/Projects/UnityPlugin/plugins/unity-developer-tools/build/idea-install/unity-developer-tools`
|
||||
|
||||
Commit UnityPlugin local:
|
||||
- `c844a45` sur `fix/unity-devtools-mcp-tool-catalog`
|
||||
- Message: `fix(plugin): advertise static mcp tool catalog in manifest`
|
||||
- Aucun push distant. Merge local vers `develop` differe car la branche est empilee sur `fix/unity-devtools-mcp-node-launch`.
|
||||
|
||||
## Application UnitySoundTool - 2026-09-09
|
||||
Prise en charge par le projet UnitySoundTool, ticket local `#25`, ferme.
|
||||
|
||||
Resultat verifie:
|
||||
- Plugin `com.idea.unity-developer-tools` actif.
|
||||
- `restartRequired: false`.
|
||||
- Serveur MCP runtime `plugin:com.idea.unity-developer-tools:unity-developer-tools.tools` demarre, `error: null`.
|
||||
- Les 8 tools MCP sont catalogues dans SoundTool.
|
||||
- Verification directe du wrapper MCP package avec `initialize` puis `tools/list`: retourne les 8 tools avec schemas.
|
||||
|
||||
Note: l'installation a ete faite depuis une copie confinee sous le project root SoundTool, car IdeA refuse un chemin externe UnityPlugin pour l'installation directe (`plugin directory must remain within the requester project root`).
|
||||
|
||||
## Verdict final
|
||||
Signalement resolu par correction du manifeste UnityPlugin + repackaging + reinstall/reload dans UnitySoundTool. Pas de bug core IdeA a corriger pour ce cas.
|
||||
21
.ideai/tickets/300/issue.md
Normal file
21
.ideai/tickets/300/issue.md
Normal file
@ -0,0 +1,21 @@
|
||||
---
|
||||
id: "84508166-79fb-4ad6-92f4-4eebb8317ac6"
|
||||
number: 300
|
||||
title: "Plugins: tools MCP Unity non catalogues malgre skills visibles"
|
||||
status: "closed"
|
||||
priority: "high"
|
||||
sprint: null
|
||||
links: []
|
||||
agentRefs: []
|
||||
attachments: []
|
||||
createdBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
|
||||
updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
|
||||
createdAt: 1788983509179
|
||||
updatedAt: 1788984710401
|
||||
version: 4
|
||||
---
|
||||
Signalement utilisateur: dans le projet UnitySoundTool, le plugin Unity est bien active et les skills du plugin sont bien visibles par les agents du projet, mais les tools MCP du plugin ne le sont pas. L'interface/agent indique: `Aucun tool MCP plugin catalogue.`
|
||||
|
||||
Symptome important: les contributions skills sont detectees, donc le plugin semble installe/actif partiellement; le probleme concerne la decouverte/catalogue/reconciliation des tools MCP plugin-facing.
|
||||
|
||||
A diagnostiquer: manifeste plugin Unity, registry plugins, catalogage MCP, permissions tool MCP, reconciliation des serveurs MCP de plugin, cache provider/agent, surface humaine qui affiche l'etat `Aucun tool MCP plugin catalogue.`
|
||||
Reference in New Issue
Block a user