From 66815b7a1a7daf5f7b3b4077c393c257b95537e7 Mon Sep 17 00:00:00 2001 From: Dom Date: Thu, 23 Apr 2026 08:22:12 +0200 Subject: [PATCH] =?UTF-8?q?fix(ORA):=20pattern=20None=20quand=20overlay=20?= =?UTF-8?q?est=20une=20fen=C3=AAtre=20(pas=20un=20dialogue)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit pattern.get() crashait car pattern=None quand l'overlay n'est pas un dialogue connu. Ajout de guard None. Co-Authored-By: Claude Opus 4.6 (1M context) --- core/execution/observe_reason_act.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/core/execution/observe_reason_act.py b/core/execution/observe_reason_act.py index 1104889ca..d57a98bd6 100644 --- a/core/execution/observe_reason_act.py +++ b/core/execution/observe_reason_act.py @@ -942,19 +942,20 @@ Règles: # --- Étape 3 : Retry l'action originale --- act_ok = self.act(decision, step_params) + pattern_name = pattern.get('pattern', '?') if pattern else 'fenêtre' if act_ok: return RecoveryAttempt( error_type=ErrorType.OVERLAY_BLOCKING, - strategy="close_dialog_retry", + strategy="close_overlay_retry", success=True, - detail=f"Dialogue '{pattern.get('pattern', '?')}' fermé, action retentée avec succès" + detail=f"Overlay '{pattern_name}' résolu, action retentée avec succès" ) return RecoveryAttempt( error_type=ErrorType.OVERLAY_BLOCKING, - strategy="close_dialog_retry_failed", + strategy="close_overlay_retry_failed", success=False, - detail=f"Dialogue fermé mais l'action originale a encore échoué" + detail=f"Overlay '{pattern_name}' résolu mais l'action originale a encore échoué" ) except ImportError as e: