# ⚠️ Problème Identifié - Mode Assisté ## 🔍 Problème Le script `test_mode_assiste_manuel.py` utilisait une méthode qui n'existe pas dans `LearningManager` : ```python tasks = learning_manager.list_tasks() # ❌ N'existe pas ``` ### Erreur Attendue ``` AttributeError: 'LearningManager' object has no attribute 'list_tasks' ``` ## ✅ Solution Utiliser la méthode correcte `get_all_tasks()` : ```python task_metrics = learning_manager.get_all_tasks() # ✅ Existe ``` ## 📊 Différence entre les Méthodes ### `list_tasks()` (N'existe pas) - ❌ Méthode inexistante - Aurait retourné des objets `TaskProfile` ### `get_all_tasks()` (Existe) - ✅ Méthode existante dans `LearningManager` - Retourne une liste de dictionnaires avec métriques complètes **Exemple de retour** : ```python [ { 'task_id': 'task_fc1d3e52', 'task_name': 'Défilement rapide', 'observation_count': 3, 'confidence_score': 0.0, 'concordance_rate': 0.0, 'mode': 'shadow', 'window_whitelist': ['Firefox'] }, # ... autres tâches ] ``` ## 🔧 Correction Appliquée ### Avant ```python # Vérifier les tâches existantes print("📊 Vérification des tâches apprises...") tasks = learning_manager.list_tasks() # ❌ if not tasks: print("❌ Aucune tâche apprise trouvée !\n") return print(f"✅ {len(tasks)} tâche(s) trouvée(s) :\n") for i, task in enumerate(tasks, 1): print(f" {i}. {task.task_name}") # ❌ task est un objet print(f" ID: {task.task_id}") print(f" Actions: {len(task.signatures)}") ``` ### Après ```python # Vérifier les tâches existantes print("📊 Vérification des tâches apprises...") # Utiliser get_all_tasks() qui retourne une liste de dicts avec métriques task_metrics = learning_manager.get_all_tasks() # ✅ if not task_metrics: print("❌ Aucune tâche apprise trouvée !\n") return print(f"✅ {len(task_metrics)} tâche(s) trouvée(s) :\n") for i, task_info in enumerate(task_metrics, 1): print(f" {i}. {task_info['task_name']}") # ✅ task_info est un dict print(f" ID: {task_info['task_id']}") print(f" Observations: {task_info['observation_count']}") print(f" Confiance: {task_info['confidence_score']:.2%}") ``` ## 📝 Avantages de `get_all_tasks()` 1. ✅ **Métriques complètes** : Retourne toutes les infos (observations, confiance, etc.) 2. ✅ **Format dict** : Plus facile à manipuler que des objets 3. ✅ **Déjà implémenté** : Pas besoin de créer une nouvelle méthode 4. ✅ **Utilisé ailleurs** : Cohérent avec le reste du code ## 🎯 Méthodes Disponibles dans LearningManager Voici les méthodes publiques disponibles : ### Observation et Apprentissage - `observe(action)` : Enregistre une observation - `create_task_from_signatures(signatures, ...)` : Crée une tâche ### Suggestions et Validation - `suggest_action(context)` : Génère une suggestion - `confirm_action(feedback)` : Traite la validation utilisateur ### Évaluation et Métriques - `calculate_confidence(vision_conf, llm_score, task_id)` : Calcule la confiance - `evaluate_task(task_id)` : Évalue une tâche - `get_all_tasks()` : ✅ Retourne toutes les tâches avec métriques - `get_task_stats()` : Statistiques globales ### Transitions de Mode - `should_transition_to_auto(task_id)` : Vérifie si passage en Autopilot - `rollback_if_low_confidence(task_id)` : Rétrograde si confiance faible ### Gestion de Tâches - `load_task(task_id)` : Charge une tâche depuis le disque - `set_current_task(task_id)` : Définit la tâche actuelle - `set_current_context(context)` : Définit le contexte actuel - `record_execution(decision)` : Enregistre une exécution ### Détection de Changements UI - `check_ui_changes(task_id, current_screenshot)` : Vérifie les changements - `monitor_execution_drift(task_id, execution_result)` : Surveille la dérive - `get_ui_change_stats()` : Statistiques de détection ### État - `get_mode()` : Retourne le mode actuel - `get_current_intent()` : Retourne l'intention actuelle - `set_current_intent(intent)` : Définit l'intention ## ✅ État Final - [x] Problème identifié - [x] Solution appliquée - [x] Script corrigé - [x] Aucune erreur de syntaxe - [x] Prêt à l'emploi ## 🚀 Test ```bash geniusia2/venv/bin/python test_mode_assiste_manuel.py ``` **Résultat attendu** : Le script liste toutes les tâches et simule une vérification de suggestion. --- **Problème résolu le 19 Novembre 2025**