Files
rpa_vision_v3/docs/specs/tasks.md
Dom a27b74cf22 v1.0 - Version stable: multi-PC, détection UI-DETR-1, 3 modes exécution
- Frontend v4 accessible sur réseau local (192.168.1.40)
- Ports ouverts: 3002 (frontend), 5001 (backend), 5004 (dashboard)
- Ollama GPU fonctionnel
- Self-healing interactif
- Dashboard confiance

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 11:23:51 +01:00

27 KiB

ok # Implementation Plan - Workflow Graph Implementation

Vue d'Ensemble

Ce plan d'implémentation transforme le design en tâches concrètes et progressives. Chaque tâche construit sur les précédentes pour implémenter l'architecture complète en 5 couches du système RPA Vision V2.

Principe : Implémentation incrémentale avec tests à chaque étape. Focus sur le RPA 100% Vision avec workflows sémantiques.

Tasks

  • 1. Phase 1 : Fondations - Structures de Données

    • Créer les classes de base pour toutes les couches
    • Implémenter sérialisation/désérialisation JSON
    • Requirements: 1.4, 1.5, 2.6, 7.6, 12.1, 12.4, 12.5
  • 1.1 Créer modèle RawSession avec sérialisation JSON

    • Implémenter classe RawSession dans geniusia2/core/models/raw_session.py
    • Implémenter classes Event et Screenshot
    • Implémenter méthodes to_json() et from_json()
    • Valider schéma "rawsession_v1"
    • Requirements: 1.4, 1.5
  • * 1.2 Écrire tests unitaires pour RawSession

    • Tester sérialisation/désérialisation
    • Tester ajout d'événements et screenshots
    • Tester validation de schéma
    • Property 1: RawSession Serialization Round Trip
    • Validates: Requirements 1.4, 1.5
  • 1.3 Créer modèle ScreenState avec 4 niveaux

    • Implémenter classe ScreenState dans geniusia2/core/models/screen_state.py
    • Implémenter classes RawLevel, PerceptionLevel, ContextLevel
    • Implémenter méthodes to_json() et from_json()
    • Requirements: 2.1, 2.2, 2.3, 2.4, 2.5, 2.6
  • * 1.4 Écrire tests unitaires pour ScreenState

    • Tester création des 4 niveaux
    • Tester sérialisation/désérialisation
    • Property 2: ScreenState Multi-Level Consistency
    • Validates: Requirements 2.1, 2.2, 2.3, 2.4, 2.5
  • 1.5 Créer modèle UIElement avec embeddings duaux

    • Implémenter classe UIElement dans geniusia2/core/models/ui_element.py
    • Implémenter classes UIElementEmbeddings, VisualFeatures
    • Implémenter méthodes to_json() et from_json()
    • Requirements: 3.7
  • * 1.6 Écrire tests unitaires pour UIElement

    • Tester création avec tous les attributs
    • Tester sérialisation/désérialisation
    • Property 3: UIElement Detection Confidence Bounds
    • Validates: Requirements 3.6
  • 1.7 Créer modèle StateEmbedding

    • Implémenter classe StateEmbedding dans geniusia2/core/models/state_embedding.py
    • Implémenter méthode get_vector() pour charger .npy
    • Implémenter méthode compute_similarity()
    • Requirements: 4.7, 4.8
  • * 1.8 Écrire tests unitaires pour StateEmbedding

    • Tester chargement de vecteur
    • Tester calcul de similarité
    • Property 4: State Embedding Normalization
    • Property 5: State Embedding Similarity Symmetry
    • Property 6: State Embedding Similarity Bounds
    • Validates: Requirements 4.6, 4.7
  • 1.9 Créer modèles Workflow Graph (Node, Edge, Workflow)

    • Implémenter classes dans geniusia2/core/models/workflow_graph.py
    • Implémenter WorkflowNode, WorkflowEdge, Workflow
    • Implémenter classes de support (ScreenTemplate, Action, etc.)
    • Implémenter méthodes to_json() et from_json()
    • Requirements: 5.6, 6.7, 7.6
  • * 1.10 Écrire tests unitaires pour Workflow Graph

    • Tester création de nodes et edges
    • Tester sérialisation/désérialisation
    • Property 12: Workflow Graph Structural Validity
    • Property 18: Workflow JSON Serialization Round Trip
    • Validates: Requirements 7.2, 7.6, 12.4, 12.5
  • 2. Phase 2 : Système d'Embeddings et FAISS

    • Implémenter fusion multi-modale
    • Implémenter gestion FAISS
    • Optimiser performances
    • Requirements: 4.1, 4.2, 4.3, 4.4, 4.5, 4.6, 4.8, 12.3, 12.6, 15.1, 15.2
  • 2.1 Implémenter FusionEngine pour fusion pondérée

    • Créer classe FusionEngine dans geniusia2/core/embedding/fusion_engine.py
    • Implémenter méthode fuse() avec fusion pondérée
    • Implémenter normalisation des vecteurs
    • Configurer poids par défaut (image: 0.5, text: 0.3, title: 0.1, ui: 0.1)
    • Requirements: 4.5, 4.6
  • * 2.2 Écrire tests unitaires pour FusionEngine

    • Tester fusion pondérée
    • Tester normalisation
    • Property 17: State Embedding Component Weights Sum
    • Validates: Requirements 4.5
  • 2.3 Implémenter FAISSManager pour indexation

    • Créer classe FAISSManager dans geniusia2/core/embedding/faiss_manager.py
    • Implémenter méthode add_embedding()
    • Implémenter méthode search_similar()
    • Implémenter sauvegarde/chargement d'index
    • Gérer metadata_store pour mappings
    • Requirements: 4.8, 12.3, 12.6
  • * 2.4 Écrire tests unitaires pour FAISSManager

    • Tester ajout d'embeddings
    • Tester recherche de similarité
    • Tester sauvegarde/chargement
    • Property 11: FAISS Index Consistency
    • Validates: Requirements 4.8, 12.3, 12.6
  • 2.5 Implémenter calculs de similarité

    • Créer module geniusia2/core/embedding/similarity.py
    • Implémenter similarité cosinus
    • Implémenter distance euclidienne
    • Implémenter normalisation L2
    • Requirements: 4.7
  • * 2.6 Écrire tests de performance pour embeddings

    • Benchmarker temps de fusion (cible: <100ms)
    • Benchmarker temps de recherche FAISS (cible: <50ms)
    • Property 19: Performance Constraint - State Embedding
    • Validates: Requirements 15.1, 15.2
  • 2.7 Implémenter StateEmbeddingBuilder

    • Créer classe pour construire State Embeddings complets
    • Intégrer FusionEngine
    • Calculer embeddings pour image, texte, titre, UI
    • Sauvegarder vecteurs en .npy
    • Requirements: 4.1, 4.2, 4.3, 4.4, 4.5, 4.6
  • * 2.8 Écrire tests d'intégration pour StateEmbeddingBuilder

    • Tester construction complète depuis ScreenState
    • Tester sauvegarde de vecteurs
    • Vérifier normalisation finale
  • 3. Checkpoint - Vérifier que tous les tests passent

    • Ensure all tests pass, ask the user if questions arise.
  • 4. Phase 3 : Détection UI Sémantique

    • Intégrer VLM pour détection
    • Classifier types et rôles
    • Générer embeddings duaux
    • Requirements: 3.1, 3.2, 3.3, 3.4, 3.5, 3.6, 3.7, 15.3
  • 4.1 Créer UIDetector avec intégration VLM

    • Créer classe UIDetector dans geniusia2/core/detection/ui_detector.py
    • Intégrer client VLM (Qwen 2.5-VL via Ollama)
    • Implémenter détection de régions d'intérêt
    • Requirements: 3.1
  • 4.2 Implémenter classification de types UI

    • Ajouter méthode classify_type() dans UIDetector
    • Supporter types: button, text_input, checkbox, radio, dropdown, tab, link, icon, table_row, menu_item
    • Utiliser VLM pour classification
    • Requirements: 3.2
  • 4.3 Implémenter classification de rôles sémantiques

    • Ajouter méthode classify_role() dans UIDetector
    • Supporter rôles: primary_action, cancel, submit, form_input, search_field, etc.
    • Utiliser contexte visuel et textuel
    • Requirements: 3.3
  • 4.4 Implémenter extraction de features visuelles

    • Ajouter méthode extract_visual_features()
    • Extraire couleur dominante, forme, taille
    • Détecter présence d'icônes
    • Requirements: 3.4
  • 4.5 Implémenter génération d'embeddings duaux

    • Intégrer OpenCLIP pour embeddings
    • Générer embedding image (crop de l'élément)
    • Générer embedding texte (label détecté)
    • Sauvegarder embeddings en .npy
    • Requirements: 3.5
  • 4.6 Implémenter calcul de confiance de détection

    • Combiner confiance VLM + confiance classification
    • Filtrer éléments sous seuil (0.7)
    • Requirements: 3.6
  • * 4.7 Écrire tests unitaires pour UIDetector

    • Tester détection avec screenshots de test
    • Tester classification de types et rôles
    • Tester génération d'embeddings
    • Property 13: UIElement Role Uniqueness Per Type
    • Validates: Requirements 3.3
  • * 4.8 Écrire tests de performance pour détection UI

    • Benchmarker temps de détection (cible: <200ms)
    • Tester avec screenshots de différentes tailles
    • Validates: Requirements 15.3
  • 5. Phase 4 : Construction et Matching de Workflow Graphs COMPLÉTÉ (23 Nov 2024)

    • Construire graphes depuis sessions
    • Matcher ScreenStates contre nodes
    • Détecter patterns répétés
    • Requirements: 5.1, 5.2, 5.3, 5.4, 5.5, 9.1, 9.2, 9.3, 9.4, 9.5, 9.6, 9.7, 11.1, 11.2, 11.3, 11.4, 11.5, 11.6, 11.7
  • 5.1 Implémenter GraphBuilder pour construction automatique

    • Créer classe GraphBuilder dans rpa_vision_v3/core/graph/graph_builder.py
    • Implémenter méthode build_from_session()
    • Créer ScreenStates depuis RawSession
    • Calculer State Embeddings pour tous les états
    • Requirements: 11.1, 11.2, 11.3
  • 5.2 Implémenter détection de patterns répétés

    • Ajouter méthode _detect_patterns() dans GraphBuilder
    • Utiliser clustering sur embeddings (DBSCAN ou K-means)
    • Identifier transitions récurrentes entre clusters
    • Détecter séquences avec 3+ répétitions
    • Requirements: 11.4, 11.5, 11.6, 11.7
  • * 5.3 Écrire tests pour détection de patterns

    • Tester avec sessions simulées
    • Vérifier détection de répétitions
    • Property 16: Pattern Detection Minimum Repetitions
    • Validates: Requirements 11.7
  • 5.4 Implémenter construction de WorkflowNodes depuis patterns

    • Ajouter méthode _build_nodes() dans GraphBuilder
    • Créer ScreenTemplate depuis cluster d'états
    • Calculer embedding prototype (moyenne des embeddings)
    • Extraire contraintes de fenêtre et texte requis
    • Identifier éléments UI requis
    • Requirements: 5.1, 5.2, 5.3, 5.4, 5.5
  • * 5.5 Écrire tests pour construction de nodes

    • Tester création de templates
    • Tester calcul de prototypes
    • Property 14: Embedding Prototype Sample Count
    • Validates: Requirements 5.4
  • 5.6 Implémenter construction de WorkflowEdges depuis transitions

    • Ajouter méthode _build_edges() dans GraphBuilder
    • Identifier actions entre états (depuis événements RawSession)
    • Créer TargetSpec avec rôles sémantiques
    • Définir pre-conditions et post-conditions
    • Requirements: 6.1, 6.2, 6.3, 6.4, 6.5, 6.6
  • * 5.7 Écrire tests pour construction d'edges

    • Tester identification d'actions
    • Tester création de TargetSpec
    • Vérifier contraintes
  • 5.8 Implémenter NodeMatcher pour matching en temps réel

    • Créer classe NodeMatcher dans rpa_vision_v3/core/graph/node_matcher.py
    • Implémenter méthode match()
    • Calculer State Embedding du ScreenState actuel
    • Chercher dans FAISS les prototypes similaires
    • Valider contraintes (fenêtre, texte, UI)
    • Requirements: 9.1, 9.2, 9.3, 9.4, 9.5, 9.6, 9.7
  • * 5.9 Écrire tests pour NodeMatcher

    • Tester matching avec différents seuils
    • Tester validation de contraintes
    • Tester cas où aucun node ne match
    • Property 7: WorkflowNode Matching Consistency
    • Validates: Requirements 9.1, 9.2, 9.3, 9.4, 9.5, 9.6
  • 5.10 Implémenter méthode WorkflowNode.matches()

    • Ajouter logique de matching dans WorkflowNode
    • Vérifier contraintes de fenêtre
    • Vérifier texte requis présent
    • Vérifier éléments UI requis présents
    • Vérifier similarité embedding > seuil
    • Retourner (match: bool, confidence: float)
    • Requirements: 5.1, 5.2, 5.3, 5.4, 5.5
  • * 5.11 Écrire tests d'intégration pour workflow complet

    • Tester construction depuis session → matching
    • Vérifier graphe construit correctement
    • Vérifier matching fonctionne sur nouveaux états
  • 6. Checkpoint - Vérifier que tous les tests passent

    • Ensure all tests pass, ask the user if questions arise.
  • 6. Phase 6 : Action Execution COMPLÉTÉ (23 Nov 2024)

    • Exécuter automatiquement les workflows construits
    • Résoudre targets par rôle sémantique
    • Vérifier post-conditions
    • Requirements: 10.1, 10.2, 10.3, 10.4, 10.5, 10.6, 15.4
  • 6.1 Créer ActionExecutor pour exécution d'actions

    • Créer classe ActionExecutor dans rpa_vision_v3/core/execution/action_executor.py
    • Implémenter méthode execute_edge()
    • Vérifier pre-conditions avant exécution
    • Intégrer avec pyautogui pour automation
    • Requirements: 10.5
  • 6.2 Créer TargetResolver pour résolution de targets

    • Créer classe TargetResolver dans rpa_vision_v3/core/execution/target_resolver.py
    • Implémenter méthode resolve_target()
    • Supporter résolution by_role, by_text, by_position
    • Gérer fallback strategies
    • Requirements: 10.1
  • 6.3 Implémenter recherche d'éléments par rôle sémantique

    • Ajouter méthode _find_by_role() dans TargetResolver
    • Chercher UIElements par rôle dans ScreenState
    • Appliquer selection_policy (first, last, by_similarity)
    • Implémenter fallback par similarité visuelle
    • Requirements: 10.1
  • 6.4 Implémenter exécution d'actions mouse_click

    • Ajouter méthode _execute_click() dans ActionExecutor
    • Cliquer au centre de l'UIElement trouvé
    • Appliquer click_offset si configuré
    • Attendre wait_after_ms
    • Logger action exécutée
    • Requirements: 10.2
  • 6.5 Implémenter exécution d'actions text_input

    • Ajouter méthode _execute_text_input() dans ActionExecutor
    • Taper texte dans l'UIElement trouvé
    • Gérer caractères spéciaux
    • Attendre wait_after_ms
    • Logger action exécutée
    • Requirements: 10.3
  • 6.6 Implémenter exécution d'actions compound

    • Ajouter méthode _execute_compound() dans ActionExecutor
    • Exécuter séquence d'actions
    • Gérer repeat policies (all, until_success)
    • Logger chaque sous-action
    • Requirements: 10.4
  • 6.7 Implémenter vérification de post-conditions

    • Ajouter méthode _verify_postconditions() dans ActionExecutor
    • Attendre changement de fenêtre si requis
    • Attendre nouveaux éléments UI si requis
    • Vérifier transition vers node attendu
    • Timeout si post-conditions non satisfaites
    • Logger résultat de vérification
    • Requirements: 10.6
  • * 6.8 Écrire tests unitaires pour ActionExecutor

    • Tester recherche d'éléments par rôle
    • Tester exécution de chaque type d'action
    • Tester vérification de post-conditions
    • Property 8: WorkflowEdge Pre-Condition Validation
    • Property 15: Action Execution Timeout
    • Validates: Requirements 10.5, 10.6
  • * 6.9 Écrire tests de performance pour exécution

    • Benchmarker temps d'exécution (cible: <50ms)
    • Validates: Requirements 15.4
  • 6.10 Créer exemple d'exécution end-to-end

    • Créer script rpa_vision_v3/examples/test_phase6_simple.py
    • Tester exécution complète d'un workflow
    • Valider avec workflow réel capturé
    • Logger toutes les étapes
  • 7. Checkpoint - Vérifier que tous les tests passent

    • Ensure all tests pass, ask the user if questions arise.
  • 8. Phase 7 : Learning System COMPLÉTÉ (23 Nov 2024)

    • Gérer états d'apprentissage
    • Implémenter transitions automatiques
    • Système de feedback
    • Requirements: 8.1, 8.2, 8.3, 8.4, 8.5, 8.6
  • 8.1 Implémenter LearningManager pour états d'apprentissage

    • Créer classe LearningManager dans rpa_vision_v3/core/learning/learning_manager.py
    • Gérer dictionnaire de workflows
    • Implémenter méthode update_workflow_stats()
    • Requirements: 8.5
  • 8.2 Implémenter transitions d'états d'apprentissage

    • Ajouter méthode _check_state_transition() dans LearningManager
    • Implémenter _can_transition_to_coaching() (5 observations, similarité >0.90)
    • Implémenter _can_transition_to_auto_candidate() (10 assists, succès >0.90)
    • Implémenter _can_transition_to_auto_confirmed() (20 exécutions, succès >0.95)
    • Logger toutes les transitions avec raison
    • Requirements: 8.1, 8.2, 8.3, 8.4, 8.5
  • 8.3 Implémenter rollback automatique

    • Ajouter méthode _should_rollback() dans LearningManager
    • Détecter confiance < 0.90 en mode AUTO_CONFIRMÉ
    • Rétrograder vers COACHING
    • Logger le rollback
    • Requirements: 8.6
  • 8.4 Implémenter FeedbackProcessor

    • Créer classe FeedbackProcessor dans rpa_vision_v3/core/learning/feedback_processor.py
    • Traiter feedback utilisateur (CORRECT, INCORRECT, PARTIAL, SKIP)
    • Générer suggestions d'amélioration
    • Calculer statistiques et accuracy
    • Requirements: 8.5
  • * 8.5 Écrire tests pour LearningManager

    • Tester transitions d'états
    • Tester calcul de métriques
    • Tester rollback
    • Property 9: Learning State Monotonic Progression
    • Property 10: Learning State Rollback Condition
    • Validates: Requirements 8.1, 8.2, 8.3, 8.4, 8.6
  • * 8.6 Écrire tests d'intégration pour apprentissage complet

    • Simuler 5 observations → COACHING
    • Simuler 10 assists → AUTO_CANDIDATE
    • Simuler 20 exécutions → AUTO_CONFIRMÉ
    • Simuler baisse de confiance → rollback
  • 9. Phase 8 : Training System - Apprentissage Offline

    • Collecter données d'entraînement
    • Entraîner modèles offline
    • Valider avant production
    • Requirements: Custom (new phase)
  • 9.1 Implémenter TrainingDataCollector

    • Créer classe TrainingDataCollector dans rpa_vision_v3/core/training/training_data_collector.py
    • Enregistrer sessions, actions, screenshots, embeddings
    • Gérer corrections utilisateur
    • Export en JSON structuré
  • 9.2 Implémenter OfflineTrainer

    • Créer classe OfflineTrainer dans rpa_vision_v3/core/training/offline_trainer.py
    • Entraîner prototypes de workflows
    • Optimiser seuils de similarité
    • Validation croisée
    • Export modèle entraîné
  • 9.3 Implémenter ModelValidator

    • Créer classe ModelValidator dans rpa_vision_v3/core/training/model_validator.py
    • Valider modèle avant production
    • Calculer métriques (accuracy, precision, recall, F1)
    • Comparaison avec baseline
    • Recommandations de déploiement
  • 9.4 Créer guide d'utilisation Training System

    • Créer rpa_vision_v3/TRAINING_GUIDE.md
    • Documenter workflow en 4 phases
    • Exemples de code complets
    • Bonnes pratiques
    • Troubleshooting
  • 9.5 Créer tests Training System

    • Créer rpa_vision_v3/examples/test_training_system.py
    • Tester TrainingDataCollector
    • Tester OfflineTrainer
    • Tester ModelValidator
    • Tester workflow complet
  • 10. Checkpoint - Vérifier que tous les tests passent

    • Ensure all tests pass, ask the user if questions arise.
    • Créer classe ActionExecutor dans geniusia2/core/graph/action_executor.py
    • Implémenter méthode execute_edge()
    • Vérifier pre-conditions avant exécution
    • Requirements: 10.5
  • 7.2 Implémenter recherche d'éléments par rôle sémantique

    • Ajouter méthode _find_target_element() dans ActionExecutor
    • Chercher UIElements par rôle dans ScreenState
    • Appliquer selection_policy (first, last, by_similarity)
    • Implémenter fallback strategies
    • Requirements: 10.1
  • 7.3 Implémenter exécution d'actions mouse_click

    • Ajouter méthode _execute_click() dans ActionExecutor
    • Cliquer au centre de l'UIElement trouvé
    • Appliquer click_offset si configuré
    • Attendre wait_after_ms
    • Requirements: 10.2
  • 7.4 Implémenter exécution d'actions text_input

    • Ajouter méthode _execute_text_input() dans ActionExecutor
    • Taper texte dans l'UIElement trouvé
    • Gérer caractères spéciaux
    • Requirements: 10.3
  • 7.5 Implémenter exécution d'actions compound

    • Ajouter méthode _execute_compound() dans ActionExecutor
    • Exécuter séquence d'actions
    • Gérer repeat policies (all, until_success)
    • Requirements: 10.4
  • 7.6 Implémenter vérification de post-conditions

    • Ajouter méthode _wait_for_postconditions() dans ActionExecutor
    • Attendre changement de fenêtre si requis
    • Attendre nouveaux éléments UI si requis
    • Vérifier transition vers node attendu
    • Timeout si post-conditions non satisfaites
    • Requirements: 10.6
  • * 7.7 Écrire tests unitaires pour ActionExecutor

    • Tester recherche d'éléments par rôle
    • Tester exécution de chaque type d'action
    • Tester vérification de post-conditions
    • Property 8: WorkflowEdge Pre-Condition Validation
    • Property 15: Action Execution Timeout
    • Validates: Requirements 10.5, 10.6
  • * 7.8 Écrire tests de performance pour exécution

    • Benchmarker temps d'exécution (cible: <50ms)
    • Validates: Requirements 15.4
  • 7.9 Implémenter LearningManager pour états d'apprentissage

    • Créer classe LearningManager dans geniusia2/core/graph/learning_manager.py
    • Gérer dictionnaire de workflows
    • Implémenter méthode update_workflow_stats()
    • Requirements: 8.5
  • 8.2 Implémenter transitions d'états d'apprentissage

    • Ajouter méthode _check_state_transition() dans LearningManager
    • Implémenter _can_transition_to_coaching() (5 observations, similarité >0.90)
    • Implémenter _can_transition_to_auto_candidate() (10 assists, succès >0.90)
    • Implémenter _can_transition_to_auto_confirmed() (20 exécutions, succès >0.95)
    • Logger toutes les transitions avec raison
    • Requirements: 8.1, 8.2, 8.3, 8.4, 8.5
  • 8.3 Implémenter rollback automatique

    • Ajouter méthode _should_rollback() dans LearningManager
    • Détecter confiance < 0.90 en mode AUTO_CONFIRMÉ
    • Rétrograder vers COACHING
    • Logger le rollback
    • Requirements: 8.6
  • * 8.4 Écrire tests pour LearningManager

    • Tester transitions d'états
    • Tester calcul de métriques
    • Tester rollback
    • Property 9: Learning State Monotonic Progression
    • Property 10: Learning State Rollback Condition
    • Validates: Requirements 8.1, 8.2, 8.3, 8.4, 8.6
  • * 8.5 Écrire tests d'intégration pour apprentissage complet

    • Simuler 5 observations → COACHING
    • Simuler 10 assists → AUTO_CANDIDATE
    • Simuler 20 exécutions → AUTO_CONFIRMÉ
    • Simuler baisse de confiance → rollback
  • 9. Checkpoint - Vérifier que tous les tests passent

    • Ensure all tests pass, ask the user if questions arise.
  • 10. Phase 8 : Gestion des Erreurs et Robustesse COMPLÉTÉ (24 Nov 2024)

    • Gérer échecs de matching
    • Gérer échecs de détection
    • Gérer violations de post-conditions
    • Détecter changements d'UI
    • Requirements: 14.1, 14.2, 14.3, 14.4, 14.5, 14.6
  • 9.1 Implémenter gestion d'échecs de matching COMPLÉTÉ

    • Créé ErrorHandler centralisé dans core/execution/error_handler.py
    • Logging détaillé avec screenshots et embeddings
    • Calcul similarité avec tous les nodes candidats
    • Génération suggestions automatiques (CREATE_NEW_NODE, UPDATE_NODE, ADJUST_THRESHOLD)
    • Tracking des edges problématiques (>3 échecs)
    • Requirements: 14.1
  • 9.2 Implémenter stratégies de fallback pour détection UI

    • Ajouter fallback par visual similarity dans ActionExecutor
    • Ajouter fallback par position approximative
    • Logger tentatives de fallback
    • Requirements: 14.2
  • 9.3 Implémenter gestion de violations de post-conditions

    • Logger violations avec détails (attendu vs réel)
    • Attendre timeout configuré
    • Marquer exécution comme échec si timeout
    • Incrémenter compteur d'échecs pour edge
    • Marquer edge comme problématique si échecs répétés (>3)
    • Requirements: 14.3
  • 9.4 Implémenter détection de changements d'UI

    • Ajouter méthode detect_ui_change() dans NodeMatcher
    • Comparer similarité actuelle vs prototype
    • Détecter changement si similarité < 0.70
    • Capturer screenshot pour analyse
    • Mettre en pause exécution automatique
    • Notifier utilisateur
    • Requirements: 14.4
  • 9.5 Implémenter système de rollback

    • Ajouter méthode rollback() dans ActionExecutor
    • Stocker historique des 3 dernières actions
    • Implémenter inverse pour chaque type d'action
    • Logger tentatives de rollback
    • Requirements: 14.5
  • * 9.6 Écrire tests pour gestion d'erreurs

    • Tester échec de matching
    • Tester échec de détection UI
    • Tester violation de post-conditions
    • Tester détection de changement UI
    • Tester rollback
  • 10. Phase 7 : Persistence et Storage

    • Implémenter sauvegarde structurée
    • Implémenter chargement avec validation
    • Organiser fichiers par date et workflow
    • Requirements: 12.1, 12.2, 12.3, 12.4, 12.5, 12.6, 12.7
  • 10.1 Implémenter StorageManager pour gestion de fichiers

    • Créer classe StorageManager dans geniusia2/core/persistence/storage_manager.py
    • Implémenter méthode save_raw_session()
    • Implémenter méthode save_screen_state()
    • Implémenter méthode save_workflow()
    • Organiser par date (YYYY-MM-DD)
    • Requirements: 12.1, 12.2, 12.4, 12.7
  • 10.2 Implémenter sauvegarde d'embeddings

    • Ajouter méthode save_embedding() dans StorageManager
    • Sauvegarder vecteurs en .npy
    • Ajouter à FAISS index
    • Sauvegarder métadonnées
    • Requirements: 12.2, 12.3
  • 10.3 Implémenter chargement avec validation

    • Ajouter méthode load_workflow() dans StorageManager
    • Valider schéma JSON
    • Charger FAISS index
    • Charger métadonnées
    • Reconstruire objets Python
    • Requirements: 12.5, 12.6
  • * 10.4 Écrire tests pour persistence

    • Tester sauvegarde/chargement de tous les types
    • Tester organisation de fichiers
    • Tester validation de schémas
  • [-] 11. Phase 8 : Optimisation et Performance

    • Optimiser embeddings (batching, caching)
    • Optimiser FAISS (IVF index)
    • Optimiser détection UI (ROI)
    • Mesurer et valider performances
    • Requirements: 15.1, 15.2, 15.3, 15.4, 15.5
  • 11.1 Implémenter batch processing pour embeddings

    • Ajouter méthode compute_embeddings_batch() dans FusionEngine
    • Traiter multiples images en parallèle
    • Optimiser utilisation GPU si disponible
  • 11.2 Implémenter caching d'embeddings

    • Ajouter cache LRU pour prototypes
    • Mettre en cache derniers State Embeddings
    • Invalider cache intelligemment
  • 11.3 Optimiser FAISS avec index IVF

    • Migrer vers index IVF pour >10k embeddings
    • Optimiser périodiquement l'index
    • Utiliser GPU si disponible
  • 11.4 Optimiser détection UI avec ROI

    • Limiter résolution des screenshots (max 1920x1080)
    • Détecter régions d'intérêt avant traitement complet
    • Mettre en cache résultats pour frames similaires
  • * 11.5 Écrire tests de performance complets

    • Benchmarker toutes les opérations
    • Valider contraintes de temps
    • Property 19: Performance Constraint - State Embedding
    • Property 20: Performance Constraint - End-to-End
    • Validates: Requirements 15.1, 15.2, 15.3, 15.4, 15.5
  • 12. Checkpoint Final - Vérifier que tous les tests passent

    • Ensure all tests pass, ask the user if questions arise.
  • 13. Phase 9 : Tests End-to-End et Documentation

    • Tests de bout en bout complets
    • Documentation utilisateur
    • Guide de déploiement
  • 13.1 Créer tests end-to-end pour workflow complet

    • Tester capture → construction → matching → exécution
    • Tester apprentissage progressif complet
    • Tester robustesse aux changements UI
    • Tester multi-workflows
  • * 13.2 Écrire tests de validation de qualité

    • Tester qualité des embeddings
    • Property 13: UIElement Role Uniqueness Per Type
    • Validates: Requirements 13.1, 13.2, 13.3, 13.4, 13.5
  • 13.3 Créer documentation utilisateur

    • Guide de démarrage rapide
    • Guide d'utilisation des 5 couches
    • Exemples de workflows
    • FAQ et troubleshooting
  • 13.4 Créer guide de déploiement

    • Instructions d'installation
    • Configuration requise
    • Configuration des modèles
    • Optimisation de production