Roadmap : lots de correction issus du diagnostic du 24/08

Ajoute ROADMAP.md et le relie depuis README.md et CLAUDE.md.

Origine : un rapport d'usage d'une session Cowork sur le profil LIMAGRAIN a
signalé 8 anomalies. Vérification faite contre le WMS réel, 4 bugs sont
confirmés et reproduits, dont un non signalé par le rapport.

Cause racine commune : entity_type est interpolé dans Context.{entity_type}
sans aucune validation, alors que le nom attendu est le TableName de l'API
Metadata et non le nom d'entité de l'AD. Container -> Containers, mais
Alias -> Alias : c'est un mapping, pas une règle de pluralisation. L'API
Metadata connaît 232 entités là où le MCP en expose 12 en dur, et la liste
documentée était fausse (Aliases n'existe pas).

Lot 1 (déblocage) : corps des erreurs HTTP remonté, routage des outils par
table explicite, projections de champs des workflows.
Lot 2 (fond) : résolution des entités via l'API Metadata, rejet des
paramètres inconnus.
Lot 3 : bornage des sorties volumineuses, documentation.

Trois propositions du rapport sont explicitement écartées, avec leur raison :
uniformisation des noms de paramètres, indexStatus sur generic_search, outil
dédié d'aide à la syntaxe.

CLAUDE.md : la section « Points ouverts » renvoie désormais vers la roadmap et
avertit des deux pièges non encore corrigés.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Arthur Ria
2026-08-24 15:39:08 +02:00
parent 0ff44f7b78
commit 1a1b9ebe03
3 changed files with 186 additions and 8 deletions
+14 -8
View File
@@ -12,6 +12,7 @@ volontaires ; les références `D1`, `D2`… de ce fichier y renvoient.
| Installer, lancer, brancher Claude Desktop | [README.md](README.md) |
| Pourquoi le code est ainsi, pièges terrain | [DECISIONS.md](DECISIONS.md) |
| Le serveur ne répond pas, lire ses logs | [MONITORING.md](MONITORING.md) |
| Ce qui reste à faire | [ROADMAP.md](ROADMAP.md) |
| Accéder aux logs du WMS | [docs/logs.md](docs/logs.md) |
| Références EasyWMS (API, entités) | [docs/](docs/) |
@@ -273,11 +274,16 @@ printf '%s\n%s\n%s\n' '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"
## Points ouverts
- **`select_expression`** : projections en erreur de compilation côté serveur
(D13). Principal irritant restant.
- **Historique des shipment templates** : hors de portée, les logs concernés
n'existent pas sur l'hôte joignable (D16).
- **Logs chargés intégralement en mémoire** : coûteux sur les gros fichiers
([docs/logs.md](docs/logs.md) §6).
- **Déploiement sur VM par SSH** : non finalisé. L'exécutable est validé, la
configuration SSH reste à faire.
Voir [ROADMAP.md](ROADMAP.md) : lots de correction planifiés, cause racine
commune (résolution `Name` -> `TableName` des entités), et propositions
explicitement écartées.
⚠️ Deux pièges connus et non encore corrigés, à garder en tête en attendant le
lot 1 :
- `entity_type` est interpolé sans validation dans `Context.{entity_type}`. Le
nom attendu est le `TableName` de l'API Metadata, pas le nom d'entité de l'AD
(`Container` -> `Containers`, mais `Alias` -> `Alias`). Un mauvais nom donne un
HTTP 500 dont le détail est aujourd'hui perdu.
- `get_entity_metadata` et `list_log_files` sont listés dans `tools/list` mais
non routés dans `src/index.js` : ils renvoient `Unknown tool`.