# Implementation Plan: RPA System Unification ## Overview Ce plan unifie définitivement le système RPA Vision V3 en créant une architecture centralisée qui élimine les incohérences et problèmes récurrents. ## Tasks - [x] 1. Créer le Configuration Manager centralisé - Implémenter la classe SystemConfig avec tous les paramètres unifiés - Créer le ConfigurationManager pour charger/valider la configuration - Ajouter la gestion des variables d'environnement et fichiers de config - _Requirements: 1.1, 1.2, 1.4, 1.5_ - [x]* 1.1 Écrire les tests de propriété pour la configuration - **Property 1: Configuration Consistency** - **Property 10: Configuration Validation Completeness** - **Validates: Requirements 1.1, 1.2, 1.4, 1.5** - [ ] 2. Implémenter le Data Manager unifié - Créer la classe DataManager pour gérer tous les chemins de données - Unifier les chemins sessions, workflows, embeddings, logs - Ajouter la création automatique des répertoires avec permissions - Implémenter la validation d'intégrité des données - _Requirements: 2.1, 2.2, 2.3, 2.4, 2.5_ - [ ]* 2.1 Écrire les tests de propriété pour les chemins de données - **Property 2: Data Path Unification** - **Property 8: Data Consistency Validation** - **Validates: Requirements 2.1, 2.2, 2.3, 7.1, 7.2** - [ ] 3. Créer le Service Registry - Implémenter la classe ServiceRegistry pour tracker tous les services - Ajouter l'enregistrement/désenregistrement automatique des services - Créer les modèles ServiceInfo et ServiceStatus - Implémenter la synchronisation entre services - _Requirements: 3.1, 3.2, 3.3, 3.4, 3.5_ - [ ]* 3.1 Écrire les tests de propriété pour le Service Registry - **Property 3: Service Registration Completeness** - **Validates: Requirements 3.1, 3.2, 3.3** - [ ] 4. Implémenter le Health Monitor - Créer la classe HealthMonitor pour surveiller tous les composants - Ajouter les vérifications de santé périodiques - Implémenter la détection de pannes et récupération automatique - Créer l'endpoint de santé système unifié - _Requirements: 4.1, 4.2, 4.3, 4.4, 4.5_ - [ ]* 4.1 Écrire les tests de propriété pour le Health Monitor - **Property 4: Health Check Responsiveness** - **Validates: Requirements 4.1, 4.2** - [ ] 5. Créer le System Controller - Implémenter la classe SystemController pour coordonner les services - Ajouter les commandes start/stop/restart unifiées - Gérer les dépendances entre services au démarrage - Implémenter l'arrêt gracieux en ordre inverse - _Requirements: 5.1, 5.2, 5.3, 5.4, 5.5_ - [ ]* 5.1 Écrire les tests de propriété pour le System Controller - **Property 5: Startup Order Correctness** - **Property 6: Shutdown Graceful Completion** - **Validates: Requirements 5.1, 5.2, 5.3, 5.4** - [ ] 6. Checkpoint - Vérifier l'architecture de base - Ensure all tests pass, ask the user if questions arise. - [ ] 7. Implémenter la gestion d'erreurs centralisée - Créer le format de log unifié pour tous les composants - Ajouter la corrélation d'erreurs entre composants - Implémenter l'agrégation centralisée des logs - Créer les procédures de récupération automatique - _Requirements: 6.1, 6.2, 6.3, 6.4, 6.5_ - [ ]* 7.1 Écrire les tests de propriété pour la gestion d'erreurs - **Property 7: Error Correlation Consistency** - **Validates: Requirements 6.1, 6.2, 6.3** - [ ] 8. Créer le système de migration - Implémenter la détection automatique des versions de schéma - Créer le framework de migration avec backup automatique - Ajouter la validation d'intégrité post-migration - Implémenter la restauration automatique en cas d'échec - _Requirements: 8.1, 8.2, 8.3, 8.4, 8.5_ - [ ]* 8.1 Écrire les tests de propriété pour les migrations - **Property 9: Migration Safety** - **Validates: Requirements 8.1, 8.3, 8.5** - [ ] 9. Migrer le Dashboard Service - Modifier web_dashboard/app.py pour utiliser le Configuration Manager - Remplacer les chemins hardcodés par le Data Manager - Intégrer avec le Service Registry et Health Monitor - Corriger le problème des sessions non trouvées - _Requirements: 1.2, 2.1, 2.2, 3.1_ - [ ] 10. Migrer l'API Service - Modifier server/api_upload.py pour utiliser la configuration centralisée - Intégrer avec le Service Registry - Unifier les chemins de données avec le Data Manager - _Requirements: 1.2, 2.1, 2.2, 3.1_ - [ ] 11. Migrer le Worker Service - Modifier server/worker_daemon.py pour la configuration centralisée - Intégrer avec le Service Registry et Health Monitor - Unifier les chemins de traitement des données - _Requirements: 1.2, 2.1, 2.2, 3.1_ - [ ] 12. Migrer l'Agent Service - Modifier agent_v0/ pour utiliser la configuration centralisée - Intégrer avec le Service Registry - Unifier les chemins d'upload et de stockage - _Requirements: 1.2, 2.1, 2.2, 3.1_ - [ ] 13. Créer les scripts de gestion système - Créer rpa-system start/stop/restart/status - Ajouter les commandes de vérification de cohérence - Implémenter les outils de diagnostic et réparation - Créer les scripts de migration manuelle - _Requirements: 5.1, 5.2, 7.3, 7.5_ - [ ]* 13.1 Écrire les tests d'intégration système - Tester les cycles complets start/stop - Tester la récupération après panne - Tester les migrations de données - _Requirements: 5.1, 5.2, 8.1, 8.2_ - [ ] 14. Mettre à jour la configuration systemd - Modifier les services systemd pour utiliser le nouveau système - Ajouter les dépendances correctes entre services - Mettre à jour les variables d'environnement - Tester le démarrage automatique au boot - _Requirements: 3.5, 5.3, 5.4_ - [ ] 15. Checkpoint final - Validation complète - Ensure all tests pass, ask the user if questions arise. - Vérifier que tous les services utilisent la configuration centralisée - Valider que les chemins de données sont unifiés - Tester les scénarios de panne et récupération - Valider les migrations de données - [ ]* 15.1 Tests de performance système - Mesurer les temps de démarrage/arrêt - Tester la performance des health checks - Valider les performances de migration - _Requirements: 4.1, 5.5, 8.4_ ## Notes - Tasks marked with `*` are optional and can be skipped for faster MVP - Each task references specific requirements for traceability - Checkpoints ensure incremental validation - Property tests validate universal correctness properties - Integration tests validate cross-component behavior - Cette unification résoudra définitivement les problèmes récurrents de configuration et de synchronisation