Files
rpa_vision_v3/.kiro/specs/rpa-critical-fixes/tasks.md
Dom a7de6a488b 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>
2026-03-31 14:04:41 +02:00

10 KiB

Plan d'Implémentation - Corrections Critiques RPA Vision V3

Auteur : Dom, Alice Kiro
Date : 20 décembre 2024

PRIORITÉ 1 - CRITIQUE (À faire immédiatement)

  • [-] 1. Intégrer ActionExecutor dans WorkflowPipeline

    • 1.1 Ajouter execute_workflow_step() à WorkflowPipeline
      • Implémenter la méthode d'exécution intégrée
      • Connecter avec TargetResolver et ActionExecutor
      • Gérer le cycle complet : match → action → exécution → résultat
      • Exigences: 1.1, 1.2, 1.4
    • 1.2 Intégrer la gestion d'erreurs dans l'exécution
      • Utiliser ErrorHandler pour toutes les erreurs d'exécution
      • Implémenter les stratégies de retry et recovery
      • Exigences: 1.3, 2.1
    • 1.3 Créer ExecutionResult avec métadonnées complètes
      • Inclure correlation_id, performance_metrics, recovery_applied
      • Assurer la traçabilité complète de l'exécution
      • Exigences: 1.4, 9.1
    • * 1.4 Écrire un test de propriété pour l'intégration WorkflowPipeline-ActionExecutor
      • Propriété 1: Intégration WorkflowPipeline-ActionExecutor
      • Valide: Exigences 1.1, 1.2
  • 2. Unifier la gestion d'erreurs avec ErrorHandler

    • 2.1 Créer les stratégies de récupération
      • SpatialFallbackStrategy pour TargetNotFoundError
      • SemanticVariantStrategy pour UIElementChangedError
      • RetryWithBackoffStrategy pour NetworkError
      • DataNormalizationStrategy pour ValidationError
      • Exigences: 2.2, 2.3
    • 2.2 Implémenter ErrorHandler centralisé
      • Mapper les types d'erreurs aux stratégies
      • Gérer l'escalade après échec des récupérations
      • Logger toutes les tentatives de récupération
      • Exigences: 2.1, 2.4, 2.5
    • 2.3 Appliquer ErrorHandler dans tous les composants critiques
      • TargetResolver, ActionExecutor, WorkflowPipeline
      • Remplacer les try/catch isolés par des appels à ErrorHandler
      • Exigences: 2.1
    • * 2.4 Écrire un test de propriété pour la gestion d'erreurs unifiée
      • Propriété 2: Gestion d'erreurs unifiée
      • Valide: Exigences 2.1, 2.2
  • 3. Corriger les imports circulaires

    • 3.1 Refactorer core/models/init.py
      • Utiliser des imports lazy avec TYPE_CHECKING
      • Créer des fonctions get_* pour les imports différés
      • Exigences: 3.2, 3.4
    • 3.2 Créer des interfaces abstraites
      • ITargetResolver, IActionExecutor, IErrorHandler
      • Découpler les composants avec des interfaces
      • Exigences: 3.3, 8.1
    • 3.3 Tester l'absence d'imports circulaires
      • Script de validation des imports
      • Test automatisé dans la CI
      • Exigences: 3.1, 3.5
    • * 3.4 Écrire un test de propriété pour l'absence d'imports circulaires
      • Propriété 3: Absence d'imports circulaires
      • Valide: Exigences 3.1, 3.3
  • 4. Standardiser les contrats de données

    • 4.1 Créer BBox standardisée avec Pydantic
      • Format exclusif (x, y, width, height)
      • Validation automatique des coordonnées
      • Méthodes de conversion from_xyxy(), to_tuple()
      • Exigences: 4.1, 4.4
    • 4.2 Standardiser les timestamps avec datetime
      • Remplacer tous les strings par datetime objects
      • Créer DataConverter.ensure_datetime()
      • Exigences: 4.2, 4.5
    • 4.3 Standardiser les IDs en strings
      • Convertir tous les IDs numériques en strings
      • Validation avec Pydantic
      • Exigences: 4.3, 4.4
    • 4.4 Migrer tous les composants vers les nouveaux contrats
      • UIElement, ScreenState, ResolvedTarget
      • Assurer la compatibilité ascendante pendant la migration
      • Exigences: 4.1, 4.2, 4.3
    • * 4.5 Écrire des tests de propriété pour la cohérence des contrats
      • Propriété 4: Cohérence des contrats de données BBox
      • Propriété 5: Cohérence des timestamps
      • Valide: Exigences 4.1, 4.2

PRIORITÉ 2 - IMPORTANT (Cette semaine)

  • 5. Optimiser les performances

    • 5.1 Implémenter le cache de l'index spatial
      • Cache par signature d'écran dans TargetResolver
      • Éviter la reconstruction à chaque résolution
      • Exigences: 5.1
    • 5.2 Implémenter le lazy loading des embeddings
      • WeakValueDictionary pour le cache des embeddings
      • Chargement à la demande depuis le disque
      • Exigences: 5.2
    • 5.3 Implémenter le cache des modèles ML
      • Cache persistant des modèles chargés
      • Éviter les rechargements multiples
      • Exigences: 5.3
    • 5.4 Optimiser les calculs redondants
      • Cache intelligent pour les calculs de distance/alignement
      • Réutilisation entre les résolutions d'ancres
      • Exigences: 5.4
    • * 5.5 Écrire un test de propriété pour la réutilisation de l'index spatial
      • Propriété 6: Réutilisation de l'index spatial
      • Valide: Exigences 5.1
  • [-] 6. Améliorer la gestion mémoire

    • 6.1 Implémenter EffectiveLRUCache
      • Limites de taille ET de mémoire effectives
      • Éviction basée sur l'utilisation mémoire réelle
      • Exigences: 6.1
    • 6.2 Créer MemoryManager pour le nettoyage automatique
      • Surveillance de l'utilisation mémoire
      • Nettoyage préventif à 80% du seuil
      • Registry des ressources avec cleanup automatique
      • Exigences: 6.2, 6.4
    • 6.3 Implémenter la libération des ressources GPU
      • Tracking des allocations GPU
      • Cleanup automatique après utilisation
      • Exigences: 6.3
    • 6.4 Ajouter le cleanup à l'arrêt du système
      • Libération propre de toutes les ressources
      • Garbage collection forcé
      • Exigences: 6.5
    • * 6.5 Écrire des tests de propriété pour la gestion mémoire
      • Propriété 7: Limites effectives des caches LRU
      • Propriété 8: Libération des ressources GPU
      • Valide: Exigences 6.1, 6.3
  • [-] 7. Sécuriser le système

    • 7.1 Forcer la configuration sécurisée en production
      • Validation des clés de chiffrement non-par-défaut
      • Refus de démarrage avec configuration insécurisée
      • Exigences: 7.1, 7.5
    • 7.2 Implémenter la validation des inputs utilisateur
      • Protection contre les injections SQL/NoSQL
      • Validation des chemins de fichiers
      • Sanitization des données loggées
      • Exigences: 7.2, 7.3, 7.4
    • * 7.3 Écrire un test de propriété pour la validation des inputs
      • Propriété 9: Validation des inputs de sécurité
      • Valide: Exigences 7.2

PRIORITÉ 3 - AMÉLIORATION (Prochaine itération)

  • 8. Découpler les composants

    • 8.1 Implémenter l'injection de dépendances
      • Container DI simple pour les composants principaux
      • Configuration des dépendances via interfaces
      • Exigences: 8.2
    • 8.2 Créer des interfaces abstraites complètes
      • Toutes les interactions inter-composants via interfaces
      • Faciliter le mocking pour les tests
      • Exigences: 8.1, 8.3
    • * 8.3 Écrire un test de propriété pour les interfaces abstraites
      • Propriété 10: Interfaces abstraites pour le découplage
      • Valide: Exigences 8.1
  • 9. Améliorer l'observabilité

    • 9.1 Implémenter les correlation IDs
      • UUID unique pour chaque opération
      • Propagation à travers tous les composants
      • Exigences: 9.1
    • 9.2 Standardiser les niveaux de logging
      • Cohérence des niveaux DEBUG/INFO/WARNING/ERROR
      • Structured logging avec contexte
      • Exigences: 9.2
    • 9.3 Ajouter les métriques de performance
      • Collecte automatique des métriques de timing
      • Métriques de succès/échec par composant
      • Exigences: 9.3
    • 9.4 Implémenter les traces d'erreur complètes
      • Stack traces avec contexte d'exécution
      • Chaînage des erreurs et récupérations
      • Exigences: 9.4
    • * 9.5 Écrire un test de propriété pour les correlation IDs
      • Propriété 11: Correlation IDs uniques
      • Valide: Exigences 9.1
  • 10. Centraliser la configuration

    • 10.1 Migrer toutes les constantes vers core/config.py
      • Identifier et migrer les constantes hardcodées
      • Grouper par domaine fonctionnel
      • Exigences: 10.1
    • 10.2 Rendre les paramètres ML configurables
      • Seuils, poids, hyperparamètres externalisés
      • Configuration par environnement
      • Exigences: 10.2
    • 10.3 Implémenter la validation de configuration
      • Validation Pydantic de toute la configuration
      • Valeurs par défaut documentées
      • Exigences: 10.3, 10.5
    • 10.4 Adapter la configuration par environnement
      • Profils dev/staging/production
      • Override automatique selon ENVIRONMENT
      • Exigences: 10.4
    • * 10.5 Écrire un test de propriété pour la centralisation des constantes
      • Propriété 12: Centralisation des constantes
      • Valide: Exigences 10.1

VALIDATION ET INTÉGRATION

  • 11. Tests de non-régression

    • 11.1 Valider que toutes les fonctionnalités existantes fonctionnent
      • Exécuter la suite de tests complète
      • Vérifier les contrats d'API existants
      • Toutes les exigences
    • 11.2 Valider les performances
      • Benchmarks avant/après les corrections
      • Assurer qu'aucune dégradation n'est introduite
      • Exigences: 5.5
    • 11.3 Tests d'intégration de bout en bout
      • Workflows complets avec les corrections appliquées
      • Scénarios réels de production
      • Toutes les exigences
  • 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é

  • Chaque correction doit préserver les fonctionnalités existantes
  • Tests de non-régression obligatoires avant chaque merge
  • Validation des performances à chaque étape

Ordre d'Exécution

  • Priorité 1 doit être complétée avant Priorité 2
  • Tests de propriétés exécutés en parallèle du développement
  • Validation continue avec les tests existants

Gestion des Risques

  • Backup des composants critiques avant modification
  • Rollback plan pour chaque correction majeure
  • Monitoring continu pendant le déploiement