Plan de ménage code mort — 2026-06-23
Auteur: Qwen (audit read-only)
Date: 2026-06-23
Statut: plan — aucune exécution sans GO Dom
Méthode: existing-first (graphify-out/ + grep imports), vérification wiring runtime
Synthèse
| Zone |
Fichiers Python |
A (WIRED) |
B (ORPHELIN) |
C (MORT) |
Lignes C estimées |
| core/ |
226 |
~70 (31%) |
~75 (33%) |
~22 (10%) |
~800 |
| agent_v0/server_v1/ |
26 |
21 |
1 |
4 |
~510 |
| agent_v0/agent_v1/ |
44 |
36 |
2 |
6 |
~290 |
| server/ |
8 |
4 |
2 |
2 |
~300 |
| scripts/ |
~40 |
3 |
0 |
~37 |
~2500 |
| deploy/ |
10+ |
3 |
5 |
2 |
~100 |
| root |
4 |
1 |
2 |
1 |
~80 |
| Total |
~360 |
~138 |
~84 |
~74 |
~4580 |
~20% du codebase est MORT confirmé (catégorie C), ~23% est ORPHELIN/projection (B).
Les zones les plus chargées : core/analytics/ (13/17 orphelins), core/cognition/ (4/5 morts), core/extraction/ (4/5 morts), scripts/ (37/40 morts).
NE PAS TOUCHER (runtime démo + systemd DGX + installateur)
agent_v0/server_v1/api_stream.py (7747 lignes) — serveur principal runtime
agent_v0/server_v1/stream_processor.py (6085 lignes) — orchestrateur central
agent_v0/server_v1/resolve_engine.py — résolution anchors OCR/VLM
agent_v0/server_v1/replay_engine.py — replay actions
agent_v0/agent_v1/core/executor.py — exécuteur agent Windows
visual_workflow_builder/backend/app.py — VWB backend
web_dashboard/app.py — dashboard
server/api_upload.py — upload API (loopback DGX)
- Tous les services systemd DGX (rpa-vision-v3-*.service, ollama, rpa-vllm-grounder)
deploy/installer/ (Lea.iss, config_template.txt, build_installer.sh)
deploy/lea_package/ (config.txt, requirements_agent.txt)
- Chemin démo
Urgence_aiva_demo end-to-end
Inventaire par zone — catégorie C (MORT confirmé)
core/ — MORT (22 fichiers, ~800 lignes)
| Fichier |
Lignes |
Preuve mort |
Doublon de ? |
cognition/precondition.py |
~50 |
Zero imports |
— |
cognition/scene_expected.py |
~50 |
Zero imports |
— |
cognition/trace.py |
~80 |
Zero imports |
— |
cognition/vram_orchestrator.py |
~100 |
Zero imports (sauf init test) |
gpu/device_policy.py |
extraction/data_store.py |
~80 |
Zero imports |
— |
extraction/extraction_engine.py |
~120 |
Zero imports (sauf init try/except) |
field_extractor.py |
extraction/iteration_controller.py |
~60 |
Zero imports |
— |
extraction/schema.py |
~40 |
Zero imports |
— |
execution/spatial_index.py |
~60 |
Zero imports |
— |
execution/target_memory.py |
~80 |
Zero imports |
learning/target_memory_store.py |
execution/workflow_runner.py |
~200 |
Zero imports (sauf init.py) |
dag_executor.py |
interfaces/action_executor_interface.py |
~40 |
Tests only |
— |
interfaces/error_handler_interface.py |
~30 |
Tests only |
— |
interfaces/target_resolver_interface.py |
~30 |
Tests only |
— |
graph/simple_state.py |
~40 |
Zero imports |
— |
grounding/server.py |
~500 |
SUPPRIMÉ (n'existe plus) |
— |
detection/seeclick_adapter.py |
~300 |
Zero runtime imports, init fallback mort |
— |
supervision/circuit_breaker.py |
~40 |
Zero imports, doublon system/circuit_breaker |
system/circuit_breaker |
supervision/supervisor.py |
~200 |
Zero imports, docstrings mentionnent modules jamais wired |
— |
gpu/clip_manager.py |
~60 |
Zero imports |
embedding/clip_embedder |
gpu/ollama_manager.py |
~80 |
Zero imports |
detection/ollama_client |
auth/manage_vault.py |
~40 |
Zero imports |
auth/credential_vault |
agent_v0/ — MORT (10 fichiers, ~800 lignes)
| Fichier |
Lignes |
Preuve mort |
Doublon de ? |
server_v1/vm_controller.py |
143 |
Importé uniquement par visual_wait (mort) |
— |
server_v1/visual_wait.py |
54 |
Importé uniquement par vm_controller (mort) |
— |
server_v1/workflow_replay.py |
256 |
Zero imports, projection jamais intégrée |
replay_engine.py |
agent_v1/window_info.py |
55 |
Zero imports |
window_info_crossplatform.py |
agent_v1/tools/test_lea_pause_flow.py |
~60 |
Script debug standalone |
— |
agent_v1/tools/test_lea_toast.py |
~80 |
Script debug standalone |
— |
agent_v1/ui/_test_paused_toast.py |
~40 |
Script debug standalone |
— |
agent_v1/monitoring/__init__.py |
0 |
Stub vide jamais développé |
— |
agent_v0/config.py |
58 |
Zero imports |
agent_v1/config.py |
agent_v0/setup_v1.sh |
30 |
Vestige, requirements.txt absent |
— |
server/ — MORT (2 fichiers, ~300 lignes)
| Fichier |
Lignes |
Preuve mort |
Doublon de ? |
server/api_upload_dev_8001.py |
~150 |
Pas dans services.conf, dev-only |
api_upload.py |
server/api_upload_dev_8002.py |
~150 |
Pas dans services.conf, dev-only |
api_upload.py |
scripts/ — MORT (~37 fichiers, ~2500 lignes)
| Fichier pattern |
Count |
Preuve mort |
Notes |
demo_*_*_vwb_*_*.py (dated) |
~12 |
Scripts debug Jan 2026, jamais appelés par runtime |
Vestiges développement VWB propriétés |
diagnostic_*_*.py (dated) |
~6 |
Scripts debug Jan 2026 |
Diagnostic palette/catalogue |
test_*_vwb_*_*.py (dated) |
~10 |
Scripts test standalone Jan 2026 |
Tests ad-hoc palette/propriétés |
implementer_*.py, implementation_*.py |
~2 |
Scripts debug Jan 2026 |
Implémentation propriétés |
creer_sauvegarde_vwb_*.py |
1 |
Script debug |
Sauvegarde ad-hoc |
analyse_cas_undefined_*.py |
1 |
Script debug |
Analyse ad-hoc |
start_vwb_backend_*.py (4 variants) |
4 |
Doublons de start_vwb_backend.py |
Versions ultra_stable, thread_safe, final, catalogue_complet |
start_system_complet_*.sh |
1 |
Script dated |
Remplacé par systemd |
start_vwb_complete_*.sh (2) |
2 |
Scripts dated |
Remplacé par systemd |
scripts/ WIRED (3) : record_and_build.py (A), bench_t2a_dryrun.py (A), backup_vwb_and_audit.sh (A)
deploy/ — MORT (2 fichiers)
| Fichier |
Preuve mort |
Doublon de ? |
deploy/configs/config_dev_windows.txt |
Config dev, pas utilisé par installateur |
config_template.txt |
agent_v0/setup_v1.sh |
Vestige, requirements.txt absent |
— |
root — MORT (1 fichier)
| Fichier |
Preuve mort |
mcp_rpa_vision.py |
MCP server jamais importé/callé par runtime ou systemd |
Inventaire par zone — catégorie B (ORPHELIN/projection)
core/ — ORPHELIN (~45+30 borderline, principalement analytics/ et healing/strategies/)
| Zone |
Fichiers |
Preuve orphelin |
Projection plausible ? |
analytics/ (13 orphelins) |
metrics_collector, anomaly_detector, insight_generator, performance_analyzer, success_rate_calculator, archive_storage, timeseries_store, query_engine, report_generator, analytics_api, dashboard_manager, realtime_analytics, resource_collector |
Test-only ou zero imports |
✅ Analytics = fonctionnalité produit future (dashboard insights) |
healing/strategies/ (5) |
base_strategy, format_transformation, semantic_variants, spatial_fallback, timing_adaptation |
Test-only via test_self_healing.py |
✅ Self-healing = produit prévu |
cognition/working_memory.py (1) |
Intra-core lazy import seulement |
✅ Cognition = produit futur |
|
detection/owl_detector.py (1) |
Importé par agent_chat/autonomous_planner seulement |
✅ OWL = grounder alternatif |
|
detection/roi_optimizer.py, spatial_analyzer.py |
Test-only |
✅ Optimisation ROI future |
|
grounding/smart_resize.py |
Test-only, jamais importé runtime |
✅ Resize intelligent utile |
|
gpu/vram_monitor.py |
Zero imports |
✅ GPU monitoring utile |
|
monitoring/automation_scheduler.py |
init try/except |
✅ Automation scheduling |
|
security/flask_security.py, input_validator.py, ip_allowlist.py, rate_limiter.py, audit_log.py |
init exports mais jamais importés directement |
✅ Sécurité = P0 produit |
|
precision/ (5 fichiers) |
Test-only |
✅ Metrics/precision utile |
|
system/artifact_retention.py |
init export, jamais utilisé runtime |
✅ Rétention utile |
|
agent_v0/ — ORPHELIN
| Fichier |
Preuve |
Projection ? |
server_v1/session_worker.py |
Commentaires seulement, pas importé |
✅ Background session processing |
agent_v1/core/anchor_catalog.py + anchor_relative.py |
Importé par tests seulement |
✅ Anchor resolution future |
deploy_windows.py |
Script packaging manuel |
✅ Packaging Windows |
deploy/windows_client/ (23 fichiers) |
Copie déployée sur Windows, pas importée depuis repo Linux |
✅ = package agent Windows |
server/ — ORPHELIN
| Fichier |
Preuve |
Projection ? |
server/processing_pipeline.py |
Importé par api_upload seulement |
✅ Pipeline processing |
server/processing_queue.py |
Importé par api_upload seulement |
✅ Queue processing |
server/storage_encrypted.py |
Importé par api_upload seulement |
✅ Encrypted storage |
server/worker_daemon.py |
Importé par api_upload seulement |
✅ Worker daemon |
root — ORPHELIN
| Fichier |
Preuve |
Projection ? |
monitoring_server.py |
Optional dans services.conf (5003), pas déployé DGX |
✅ Monitoring utile |
run_gui.py |
Script standalone GUI launcher |
✅ GUI dev tool |
cli.py |
CLI entry point, importé par core modules |
✅ CLI utile |
deploy/ — ORPHELIN
| Fichier |
Preuve |
Projection ? |
deploy/dgx/vm_launch.sh + vm_stop.sh |
Scripts QEMU VM DGX |
✅ VM management |
deploy/configs/config_pc_fixe_lan.txt + config_tim_pauline.txt + config_vm_lan.txt |
Configs déployées manuellement |
✅ Déploiement multi-site |
deploy/windows-rdp-launcher/ |
Scripts RDP |
✅ Remote access |
deploy/hyperv_glpi_ubuntu24/ |
Script HyperV |
✅ VM creation |
Quick wins sûrs (C évident, zéro risque)
| # |
Fichier |
Lignes |
Risque |
Action |
| 1 |
core/interfaces/ (3 fichiers) |
~100 |
Zéro |
Supprimer — jamais importé runtime |
| 2 |
core/cognition/ (4 morts: precondition, scene_expected, trace, vram_orchestrator) |
~280 |
Zéro |
Supprimer — zero imports |
| 3 |
core/extraction/ (4 morts: data_store, engine, controller, schema) |
~300 |
Zéro |
Supprimer — field_extractor seul wired |
| 4 |
core/supervision/ (2: circuit_breaker doublon, supervisor jamais wired) |
~240 |
Zéro |
Supprimer — doublons |
| 5 |
core/detection/seeclick_adapter.py |
~300 |
Zéro |
Supprimer — fallback mort |
| 6 |
server_v1/vm_controller.py + visual_wait.py |
~200 |
Zéro |
Supprimer pair — jamais importé |
| 7 |
agent_v1/window_info.py |
55 |
Zéro |
Supprimer doublon |
| 8 |
agent_v0/config.py |
58 |
Zéro |
Supprimer doublon |
| 9 |
scripts/ dated Jan 2026 (~37) |
~2500 |
Zéro |
Supprimer — vestiges dev |
| 10 |
server/api_upload_dev_8001.py + api_upload_dev_8002.py |
~300 |
Faible |
Supprimer dev-only |
Total quick wins : ~10 actions, ~4133 lignes supprimées, zéro risque runtime
Zones à risque (à instruire avant GO)
| Zone |
Risque |
Pourquoi |
core/analytics/ (13 orphelins) |
Moyen |
Projection produit plausible — supprimer = perdre design analytics |
core/healing/strategies/ (5) |
Moyen |
Self-healing = produit prévu — test-only mais intention future |
core/grounding/infigui_server.py + infigui_worker.py |
Moyen |
Server jamais lancé mais worker existe — dépendance circulaire mort |
core/security/ (5 orphelins) |
Moyen |
Sécurité P0 produit — supprimer = perdre auth/rate-limiting design |
core/gpu/ (3 morts: vram_monitor, clip_manager, ollama_manager) |
Faible |
GPU monitoring plausible mais doublon vérifié |
Proposition de réorganisation
Pas de réorganisation proposée à ce stade. Le ménage C suffira à dégraisser ~4500 lignes. Les B (projections) resteront en place avec documentation # PROJECTION: <raison> pour les distinguer du code wired.
Après ménage C, réorganisation possible :
scripts/ dated → archiver dans scripts/archive/ ou supprimer
core/interfaces/ mort → supprimer (remplacé par protocols Python si besoin)
deploy/configs/ → consolider dans deploy/installer/config_template.txt
Plan d'exécution par lots (chirurgie itérative supervisée)
Chaque lot = petit, testable (≤ 2 min), QG entre chaque, GO Dom requis.
| Lot |
Action |
Lignes |
Test QG |
Risque |
| L1 |
Supprimer core/interfaces/ (3 fichiers) |
~100 |
pytest tests/ -k "not e2e" |
Zéro |
| L2 |
Supprimer core/cognition/ morts (4 fichiers) |
~280 |
pytest |
Zéro |
| L3 |
Supprimer core/extraction/ morts (4 fichiers) |
~300 |
pytest |
Zéro |
| L4 |
Supprimer core/supervision/ (2 fichiers) |
~240 |
pytest |
Zéro |
| L5 |
Supprimer core/detection/seeclick_adapter.py |
~300 |
pytest + vérifier init.py fallback |
Zéro |
| L6 |
Supprimer server_v1/vm_controller.py + visual_wait.py |
~200 |
pytest |
Zéro |
| L7 |
Supprimer agent_v1/window_info.py + agent_v0/config.py + setup_v1.sh |
~140 |
pytest |
Zéro |
| L8 |
Nettoyer init.py exports morts dans core/ |
~50 lignes |
pytest + import check |
Faible |
| L9 |
Supprimer scripts/ dated Jan 2026 (~37 fichiers) |
~2500 |
pytest (aucun script dans test path) |
Zéro |
| L10 |
Supprimer server/api_upload_dev_8001/8002.py |
~300 |
pytest + vérifier services.conf |
Faible |
| L11 |
Supprimer core/gpu/ morts (3 fichiers) |
~200 |
pytest |
Faible |
| L12 |
Supprimer core/auth/manage_vault.py + execution/workflow_runner.py |
~240 |
pytest |
Faible |
Total : 12 lots, ~4580 lignes, risque zéro à faible. Chaque lot précédé de GO Dom + QG post-lot.
Liste NE PAS TOUCHER
- Runtime démo
Urgence_aiva_demo (VWB → backend → agent_v1 → Léa → Easily)
- Services systemd DGX (10 services actifs)
- Installateur clinique (
deploy/installer/, deploy/lea_package/)
api_stream.py (7747 lignes, serveur principal)
stream_processor.py (6085 lignes, orchestrateur)
resolve_engine.py (résolution anchors)
replay_engine.py (replay actions)
learned_workflow_bridge.py (pont VWB ↔ core)
core/competences/ (verdicts, promotions, persist, catalog — wired)
core/federation/ (GlobalFAISSIndex, LearningPack — wired)
core/embedding/ (clip, faiss, state, fusion — wired)
core/execution/ (observe_reason_act, target_resolver, input_handler — wired)
core/healing/healing_engine.py + execution_integration.py — wired
core/analytics/analytics_system.py + screen_change_detector.py — wired
core/workflow/ (semantic_matcher, variable_manager, execution_plan, shadow_observer — wired)