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>
330 lines
11 KiB
Markdown
330 lines
11 KiB
Markdown
# 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 |