diff --git a/core/execution/observe_reason_act.py b/core/execution/observe_reason_act.py index 4de925ed6..db2703ef1 100644 --- a/core/execution/observe_reason_act.py +++ b/core/execution/observe_reason_act.py @@ -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