fix(ORA): logs stdout + vérification pHash tolérante pour clics
Some checks failed
security-audit / Bandit (scan statique) (push) Successful in 14s
security-audit / pip-audit (CVE dépendances) (push) Successful in 11s
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

Logs : forcer le handler stdout pour que les logs ORA apparaissent
dans nohup (logger.info n'écrivait nulle part).

Vérification : un clic avec confiance >= 0.7 est accepté même si
l'écran ne change pas (pHash same). Un clic sur un champ de saisie
ne modifie quasi pas l'écran mais est légitime.
Changement mineur toujours accepté (plus de condition confiance > 0.9).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Dom
2026-04-22 15:04:13 +02:00
parent 9dfcdb5fb0
commit 4ce9c47f45

View File

@@ -13,6 +13,16 @@ Module standalone — importable depuis n'importe où.
import logging
import time
import subprocess
import sys
# Forcer les logs ORA dans stdout (visible dans nohup)
logging.basicConfig(level=logging.INFO, stream=sys.stdout,
format='%(message)s', force=False)
if not logging.getLogger(__name__).handlers:
handler = logging.StreamHandler(sys.stdout)
handler.setFormatter(logging.Formatter('%(message)s'))
logging.getLogger(__name__).addHandler(handler)
logging.getLogger(__name__).setLevel(logging.INFO)
import base64
import os
import json
@@ -680,17 +690,19 @@ Règles:
# Déterminer le succès selon le niveau de changement
if change_level == 'same':
# Rien n'a changé — probable échec
# Exception : certains clics (focus, hover) peuvent ne pas changer l'écran
if decision.value in ('hover', 'focus'):
# 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:
success = True
detail = f"Changement minimal accepté (confiance={decision.confidence:.2f})"
elif decision.value in ('hover', 'focus'):
success = True
detail = f"Pas de changement visible (normal pour {decision.value})"
else:
success = False
detail = f"Aucun changement détecté (distance={distance})"
elif change_level == 'minor':
# Changement mineur — OK si confiance élevée
success = decision.confidence > 0.9
success = True
detail = f"Changement mineur (distance={distance})"
else:
# Changement majeur — succès