fix(ORA): double-clic fiable + vérification stricte
Some checks failed
security-audit / Bandit (scan statique) (push) Successful in 12s
security-audit / pip-audit (CVE dépendances) (push) Successful in 12s
security-audit / Scan secrets (grep) (push) Successful in 9s
tests / Lint (ruff + black) (push) Successful in 14s
tests / Tests unitaires (sans GPU) (push) Failing after 15s
tests / Tests sécurité (critique) (push) Has been skipped
Some checks failed
security-audit / Bandit (scan statique) (push) Successful in 12s
security-audit / pip-audit (CVE dépendances) (push) Successful in 12s
security-audit / Scan secrets (grep) (push) Successful in 9s
tests / Lint (ruff + black) (push) Successful in 14s
tests / Tests unitaires (sans GPU) (push) Failing after 15s
tests / Tests sécurité (critique) (push) Has been skipped
Double-clic : moveTo + 2 clics explicites (pyautogui.doubleClick ne traverse pas toujours la VM). Délai 80ms entre les clics. Vérification : un double-clic DOIT produire un changement majeur (ouverture fichier/dossier). Changement mineur = échec → retry. Les clics simples et hotkeys gardent la tolérance actuelle. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -700,11 +700,15 @@ Règles:
|
||||
|
||||
print(f"🔍 [ORA/verify] pHash distance={distance} → {change_level}")
|
||||
|
||||
# Un double-clic DOIT produire un changement majeur (ouverture de fichier/dossier)
|
||||
is_double_click = decision.value == 'double'
|
||||
|
||||
# Déterminer le succès selon le niveau de changement
|
||||
if change_level == 'same':
|
||||
# Peu ou pas de changement visible
|
||||
# Certaines actions légitimes changent peu l'écran (clic sur champ, focus, hover)
|
||||
if decision.action in ('click', 'hotkey') and decision.confidence >= 0.7:
|
||||
if is_double_click:
|
||||
success = False
|
||||
detail = f"Double-clic sans effet visible (distance={distance})"
|
||||
elif decision.action in ('click', 'hotkey') and decision.confidence >= 0.7:
|
||||
success = True
|
||||
detail = f"Changement minimal accepté (confiance={decision.confidence:.2f})"
|
||||
elif decision.value in ('hover', 'focus'):
|
||||
@@ -714,8 +718,12 @@ Règles:
|
||||
success = False
|
||||
detail = f"Aucun changement détecté (distance={distance})"
|
||||
elif change_level == 'minor':
|
||||
success = True
|
||||
detail = f"Changement mineur (distance={distance})"
|
||||
if is_double_click:
|
||||
success = False
|
||||
detail = f"Double-clic : changement mineur insuffisant (distance={distance}), attendu majeur"
|
||||
else:
|
||||
success = True
|
||||
detail = f"Changement mineur (distance={distance})"
|
||||
else:
|
||||
# Changement majeur — succès
|
||||
success = True
|
||||
@@ -1436,7 +1444,13 @@ Règles:
|
||||
print(f"🖱️ [ORA/click] {decision.value} à ({x}, {y}) via {method_used}")
|
||||
|
||||
if decision.value == 'double':
|
||||
pyautogui.doubleClick(x, y)
|
||||
# Double-clic explicite : moveTo + 2 clics séparés (fiable en VM)
|
||||
pyautogui.moveTo(x, y)
|
||||
time.sleep(0.1)
|
||||
pyautogui.click()
|
||||
time.sleep(0.08)
|
||||
pyautogui.click()
|
||||
time.sleep(0.5)
|
||||
elif decision.value == 'right':
|
||||
pyautogui.rightClick(x, y)
|
||||
elif decision.value == 'hover':
|
||||
|
||||
Reference in New Issue
Block a user