feat: anti-détection robot — Bézier mouse + frappe char-by-char

Pour les environnements Citrix avec détection de robots :
- Souris : courbe de Bézier quadratique avec déviation aléatoire
  et vitesse variable (25 étapes, plus lent début/fin)
- Texte : frappe caractère par caractère via KeyCode.from_char()
  avec délai aléatoire 40-120ms (pas de copier-coller)
- Plus de presse-papiers (Ctrl+V détectable)

Annulation du fix raw_keys→clipboard (plus nécessaire).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Dom
2026-03-31 16:25:43 +02:00
parent 6937b94f2a
commit a74056ca22
2 changed files with 53 additions and 52 deletions

View File

@@ -1258,19 +1258,6 @@ def build_replay_from_raw_events(
if session_dir_path:
_attach_expected_screenshots(result, events, session_dir_path)
# ── 9. Supprimer raw_keys incomplets (chars fusionnés depuis key_combos) ──
# Quand le texte contient des caractères venant de key_combos convertis
# (ex: @ de AltGr), les raw_keys ne les couvrent pas. Forcer le copier-coller.
for action in result:
if action.get("type") == "type" and action.get("raw_keys"):
recon = _reconstruct_text_from_raw_keys(action["raw_keys"])
if len(recon) < len(action.get("text", "")):
del action["raw_keys"]
logger.debug(
"raw_keys supprimés pour '%s' (recon=%d < text=%d)",
action["text"][:30], len(recon), len(action["text"]),
)
# Stats visual replay
visual_clicks = sum(
1 for a in result