From 816b37af98fdc2ed303f64188e4f41fe007210c7 Mon Sep 17 00:00:00 2001 From: Dom Date: Sun, 12 Apr 2026 16:29:07 +0200 Subject: [PATCH] fix: session_cleaner utilise le fallback simple exclusivement MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit build_replay_from_raw_events transforme les events (réordonne, injecte du setup "ouvrir l'app", fusionne les actions, ajoute des waits) ce qui décale les clics par rapport à l'enregistrement original. Le texte était saisi dans le mauvais champ parce que les actions n'étaient plus en 1:1 avec la session. Le fallback _simple_build_replay reproduit les events tels quels en coords brutes — exactement ce qu'on veut pour "nettoyer et rejouer". Le session_cleaner l'utilise maintenant exclusivement. Co-Authored-By: Claude Opus 4.6 (1M context) --- tools/session_cleaner.py | 28 ++++++---------------------- 1 file changed, 6 insertions(+), 22 deletions(-) diff --git a/tools/session_cleaner.py b/tools/session_cleaner.py index aad075cb5..8c95ff8af 100644 --- a/tools/session_cleaner.py +++ b/tools/session_cleaner.py @@ -758,28 +758,12 @@ def clean_and_replay(): replay_actions = None error_message = "" - if _build_replay_fn is not None: - # Chemin principal : utiliser build_replay_from_raw_events - try: - replay_actions = _build_replay_fn( - cleaned_events, - session_id=session_id, - session_dir=str(session_dir), - ) - logger.info("build_replay_from_raw_events a produit %d actions", len(replay_actions)) - # Forcer visual_mode=False sur les clics pour eviter le crash - # agent "cannot unpack non-iterable NoneType" quand le visual - # resolve ne fonctionne pas. Les coords brutes suffisent pour - # un replay de nettoyage. Le mode visuel sera reactive quand - # le bug agent sera corrige. - if replay_actions: - for act in replay_actions: - if act.get("type") == "click": - act["visual_mode"] = False - except Exception as e: - logger.error("Erreur build_replay_from_raw_events : %s", e) - error_message = f"Erreur lors de la construction du replay : {e}" - + # Pour le session_cleaner, on utilise TOUJOURS le fallback simple. + # build_replay_from_raw_events transforme les events (réordonne, + # injecte du setup "ouvrir l'app", fusionne des actions) — ce qui + # décale les clics par rapport à l'enregistrement original. + # Le fallback simple reproduit les events 1:1 en coords brutes, + # ce qui est exactement ce qu'on veut pour "nettoyer et rejouer". if not replay_actions: # Fallback : filtrage simple et conversion directe. # Se declenche si build_replay_from_raw_events a crashe OU