Révision lot 2 : validé ; log du resolver corrigé, concurrence des appels consignée
Les vérifications attendues des quatre correctifs ont été rejouées via le protocole et passent toutes : résolution Container/Alias/Item (échec avant tout POST, 6 GET seulement), rejet des paramètres inconnus et requis manquants, garde-fous get_workflow_details/search_logs, corps STS dans les erreurs d'auth sans fuite de credential. Contrôle latéral séquentiel : la bascule EUROTRAFIC reconstruit bien la table par tenant (280 entités, 7 applications, contre 288/5 sur LIMAGRAIN). Trivialité corrigée : tableNames.size (undefined sur un tableau) -> .length dans le log de chargement du resolver. Découverte de révision consignée en point ouvert : le serveur traite les tools/call en concurrence, une bascule de profil pendant des appels en vol les fait partir sur le nouveau profil. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
+11
@@ -185,6 +185,17 @@ plus riche que `/AD/api/Application/GetAll`), `GET /healthcheck?tenantCode=` et
|
|||||||
retirer le profil) — pas un bug du code. Depuis L3.2, le corps de la réponse
|
retirer le profil) — pas un bug du code. Depuis L3.2, le corps de la réponse
|
||||||
du STS (`Tenant not found`) remonte dans les erreurs d'outils et du smoke
|
du STS (`Tenant not found`) remonte dans les erreurs d'outils et du smoke
|
||||||
test.
|
test.
|
||||||
|
- **Bascule de profil concurrente aux appels en vol** (mesuré le 25/08/2026,
|
||||||
|
révision du lot 2). Le serveur traite les `tools/call` **en concurrence** :
|
||||||
|
en envoyant une rafale de requêtes dans une même session, les réponses
|
||||||
|
reviennent dans le désordre, et un `switch_wms_profile` émis pendant que des
|
||||||
|
requêtes sont en vol les fait partir sur le nouveau profil (observé : une
|
||||||
|
requête destinée à EUROTRAFIC exécutée sur l'hôte `10.255.255.2` après la
|
||||||
|
bascule suivante). Conséquence du singleton d'état global (D8). Sans gravité
|
||||||
|
pour un usage conversationnel séquentiel, mais Claude peut émettre des appels
|
||||||
|
d'outils **en parallèle** : à traiter si un cas réel de mélange de profils
|
||||||
|
est observé (piste : sérialiser les `tools/call` ou figer le profil résolu au
|
||||||
|
début de chaque appel).
|
||||||
- **`select_expression`** : les projections via le paramètre `Select` provoquent
|
- **`select_expression`** : les projections via le paramètre `Select` provoquent
|
||||||
des erreurs de compilation côté serveur (D13). Irritant principal restant.
|
des erreurs de compilation côté serveur (D13). Irritant principal restant.
|
||||||
- **Déploiement SSH sur la VM** : l'exécutable est validé, la configuration SSH
|
- **Déploiement SSH sur la VM** : l'exécutable est validé, la configuration SSH
|
||||||
|
|||||||
@@ -70,7 +70,7 @@ async function loadResolutionMap() {
|
|||||||
resolutionMap = map;
|
resolutionMap = map;
|
||||||
tableNames = Array.from(names).sort();
|
tableNames = Array.from(names).sort();
|
||||||
cacheTimestamp = Date.now();
|
cacheTimestamp = Date.now();
|
||||||
console.error(`[EntityResolver] Cached ${tableNames.size} entities from ${appNames.length} application(s)`);
|
console.error(`[EntityResolver] Cached ${tableNames.length} entities from ${appNames.length} application(s)`);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user