# Bug — Pré-check OCR spatialement aveugle ## Date de découverte 2026-05-08, lors du test live du commit 2e76b44ff (log instrumentation) ## Constat Sur les onglets adjacents (Imagerie / Notes médicales à 3 px d'écart dans la maquette urgences), le pré-check OCR valide à tort des clics sur le mauvais onglet. ## Cause technique La fonction _text_match_fuzzy (resolve_engine.py:2285) vérifie la PRÉSENCE du texte attendu dans le crop OCR (radius_px=280, soit zone 560×560 px) mais pas sa POSITION par rapport au point cliqué. Le crop englobe plusieurs onglets adjacents → n'importe lequel des onglets matchant valide le clic. ## Logs exemples Trois logs représentatifs du test du 2026-05-08 : ``` mai 08 22:16:26.977119 [REPLAY] Pre-check OCR ACTIF : 'Examens cliniques' attendu @ (0.2280, 0.2805) via hybrid_text_direct — observed='Al Voice Generator Bookmarks archivtech com Maquette POC ssier en cours Codage ' is_valid=True (115ms) mai 08 22:16:33.048260 [REPLAY] Pre-check OCR ACTIF : 'Imagerie' attendu @ (0.2305, 0.2676) via hybrid_text_direct — observed='9 Al Voice Generator_ Bookmarks archivtech.com Maquette POC sier en cours Statis' is_valid=True (86ms) mai 08 22:16:43.045705 [REPLAY] Pre-check OCR ACTIF : 'Notes médicales' attendu @ (0.2020, 0.2800) via template_matching — observed='18 Al Voice Generator_ Bookmarks archivtech. Urgences Maquette POC Dossier en co' is_valid=True (99ms) ``` ## Options de fix **Option A — Réduire radius_px** - Pro : simple (1 ligne) - Con : casse la validation des textes longs ("Synthèse Urgences") **Option B — Bboxes individuelles EasyOCR + vérification distance** - Pro : robuste, gère textes longs et onglets serrés - Con : changement de logique de _text_match_fuzzy, pas tweak ## Décision Reporté à post-démo Kerella. À traiter à froid. Préférence : Option B (plus pérenne). ## Commits liés - 731b5bcae : réactivation pré-check OCR avec calibrage chirurgical - 2e76b44ff : instrumentation log positif qui a révélé le bug