diff --git a/tools/session_cleaner.py b/tools/session_cleaner.py index 6ebbf8122..5f724ee9b 100644 --- a/tools/session_cleaner.py +++ b/tools/session_cleaner.py @@ -771,11 +771,14 @@ def clean_and_replay(): logger.error("Erreur build_replay_from_raw_events : %s", e) error_message = f"Erreur lors de la construction du replay : {e}" - if replay_actions is None and not error_message: - # Fallback : filtrage simple et conversion directe + if not replay_actions: + # Fallback : filtrage simple et conversion directe. + # Se declenche si build_replay_from_raw_events a crashe OU + # retourne une liste vide OU n'est pas disponible. try: replay_actions = _simple_build_replay(cleaned_events, session_dir) logger.info("Fallback simple_build_replay a produit %d actions", len(replay_actions)) + error_message = "" # le fallback a reussi, on efface l'erreur precedente except Exception as e: logger.error("Erreur fallback simple_build_replay : %s", e) error_message = f"Erreur lors de la construction du replay (fallback) : {e}" @@ -920,9 +923,10 @@ def _simple_build_replay(events: List[Dict[str, Any]], session_dir: Path) -> Lis action = { "action_id": action_id, "type": "click", - "x_percent": round(pos[0] / screen_w * 100, 2) if screen_w else 0, - "y_percent": round(pos[1] / screen_h * 100, 2) if screen_h else 0, + "x_pct": round(pos[0] / screen_w, 6) if screen_w else 0.0, + "y_pct": round(pos[1] / screen_h, 6) if screen_h else 0.0, "button": inner.get("button", "left"), + "visual_mode": False, # pas d'enrichissement → coords brutes "wait_before": 0.5, } actions.append(action)