fix: session_cleaner force visual_mode=False sur les clics

Contournement temporaire du crash agent "cannot unpack non-iterable
NoneType object" qui se produit quand l'agent Windows tente une
résolution visuelle (visual_mode=True) sur les actions replay.

Les actions construites par build_replay_from_raw_events gardent
leurs coordonnées enrichies (x_pct, y_pct calculés depuis la
session) mais sont envoyées avec visual_mode=False pour que l'agent
clique aux coords brutes sans passer par le grounding.

C'est un compromis temporaire : moins intelligent (pas de résolution
adaptative) mais fonctionnel (les clics arrivent aux bonnes coords).
Le mode visuel sera réactivé quand le bug agent sera diagnostiqué
et corrigé (le traceback n'est pas visible côté serveur, le
redéploiement de l'agent avec debug n'a pas pris effet).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Dom
2026-04-12 16:13:43 +02:00
parent 057c37131f
commit d82aad984f

View File

@@ -767,6 +767,15 @@ def clean_and_replay():
session_dir=str(session_dir), session_dir=str(session_dir),
) )
logger.info("build_replay_from_raw_events a produit %d actions", len(replay_actions)) 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: except Exception as e:
logger.error("Erreur build_replay_from_raw_events : %s", e) logger.error("Erreur build_replay_from_raw_events : %s", e)
error_message = f"Erreur lors de la construction du replay : {e}" error_message = f"Erreur lors de la construction du replay : {e}"