From 6d4ff4f215106f1f2489faa8ba2a6f982ed70bb0 Mon Sep 17 00:00:00 2001 From: Dom Date: Sun, 5 Apr 2026 09:16:48 +0200 Subject: [PATCH] =?UTF-8?q?fix:=20v=C3=A9rification=20par=20nom=20d'APPLIC?= =?UTF-8?q?ATION,=20pas=20par=20titre=20exact?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Compare 'Bloc-notes' (après le –) au lieu du titre complet. 'blocnote.txt – Bloc-notes' et 'voiture.txt – Bloc-notes' sont la même app → pré-vérif et post-vérif passent. Co-Authored-By: Claude Opus 4.6 (1M context) --- agent_v0/agent_v1/core/executor.py | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/agent_v0/agent_v1/core/executor.py b/agent_v0/agent_v1/core/executor.py index c73c2da55..d89c2c229 100644 --- a/agent_v0/agent_v1/core/executor.py +++ b/agent_v0/agent_v1/core/executor.py @@ -236,8 +236,23 @@ class ActionExecutorV1: from ..window_info_crossplatform import get_active_window_info current_info = get_active_window_info() current_title = current_info.get("title", "") - # Comparer les titres (partiel — le titre peut varier légèrement) - if expected_title.lower() not in current_title.lower() and current_title.lower() not in expected_title.lower(): + # Comparer sur le nom de l'APPLICATION (après le –/-) + # "blocnote.txt – Bloc-notes" et "voiture.txt – Bloc-notes" + # sont la même app, seul le fichier change + def _app_name(title): + for sep in [" – ", " - ", " — "]: + if sep in title: + return title.split(sep)[-1].strip().lower() + return title.strip().lower() + + current_app = _app_name(current_title) + expected_app = _app_name(expected_title) + title_match = ( + current_app == expected_app + or expected_title.lower() in current_title.lower() + or current_title.lower() in expected_title.lower() + ) + if not title_match: logger.warning( f"PRÉ-VÉRIF ÉCHOUÉE : attendu '{expected_title}', " f"actuel '{current_title}' — STOP" @@ -369,7 +384,10 @@ class ActionExecutorV1: elapsed_wait += poll_interval post_info = get_active_window_info() post_title = post_info.get("title", "") - if (expected_after.lower() in post_title.lower() + post_app = _app_name(post_title) + expected_app_after = _app_name(expected_after) + if (post_app == expected_app_after + or expected_after.lower() in post_title.lower() or post_title.lower() in expected_after.lower()): matched = True break