harden(gui): centraliser fail-close repli + garde-fou logging + doc mutex (revue finale Plan 1a)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-06-25 18:09:52 +02:00
parent 6476fe9f98
commit 2aa5a43261
4 changed files with 14 additions and 9 deletions

View File

@@ -130,10 +130,11 @@ class RunSummary:
def _default_process_fn(doc_path: Path, out_dir: Path) -> dict:
# Import paresseux : aucun manager NER chargé à l'import du runner.
from anonymizer_core_refactored_onnx import process_document
# Passe par make_process_fn pour bénéficier du fail-close P0-1 (refus si le
# NER obligatoire est indisponible), même sur ce chemin de repli.
from gui_v6.engine_bridge import EngineSettings, make_process_fn
return process_document(doc_path, out_dir)
return make_process_fn(EngineSettings())(doc_path, out_dir)
class ProcessingRunner:

View File

@@ -1,7 +1,8 @@
"""Protection multi-instance de la GUI V6 (P0-7).
- Windows (frozen) : mutex nommé kernel via ctypes — c'est CE nom que l'installeur
Inno détecte (``AppMutex``) pour fermer l'app avant une mise à jour (D8).
- Windows (frozen) : mutex nommé kernel via ctypes — ce nom DEVRA être déclaré comme
``AppMutex`` dans installer/Anonymisation.iss (Plan 3 / D8) pour que l'installeur
ferme l'app avant une mise à jour.
- POSIX (dev/test) : verrou ``fcntl`` exclusif sur un fichier dans le dossier app.
"""
@@ -11,7 +12,7 @@ import os
import sys
from pathlib import Path
# Nom partagé avec installer/Anonymisation.iss (AppMutex). NE PAS modifier seul.
# Nom destiné à l'AppMutex de installer/Anonymisation.iss (Plan 3 / D8). NE PAS modifier sans synchroniser le .iss.
APP_MUTEX_NAME = "AivanonymAnonymisationV6"