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
|
replay_actions = None
|
||||||
error_message = ""
|
error_message = ""
|
||||||
|
|
||||||
if _build_replay_fn is not None:
|
# Pour le session_cleaner, on utilise TOUJOURS le fallback simple.
|
||||||
# Chemin principal : utiliser build_replay_from_raw_events
|
# build_replay_from_raw_events transforme les events (réordonne,
|
||||||
try:
|
# injecte du setup "ouvrir l'app", fusionne des actions) — ce qui
|
||||||
replay_actions = _build_replay_fn(
|
# décale les clics par rapport à l'enregistrement original.
|
||||||
cleaned_events,
|
# Le fallback simple reproduit les events 1:1 en coords brutes,
|
||||||
session_id=session_id,
|
# ce qui est exactement ce qu'on veut pour "nettoyer et rejouer".
|
||||||
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}"
|
|
||||||
|
|
||||||
if not replay_actions:
|
if not replay_actions:
|
||||||
# Fallback : filtrage simple et conversion directe.
|
# Fallback : filtrage simple et conversion directe.
|
||||||
# Se declenche si build_replay_from_raw_events a crashe OU
|
# Se declenche si build_replay_from_raw_events a crashe OU
|
||||||
|
|||||||
Reference in New Issue
Block a user