Deux bugs dans _simple_build_replay :
1. Mauvais noms de champs : x_percent/y_percent au lieu de x_pct/y_pct
attendus par l'agent executor. Et valeurs en 0-100 au lieu de 0-1.
Résultat : l'agent recevait x_pct=None → crash "cannot unpack
non-iterable NoneType object".
2. Pas de visual_mode=False explicite. Sans enrichissement
(target_spec vide, pas d'anchor), l'agent tentait une résolution
visuelle sur du vide → crash.
Aussi : la condition de fallback empêchait le déclenchement quand
build_replay_from_raw_events crashait (error_message non vide bloquait
la branche). Corrigé : le fallback se déclenche sur `not replay_actions`
(couvre None, liste vide, et crash du build principal).
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Petit serveur Flask standalone (tools/session_cleaner.py) qui permet de :
- Lister les sessions enregistrees recentes
- Visualiser chaque session avec ses screenshots (crop + full)
- Marquer les clics parasites a supprimer (auto-detection des toasts,
clics droit, fenetres Lea/systray, derniers 3 evenements)
- Re-construire un replay nettoye et l'injecter dans la queue via
POST /api/v1/traces/stream/replay/raw
Option A du rapport audit VWB : "Le besoin reel est supprimer 3 clics
parasites et relancer — c'est 30 secondes d'UX, pas un Visual Workflow
Builder."
Port : 5006
Dependencies : Flask (deja dans le venv), aucune nouvelle
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>