Skip to content

feat(actions): human Bézier cursor motion before clicks (humanMode)#64

Merged
fusengine merged 2 commits into
mainfrom
feat/human-mouse-bezier
Jun 8, 2026
Merged

feat(actions): human Bézier cursor motion before clicks (humanMode)#64
fusengine merged 2 commits into
mainfrom
feat/human-mouse-bezier

Conversation

@fusengine

Copy link
Copy Markdown
Owner

Pourquoi

Les anti-bots comportementaux (ML sur vélocité/courbure/timing souris) repèrent la téléportation vers l'élément que produit locator.click. Tell instantané.

Fix

En humanMode, smartClick déplace le curseur vers la cible le long d'une courbe de Bézier cubique (ease-in-out + points de contrôle aléatoires + jitter par pas + timing variable) avant hover/clic — une vraie main humaine, pas une ligne droite instantanée.

Nouveau module human-mouse : cubicBezier + easeInOutCubic purs (testés unit) + humanMoveTo (enchaîne page.mouse.move + sleeps ; no-op si pas de boundingBox). Actif uniquement si humanMode=true ; chemin de clic par défaut inchangé.

Validation

tsc clean · 194 unit (+5 Bézier : endpoints, midpoint, monotonie de l'easing) · 20 intégration. Fichiers <100 lignes.

fusengine added 2 commits June 8, 2026 22:54
Behavioral anti-bots (ML on mouse velocity/curvature/timing) flag the teleport-to-element that locator.click produces. In humanMode, smartClick now moves the cursor to the target along a cubic Bézier path with ease-in-out, random control points, per-step jitter and variable timing before hovering/clicking — a human reach, not a straight teleport.

New human-mouse module: pure cubicBezier + easeInOutCubic (unit-tested) + humanMoveTo (drives page.mouse.move step-by-step with sleeps; no-op when the element has no box). Only active when humanMode=true; default click path unchanged. tsc clean, 194 unit (+5 bezier) + 20 integration green.
@fusengine fusengine merged commit 7499d3a into main Jun 8, 2026
1 check passed
@fusengine fusengine deleted the feat/human-mouse-bezier branch June 8, 2026 20:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant