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,283 @@
# Plan d'Implémentation - Intégration ActionExecutor/WorkflowPipeline
**Auteur :** Dom, Alice Kiro
**Date :** 20 décembre 2024
- [ ] 1. Créer ExecutionEngine - Orchestrateur Central
- [ ] 1.1 Implémenter la classe ExecutionEngine
- Coordonner WorkflowPipeline, ActionExecutor, TargetResolver
- Gérer le pipeline d'exécution complet
- Intégrer la gestion d'erreurs et les métriques
- _Exigences: 1.1, 1.2, 1.3_
- [ ] 1.2 Implémenter execute_workflow_step()
- Pipeline complet : contexte → match → action → exécution → résultat
- Gestion des cas : no_match, workflow_complete, erreurs
- _Exigences: 1.1, 1.5_
- [ ] 1.3 Implémenter _execute_action_integrated()
- Résolution de cible intégrée si nécessaire
- Exécution physique avec contexte
- Capture des métriques de performance
- _Exigences: 1.2, 4.1, 4.2_
- [ ]* 1.4 Écrire des tests de propriété pour l'intégration de base
- **Propriété 1: Intégration WorkflowPipeline-ActionExecutor**
- **Propriété 2: Ordre de résolution de cible**
- **Valide: Exigences 1.1, 1.2**
- [ ] 2. Implémenter ExecutionContextManager
- [ ] 2.1 Créer la classe ExecutionContextManager
- Gestion du cache de contexte par workflow
- Intégration avec VariableManager et HistoryTracker
- _Exigences: 2.1, 2.2, 2.3_
- [ ] 2.2 Implémenter prepare_execution_context()
- Créer contexte riche avec état, variables, historique
- Validation de l'intégrité du contexte
- _Exigences: 2.1, 2.2, 2.3_
- [ ] 2.3 Implémenter update_context_after_execution()
- Mise à jour des variables modifiées
- Ajout à l'historique d'exécution
- Mise à jour des métriques
- _Exigences: 2.4_
- [ ] 2.4 Implémenter _validate_context_integrity()
- Détection et correction des incohérences
- Réparation automatique des variables et historique
- _Exigences: 2.5_
- [ ] 2.5 Créer ExecutionContext dataclass
- Tous les champs nécessaires avec métadonnées
- Méthodes utilitaires pour métriques et flags
- _Exigences: 2.1, 2.2, 2.3_
- [ ]* 2.6 Écrire des tests de propriété pour la gestion du contexte
- **Propriété 6: Contexte d'écran disponible**
- **Propriété 7: Accès aux variables du workflow**
- **Propriété 8: Historique des actions maintenu**
- **Propriété 9: Mise à jour du contexte**
- **Propriété 10: Détection d'incohérences du contexte**
- **Valide: Exigences 2.1, 2.2, 2.3, 2.4, 2.5**
- [ ] 3. Implémenter RobustnessEngine
- [ ] 3.1 Créer les stratégies de récupération spécialisées
- SpatialFallbackStrategy pour TargetNotFoundError
- SemanticVariantStrategy pour UIElementChangedError
- UIRefreshStrategy, DynamicAdaptationStrategy, RelearningStrategy
- _Exigences: 3.1, 3.2, 3.3_
- [ ] 3.2 Implémenter RobustnessEngine
- Mapping des erreurs aux stratégies
- Séquence de récupération avec logging
- _Exigences: 3.1, 3.4, 3.5_
- [ ] 3.3 Implémenter handle_execution_error()
- Classification des erreurs
- Application séquentielle des stratégies
- Escalade après échec de toutes les stratégies
- _Exigences: 3.1, 3.4_
- [ ] 3.4 Implémenter adapt_to_interface_change()
- Analyse des changements d'interface
- Adaptation du contexte et des stratégies
- _Exigences: 3.3_
- [ ]* 3.5 Écrire des tests de propriété pour la robustesse
- **Propriété 11: Récupération automatique des échecs temporaires**
- **Propriété 12: Stratégies alternatives de résolution**
- **Propriété 13: Adaptation dynamique aux changements d'interface**
- **Propriété 14: Escalade avec contexte complet**
- **Propriété 15: Logging des récupérations réussies**
- **Valide: Exigences 3.1, 3.2, 3.3, 3.4, 3.5**
- [ ] 4. Implémenter PerformanceOptimizer
- [ ] 4.1 Créer PerformanceOptimizer avec caches
- LRUCache pour analyses d'interface et exécutions d'actions
- ROIPriorityManager pour priorisation des zones
- _Exigences: 8.2, 8.3, 8.4_
- [ ] 4.2 Implémenter optimize_execution()
- Vérification du cache pour actions similaires
- Optimisation de l'analyse d'interface
- Priorisation des régions d'intérêt
- Adaptation aux ressources disponibles
- _Exigences: 8.2, 8.3, 8.4, 8.5_
- [ ] 4.3 Implémenter _optimize_interface_analysis()
- Cache d'analyse par signature d'état
- Réutilisation intelligente des analyses
- _Exigences: 8.2_
- [ ] 4.4 Implémenter _adapt_to_resources()
- Adaptation selon la pression mémoire/CPU
- Utilisation de l'accélération GPU si disponible
- _Exigences: 8.5_
- [ ]* 4.5 Écrire des tests de propriété pour les performances
- **Propriété 35: Réutilisation des analyses d'interface**
- **Propriété 36: Optimisation par cache des actions similaires**
- **Propriété 37: Priorisation des zones d'intérêt**
- **Propriété 38: Adaptation aux ressources limitées**
- **Valide: Exigences 8.2, 8.3, 8.4, 8.5**
- [ ] 5. Implémenter le système de métriques intégré
- [ ] 5.1 Étendre ExecutionEngine avec capture de métriques
- Mesure des temps de résolution et d'exécution
- Calcul des métriques de succès/échec
- _Exigences: 4.1, 4.2, 4.3, 4.4_
- [ ] 5.2 Créer MetricsCollector
- Collection automatique des métriques de performance
- Agrégation des métriques par workflow et action
- _Exigences: 4.3, 4.4_
- [ ] 5.3 Implémenter la génération de rapports
- Rapport de performance complet par workflow
- Métriques détaillées par étape
- _Exigences: 4.5_
- [ ]* 5.4 Écrire des tests de propriété pour les métriques
- **Propriété 16: Mesure du temps de résolution**
- **Propriété 17: Mesure du temps d'exécution**
- **Propriété 18: Calcul des métriques de succès**
- **Propriété 19: Enregistrement des métriques d'échec**
- **Propriété 20: Rapport de performance complet**
- **Valide: Exigences 4.1, 4.2, 4.3, 4.4, 4.5**
- [ ] 6. Implémenter l'intégration d'apprentissage
- [ ] 6.1 Créer LearningIntegration
- Enregistrement des paramètres de succès
- Renforcement des patterns de matching
- Apprentissage à partir des récupérations
- _Exigences: 5.1, 5.2, 5.3_
- [ ] 6.2 Implémenter l'adaptation des modèles
- Détection des évolutions d'interface
- Adaptation automatique des modèles de reconnaissance
- _Exigences: 5.4_
- [ ] 6.3 Implémenter l'optimisation basée sur les patterns
- Détection des patterns récurrents
- Optimisation des stratégies de résolution
- _Exigences: 5.5_
- [ ]* 6.4 Écrire des tests de propriété pour l'apprentissage
- **Propriété 21: Enregistrement des paramètres de succès**
- **Propriété 22: Renforcement des patterns de matching**
- **Propriété 23: Apprentissage à partir des récupérations**
- **Propriété 24: Adaptation des modèles aux évolutions d'interface**
- **Propriété 25: Optimisation basée sur les patterns récurrents**
- **Valide: Exigences 5.1, 5.2, 5.3, 5.4, 5.5**
- [ ] 7. Implémenter le système de traçabilité et audit
- [ ] 7.1 Créer AuditTrailManager
- Création d'enregistrements d'audit détaillés
- Enregistrement complet des actions et paramètres
- _Exigences: 6.1, 6.2_
- [ ] 7.2 Implémenter la documentation du raisonnement
- Capture des décisions prises par le système
- Explication du raisonnement pour chaque choix
- _Exigences: 6.3_
- [ ] 7.3 Implémenter la capture du contexte d'erreur
- Contexte complet pour toutes les erreurs
- Stack traces avec métadonnées d'exécution
- _Exigences: 6.4_
- [ ] 7.4 Implémenter la génération de traces complètes
- Trace complète pour audit de bout en bout
- Corrélation entre toutes les étapes d'exécution
- _Exigences: 6.5_
- [ ]* 7.5 Écrire des tests de propriété pour la traçabilité
- **Propriété 26: Création d'enregistrements d'audit**
- **Propriété 27: Enregistrement complet des actions**
- **Propriété 28: Documentation du raisonnement**
- **Propriété 29: Capture du contexte d'erreur**
- **Propriété 30: Trace complète pour audit**
- **Valide: Exigences 6.1, 6.2, 6.3, 6.4, 6.5**
- [ ] 8. Implémenter le système d'extensibilité
- [ ] 8.1 Créer l'architecture de plugins
- Interface pour nouveaux types d'actions
- Système de plugins pour stratégies personnalisées
- _Exigences: 7.1, 7.2_
- [ ] 8.2 Implémenter le support des post-conditions personnalisées
- Framework pour définir des post-conditions spécifiques
- Validation automatique des post-conditions
- _Exigences: 7.3_
- [ ] 8.3 Implémenter le support des métriques personnalisées
- Framework pour ajouter de nouvelles métriques
- Intégration avec le système de métriques existant
- _Exigences: 7.4_
- [ ]* 8.4 Écrire des tests de propriété pour l'extensibilité
- **Propriété 31: Intégration de nouveaux types d'actions**
- **Propriété 32: Support des stratégies personnalisées**
- **Propriété 33: Définition de post-conditions personnalisées**
- **Propriété 34: Ajout de métriques personnalisées**
- **Valide: Exigences 7.1, 7.2, 7.3, 7.4**
- [ ] 9. Créer les modèles de données complets
- [ ] 9.1 Implémenter StepExecutionResult
- Résultat complet avec tous les champs nécessaires
- Méthodes de classe pour différents types de résultats
- _Exigences: 1.3, 4.5, 6.5_
- [ ] 9.2 Implémenter ActionExecutionResult
- Résultat détaillé d'exécution d'action
- Métriques et contexte intégrés
- _Exigences: 1.3, 4.2_
- [ ] 9.3 Implémenter RecoveryResult et RecoveryAttempt
- Modèles pour la gestion des récupérations
- Historique complet des tentatives
- _Exigences: 3.4, 3.5_
- [ ] 9.4 Implémenter OptimizedActionPlan
- Plan d'action optimisé avec cache et adaptations
- Métadonnées d'optimisation
- _Exigences: 8.2, 8.3, 8.5_
- [ ]* 9.5 Écrire des tests de propriété pour les modèles de données
- **Propriété 3: Capture complète des résultats**
- **Valide: Exigences 1.3**
- [ ] 10. Intégration et tests de bout en bout
- [ ] 10.1 Intégrer ExecutionEngine dans WorkflowPipeline
- Remplacer la logique d'exécution existante
- Assurer la compatibilité ascendante
- _Exigences: 1.1, 1.5_
- [ ] 10.2 Intégrer avec ActionExecutor existant
- Étendre ActionExecutor pour supporter le contexte riche
- Préserver toutes les fonctionnalités existantes
- _Exigences: 1.2, 1.4_
- [ ] 10.3 Tests d'intégration de bout en bout
- Workflows complets avec tous les composants intégrés
- Scénarios de récupération d'erreurs
- Tests de performance avec optimisations
- _Toutes les exigences_
- [ ]* 10.4 Écrire des tests de propriété pour l'intégration complète
- **Propriété 4: Gestion des échecs d'action**
- **Propriété 5: Progression automatique du workflow**
- **Valide: Exigences 1.4, 1.5**
- [ ] 11. Validation de non-régression
- [ ] 11.1 Valider que toutes les fonctionnalités WorkflowPipeline sont préservées
- Exécuter tous les tests existants de WorkflowPipeline
- Vérifier que les contrats d'API sont inchangés
- _Toutes les exigences_
- [ ] 11.2 Valider que toutes les fonctionnalités ActionExecutor sont préservées
- Exécuter tous les tests existants d'ActionExecutor
- Vérifier la compatibilité avec les actions existantes
- _Toutes les exigences_
- [ ] 11.3 Tests de performance comparatifs
- Benchmarks avant/après intégration
- Vérifier que les performances sont maintenues ou améliorées
- _Exigences: 8.1, 8.2, 8.3, 8.4, 8.5_
- [ ] 11.4 Tests de charge et stress
- Exécution parallèle de multiples workflows
- Gestion des ressources sous charge
- _Exigences: 8.5_
- [ ] 12. Point de contrôle final - S'assurer que tous les tests passent
- S'assurer que tous les tests passent, demander à l'utilisateur si des questions se posent.
## NOTES IMPORTANTES
### Préservation de la Qualité
- **L'intégration doit préserver toutes les fonctionnalités existantes**
- **Aucune régression dans WorkflowPipeline ou ActionExecutor**
- **Performances maintenues ou améliorées**
### Architecture Modulaire
- **Chaque composant doit être testable indépendamment**
- **Interfaces claires entre tous les composants**
- **Extensibilité pour futures améliorations**
### Robustesse
- **Gestion d'erreurs complète à tous les niveaux**
- **Récupération automatique des échecs temporaires**
- **Adaptation dynamique aux changements d'interface**
### Performance
- **Optimisations intelligentes avec cache**
- **Réutilisation des analyses coûteuses**
- **Adaptation aux ressources disponibles**
### Observabilité
- **Métriques complètes de performance**
- **Traçabilité complète pour audit**
- **Apprentissage intégré pour amélioration continue**