feat: replay E2E fonctionnel — 25/25 actions, 0 retries, SomEngine via serveur

Validé sur PC Windows (DESKTOP-58D5CAC, 2560x1600) :
- 8 clics résolus visuellement (1 anchor_template, 1 som_text_match, 6 som_vlm)
- Score moyen 0.75, temps moyen 1.6s
- Texte tapé correctement (bonjour, test word, date, email)
- 0 retries, 2 actions non vérifiées (OK)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Dom
2026-03-31 14:04:41 +02:00
parent 5e0b53cfd1
commit a7de6a488b
79542 changed files with 6091757 additions and 1 deletions

View File

@@ -0,0 +1,330 @@
# Tâches : Résolution du Problème de Palette Vide Cross-Machine
## Vue d'Ensemble
Ce document détaille les tâches spécifiques pour résoudre le problème de palette vide dans le Visual Workflow Builder lorsqu'utilisé sur une machine distante.
**Auteur :** Dom, Alice, Kiro - 10 janvier 2026
## Phase 1 : Service Catalogue Configurable
### Tâche 1.1 : Modification du Service Catalogue
**Priorité :** Critique
**Estimation :** 4 heures
**Assigné :** Équipe Frontend
#### Description
Modifier `catalogService.ts` pour supporter la détection automatique d'URL et les fallbacks multiples.
#### Sous-tâches
- [ ] Ajouter interface `CatalogServiceConfig` avec URLs multiples
- [ ] Implémenter méthode `detectBackendUrl()` avec tentatives multiples
- [ ] Ajouter gestion de cache localStorage pour URL fonctionnelle
- [ ] Implémenter timeouts et retry logic
- [ ] Ajouter logging détaillé pour diagnostic
#### Critères d'Acceptation
- Service teste automatiquement : origine courante, localhost:5004, IP locale:5004
- URL fonctionnelle mise en cache pour 24h
- Timeouts de 2s par tentative maximum
- Logs détaillés des tentatives de connexion
#### Fichiers Modifiés
- `visual_workflow_builder/frontend/src/services/catalogService.ts`
### Tâche 1.2 : Configuration Environnement
**Priorité :** Haute
**Estimation :** 2 heures
**Assigné :** Équipe Frontend
#### Description
Ajouter support pour configuration via variables d'environnement et paramètres URL.
#### Sous-tâches
- [ ] Ajouter variables d'environnement `REACT_APP_CATALOG_URL`
- [ ] Support paramètre URL `?catalogUrl=...`
- [ ] Interface de configuration dans les paramètres utilisateur
- [ ] Validation des URLs de configuration
#### Critères d'Acceptation
- Variables d'environnement prises en compte au build
- Paramètres URL overrident la détection automatique
- URLs invalides rejetées avec message d'erreur
#### Fichiers Modifiés
- `visual_workflow_builder/frontend/src/services/catalogService.ts`
- `visual_workflow_builder/frontend/.env.example`
## Phase 2 : Catalogue Statique de Secours
### Tâche 2.1 : Création du Catalogue Statique
**Priorité :** Critique
**Estimation :** 6 heures
**Assigné :** Équipe Frontend
#### Description
Créer un catalogue statique avec les actions Vision UI de base pour mode hors ligne.
#### Sous-tâches
- [ ] Créer fichier `staticCatalog.ts` avec actions de base
- [ ] Définir actions : ClickAnchor, TypeText, WaitForAnchor, ExtractText, HotKey
- [ ] Ajouter métadonnées complètes (icônes, descriptions, exemples)
- [ ] Respecter interface `VWBCatalogAction` existante
- [ ] Ajouter catégories statiques avec compteurs
#### Critères d'Acceptation
- Au moins 5 actions Vision UI de base définies
- Chaque action a nom, description, icône, paramètres, exemples
- Compatible avec interface existante du catalogue
- Organisé en catégories cohérentes
#### Fichiers Créés
- `visual_workflow_builder/frontend/src/data/staticCatalog.ts`
### Tâche 2.2 : Intégration du Fallback
**Priorité :** Critique
**Estimation :** 4 heures
**Assigné :** Équipe Frontend
#### Description
Intégrer le catalogue statique dans le hook `useCatalogActions` comme fallback automatique.
#### Sous-tâches
- [ ] Modifier `useCatalogActions` pour détecter échec du service
- [ ] Basculer automatiquement vers catalogue statique
- [ ] Maintenir interface identique pour composants consommateurs
- [ ] Ajouter indicateur de mode (dynamique/statique)
- [ ] Permettre retry vers mode dynamique
#### Critères d'Acceptation
- Bascule transparente vers catalogue statique en cas d'échec
- Interface hook inchangée pour composants existants
- Indicateur visuel du mode actuel
- Possibilité de forcer retry vers mode dynamique
#### Fichiers Modifiés
- `visual_workflow_builder/frontend/src/hooks/useCatalogActions.ts`
## Phase 3 : Interface Utilisateur Améliorée
### Tâche 3.1 : Indicateurs de Statut Améliorés
**Priorité :** Moyenne
**Estimation :** 3 heures
**Assigné :** Équipe Frontend
#### Description
Améliorer les indicateurs de statut dans la palette pour informer l'utilisateur de l'état du catalogue.
#### Sous-tâches
- [ ] Ajouter icônes distinctes pour : en ligne, hors ligne, mode statique, erreur
- [ ] Tooltips explicatifs en français pour chaque état
- [ ] Badge avec nombre d'actions disponibles
- [ ] Indicateur de dernière mise à jour
- [ ] Animation de chargement pendant détection
#### Critères d'Acceptation
- Statut clairement visible en haut de la palette
- Messages en français explicatifs
- Différenciation visuelle entre modes dynamique/statique
- Information sur nombre d'actions disponibles
#### Fichiers Modifiés
- `visual_workflow_builder/frontend/src/components/Palette/index.tsx`
### Tâche 3.2 : Messages d'Erreur et Actions Correctives
**Priorité :** Moyenne
**Estimation :** 2 heures
**Assigné :** Équipe Frontend
#### Description
Ajouter messages d'erreur explicatifs et boutons d'action pour résoudre les problèmes.
#### Sous-tâches
- [ ] Messages d'erreur spécifiques : réseau, service, configuration
- [ ] Bouton "Réessayer" pour recharger le catalogue
- [ ] Bouton "Forcer re-détection" pour relancer la détection d'URL
- [ ] Lien vers documentation de dépannage
- [ ] Suggestions d'actions selon le type d'erreur
#### Critères d'Acceptation
- Messages d'erreur clairs et actionnables en français
- Boutons fonctionnels pour résoudre les problèmes
- Suggestions contextuelles selon l'erreur
- Liens vers aide et documentation
#### Fichiers Modifiés
- `visual_workflow_builder/frontend/src/components/Palette/index.tsx`
- `visual_workflow_builder/frontend/src/utils/errorMessages.ts`
## Phase 4 : Tests et Validation
### Tâche 4.1 : Tests Unitaires Service Catalogue
**Priorité :** Haute
**Estimation :** 4 heures
**Assigné :** Équipe Test
#### Description
Créer tests unitaires complets pour le service catalogue modifié.
#### Sous-tâches
- [ ] Tests de détection automatique d'URL
- [ ] Tests de fallback vers catalogue statique
- [ ] Tests de mise en cache de configuration
- [ ] Tests de gestion d'erreurs réseau
- [ ] Tests de timeouts et retry logic
#### Critères d'Acceptation
- Couverture de code > 90% pour catalogService
- Tests de tous les scénarios de fallback
- Validation des timeouts et retry
- Tests de persistance localStorage
#### Fichiers Créés
- `tests/unit/test_catalog_service_cross_machine_10jan2026.py`
### Tâche 4.2 : Tests d'Intégration Cross-Machine
**Priorité :** Critique
**Estimation :** 6 heures
**Assigné :** Équipe Test
#### Description
Créer tests d'intégration pour valider le fonctionnement sur machines distantes.
#### Sous-tâches
- [ ] Test avec backend sur localhost, frontend sur IP différente
- [ ] Test avec backend indisponible (mode statique)
- [ ] Test de basculement dynamique/statique
- [ ] Test de persistance de configuration entre sessions
- [ ] Test de performance de détection d'URL
#### Critères d'Acceptation
- Tests passent sur configuration cross-machine réelle
- Validation du mode fallback automatique
- Performance de détection < 5 secondes
- Persistance de configuration fonctionnelle
#### Fichiers Créés
- `tests/integration/test_palette_cross_machine_resolution_10jan2026.py`
### Tâche 4.3 : Tests End-to-End Palette
**Priorité :** Haute
**Estimation :** 4 heures
**Assigné :** Équipe Test
#### Description
Valider le fonctionnement complet de la palette dans différents scénarios réseau.
#### Sous-tâches
- [ ] Test palette complète avec catalogue dynamique
- [ ] Test palette avec catalogue statique uniquement
- [ ] Test basculement en temps réel
- [ ] Test interface utilisateur (boutons, messages)
- [ ] Test drag-and-drop des actions statiques
#### Critères d'Acceptation
- Palette fonctionnelle dans tous les modes
- Actions drag-and-drop correctement
- Interface utilisateur responsive et informative
- Pas de régression sur fonctionnalités existantes
#### Fichiers Créés
- `tests/integration/test_palette_complete_cross_machine_10jan2026.py`
## Phase 5 : Documentation et Déploiement
### Tâche 5.1 : Documentation Utilisateur
**Priorité :** Moyenne
**Estimation :** 2 heures
**Assigné :** Équipe Documentation
#### Description
Créer documentation pour les utilisateurs sur la résolution des problèmes de catalogue.
#### Sous-tâches
- [ ] Guide de dépannage pour palette vide
- [ ] Explication des modes dynamique/statique
- [ ] Instructions de configuration manuelle
- [ ] FAQ sur problèmes réseau courants
- [ ] Captures d'écran des indicateurs de statut
#### Critères d'Acceptation
- Documentation claire et illustrée
- Procédures de dépannage étape par étape
- FAQ couvrant les cas courants
- Intégration dans l'aide contextuelle
#### Fichiers Créés
- `docs/GUIDE_RESOLUTION_PALETTE_CROSS_MACHINE_10JAN2026.md`
### Tâche 5.2 : Tests de Validation Finale
**Priorité :** Critique
**Estimation :** 3 heures
**Assigné :** Équipe Test
#### Description
Validation finale sur environnements réels avec différentes configurations réseau.
#### Sous-tâches
- [ ] Test sur machine locale (localhost)
- [ ] Test sur réseau local (IP privée)
- [ ] Test avec VPN/proxy
- [ ] Test avec firewall restrictif
- [ ] Test de performance et stabilité
#### Critères d'Acceptation
- Fonctionnement validé sur au moins 3 configurations différentes
- Performance acceptable dans tous les cas
- Pas de régression sur fonctionnalités existantes
- Messages d'erreur appropriés pour chaque scénario
#### Fichiers Créés
- `tests/integration/test_validation_finale_cross_machine_10jan2026.py`
## Critères de Définition de Fini (DoD)
### Pour Chaque Tâche
- [ ] Code implémenté et testé
- [ ] Tests unitaires passent avec couverture > 80%
- [ ] Documentation technique mise à jour
- [ ] Revue de code effectuée
- [ ] Tests d'intégration passent
### Pour le Projet Complet
- [ ] Palette fonctionne sur machines locales et distantes
- [ ] Fallback automatique vers catalogue statique
- [ ] Messages d'erreur clairs en français
- [ ] Performance de détection < 5 secondes
- [ ] Tests passent sur au moins 2 configurations réseau
- [ ] Documentation utilisateur complète
- [ ] Aucune régression sur fonctionnalités existantes
## Métriques de Succès
1. **Taux de succès de chargement** : > 95% sur configurations testées
2. **Temps de détection d'URL** : < 5 secondes en moyenne
3. **Couverture de tests** : > 90% pour code modifié
4. **Satisfaction utilisateur** : Messages d'erreur compréhensibles
5. **Robustesse** : Fonctionnement même avec service catalogue indisponible
## Notes d'Implémentation
### Priorités
1. **Critique** : Service catalogue configurable et catalogue statique
2. **Haute** : Tests et validation cross-machine
3. **Moyenne** : Interface utilisateur améliorée et documentation
### Dépendances
- Tâche 2.2 dépend de 2.1 (catalogue statique)
- Tâches 4.x dépendent des phases 1-3
- Tâche 5.2 dépend de toutes les autres
### Risques Techniques
- Détection d'IP locale peut échouer selon configuration réseau
- localStorage peut être désactivé dans certains environnements
- Timeouts réseau variables selon infrastructure
### Points d'Attention
- Maintenir compatibilité avec interface existante
- Éviter les régressions sur fonctionnalités actuelles
- Assurer performance acceptable même en mode fallback
- Messages d'erreur toujours en français