Initial commit

This commit is contained in:
Dom
2026-03-05 00:20:25 +01:00
commit dcd4de9945
1954 changed files with 669380 additions and 0 deletions

View File

@@ -0,0 +1,159 @@
# Implementation Plan - Amélioration GUI et Logs
- [x] 1. Créer le composant HumanLogger
- Implémenter la classe HumanLogger avec méthodes de formatage
- Créer des méthodes pour chaque type de message (observation, pattern, workflow, mode, fine-tuning)
- Ajouter support pour emojis et messages contextuels
- _Requirements: 2.1, 2.2, 2.3, 2.4, 10.1, 10.2, 10.3, 10.4_
- [x] 1.1 Écrire des tests unitaires pour HumanLogger
- Tester le formatage des messages
- Vérifier les emojis corrects
- Tester les messages contextuels
- _Requirements: 2.1, 2.2, 2.3, 2.4_
- [x] 2. Créer le composant LogsPanel
- Implémenter le widget Qt pour affichage des logs
- Ajouter système de scroll avec limite à 30 messages
- Implémenter auto-scroll conditionnel (seulement si déjà en bas)
- Ajouter formatage avec timestamp et emoji
- _Requirements: 3.1, 3.2, 3.3, 3.4, 3.5_
- [ ]* 2.1 Écrire un test de propriété pour la limite de logs
- **Property 1: Log History Bounds**
- **Validates: Requirements 3.3**
- [ ]* 2.2 Écrire des tests unitaires pour LogsPanel
- Tester l'ajout de logs
- Tester le scroll automatique
- Tester la limite de 30 messages
- _Requirements: 3.1, 3.2, 3.3, 3.4, 3.5_
- [x] 3. Créer le composant InteractiveDialog
- Implémenter le dialogue Qt avec timeout de 10 secondes
- Ajouter callbacks pour réponses utilisateur (accept/reject)
- Implémenter fermeture automatique après timeout
- Rendre le dialogue non-bloquant
- _Requirements: 4.1, 4.2, 4.3, 4.4, 4.5_
- [ ]* 3.1 Écrire un test de propriété pour le timeout
- **Property 2: Timeout Consistency**
- **Validates: Requirements 4.3**
- [ ]* 3.2 Écrire des tests unitaires pour InteractiveDialog
- Tester le timeout automatique
- Tester les callbacks
- Tester le comportement non-bloquant
- _Requirements: 4.1, 4.2, 4.3, 4.4, 4.5_
- [x] 4. Créer les modèles de données
- Implémenter LogMessage dataclass
- Implémenter GUIState dataclass
- Ajouter méthodes de sérialisation si nécessaire
- _Requirements: 5.1, 5.2, 5.3, 5.4, 5.5, 8.1, 8.2, 8.3, 8.4, 8.5_
- [x] 5. Créer le système de signaux Qt
- Implémenter GUISignals avec pyqtSignal
- Ajouter signaux pour log_message, update_stats, show_dialog, mode_changed
- Documenter l'utilisation des signaux
- _Requirements: 7.1, 7.2, 7.3, 7.4, 7.5_
- [x] 6. Créer la nouvelle ImprovedGUI
- Implémenter la fenêtre principale (300x400px)
- Ajouter le panneau de statut avec mode et icône
- Intégrer LogsPanel dans la fenêtre
- Ajouter les boutons Pause/Arrêter
- _Requirements: 1.1, 5.1, 5.2, 5.3, 5.4, 5.5_
- [x] 7. Implémenter le System Tray
- Créer l'icône dans la barre des tâches Ubuntu
- Implémenter le menu contextuel (Afficher/Masquer/Quitter)
- Gérer la minimisation vers le tray
- Ajouter fallback si system tray non disponible
- _Requirements: 1.2, 1.3, 1.4, 1.5, 9.1, 9.2, 9.3_
- [ ]* 7.1 Tester le system tray sur Ubuntu
- Vérifier l'icône dans la barre supérieure
- Tester le menu contextuel
- Tester la minimisation
- _Requirements: 1.3, 1.4, 9.2_
- [ ] 8. Implémenter l'affichage des statistiques
- Ajouter widget pour afficher actions observées
- Ajouter widget pour patterns détectés
- Ajouter widget pour workflows appris
- Ajouter indicateur de fine-tuning avec progression
- Implémenter mise à jour en temps réel
- _Requirements: 8.1, 8.2, 8.3, 8.4, 8.5_
- [ ]* 8.1 Écrire un test de propriété pour l'affichage du mode
- **Property 3: Mode Display Consistency**
- **Validates: Requirements 5.1**
- [x] 9. Intégrer HumanLogger dans l'Orchestrator
- Ajouter instance de HumanLogger dans Orchestrator
- Remplacer les logs techniques par des messages humains pour la GUI
- Envoyer les messages via les signaux Qt
- Garder les logs techniques dans le fichier debug.log
- _Requirements: 2.1, 2.2, 2.3, 2.4, 7.1, 7.2, 7.3_
- [ ]* 9.1 Écrire un test de propriété pour l'ordre des messages
- **Property 4: Message Ordering**
- **Validates: Requirements 2.1, 2.2, 2.3, 2.4**
- [ ] 10. Connecter les dialogues interactifs
- Modifier Orchestrator pour déclencher des dialogues via signaux
- Implémenter callbacks pour réponses utilisateur
- Gérer le changement de mode basé sur les réponses
- _Requirements: 4.1, 4.4, 4.5, 7.4, 7.5, 10.2_
- [ ]* 10.1 Écrire un test de propriété pour les dialogues non-bloquants
- **Property 5: Non-blocking Dialogs**
- **Validates: Requirements 4.2**
- [ ] 11. Implémenter le système de logs techniques
- Créer le répertoire geniusia2/logs si nécessaire
- Implémenter l'écriture dans debug.log avec format structuré
- Ajouter rotation des logs à 10MB
- Implémenter flush immédiat pour éviter pertes
- Gérer les erreurs (disque plein, permissions)
- _Requirements: 6.1, 6.2, 6.3, 6.4, 6.5_
- [ ]* 11.1 Écrire des tests unitaires pour le système de logs
- Tester l'écriture dans le fichier
- Tester la rotation à 10MB
- Tester le flush immédiat
- Tester les fallbacks en cas d'erreur
- _Requirements: 6.1, 6.2, 6.3, 6.4, 6.5_
- [ ] 12. Implémenter les messages contextuels
- Ajouter logique pour détecter première fois (workflow, mode change)
- Créer messages explicatifs pour première utilisation
- Ajouter suggestions d'actions correctives pour erreurs
- Implémenter message d'encouragement après inactivité
- _Requirements: 10.1, 10.2, 10.3, 10.4, 10.5_
- [ ] 13. Tester la compatibilité Ubuntu
- Vérifier le thème système
- Tester le system tray dans la barre supérieure
- Vérifier les popups avec le window manager
- Tester le redimensionnement de fenêtre
- Vérifier la libération des ressources à la fermeture
- _Requirements: 9.1, 9.2, 9.3, 9.4, 9.5_
- [ ] 14. Migration et intégration finale
- Renommer minimal_gui.py → minimal_gui_old.py
- Renommer improved_gui.py → minimal_gui.py
- Mettre à jour main.py pour utiliser la nouvelle GUI
- Supprimer les anciens boutons (liste blanche, etc.)
- Nettoyer le code inutilisé
- _Requirements: 1.1, 1.2, 1.3, 1.4, 1.5_
- [ ]* 14.1 Écrire des tests d'intégration
- Tester Orchestrator → GUI
- Tester Popup → Orchestrator
- Tester System Tray
- _Requirements: 7.1, 7.2, 7.3, 7.4, 7.5_
- [ ] 15. Checkpoint final - Vérifier que tout fonctionne
- Ensure all tests pass, ask the user if questions arise.