fix: session_cleaner utilise le fallback simple exclusivement
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) <noreply@anthropic.com>
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user