SYNOMAP — DOCUMENTATION MÉTIER V4 Bloc D (Cohérence qBittorrent) Version : 4.0 Date : 2025-11-16 0. OBJET Le Bloc D assure la cohérence entre : - l’intention métier définie par le flux ABC (A/B/C), - et l’état réel des torrents dans qBittorrent (save_path, tags, statut). Il intervient après validation : - du mapping/catégorie (Bloc E), - de l’intégrité FS SRC/DST (Bloc G), - de l’intention métier (Bloc ABC). 1. RÔLE MÉTIER DU BLOC D Le Bloc D garantit que qBittorrent : - utilise le bon chemin de stockage (save_path) en fonction de l’état ABC, - expose les bons tags métier (SYNO / SYNO_OK), - ne se trouve pas dans un état technique dangereux (UNSAFE). En fonctionnement normal, qB doit s’aligner sur la décision métier (Synomap commande). En cas d’état "UNSAFE", le système suspend les corrections et protège le torrent. 2. PHILOSOPHIE D1c (HYBRIDE) - 99 % du temps : qB est subordonné à la logique métier. - 1 % du temps : si qB remonte un statut critique, le métier s’efface et gèle le torrent. Conséquences : - En mode SAFE : le Bloc D corrige save_path et tags pour coller à ABC. - En mode UNSAFE : le Bloc D n’envoie aucune commande à qB, marque le torrent en erreur et bloque ABC pour ce torrent. 3. INVARIANTS MÉTIER - D intervient uniquement après E + G + ABC. - D ne modifie jamais l’intention métier (A/B/C), il l’applique côté qB. - D effectue au plus une correction par torrent et par run (R-ONCE). - D ne boucle jamais sur un même torrent dans un run. - D ne fait rien si qB est déjà cohérent avec ABC et en statut SAFE. 4. ÉTATS MÉTIER DU BLOC D D0_QB_CONSISTENT - qB est aligné sur ABC : - save_path conforme à l’état métier (A/B/C), - tags métier conformes, - statut SAFE. - Le Bloc D ne fait rien, le torrent est validé. D1_SAVE_PATH_MISMATCH - qB est SAFE. - Le save_path ne correspond pas à la valeur attendue pour l’état ABC courant. - Le Bloc D doit corriger le chemin via une commande setLocation (une seule fois par run). D2_TAG_MISMATCH - qB est SAFE. - Le save_path est correct, mais les tags métier sont incomplets ou erronés : - absence de SYNO là où il est attendu (état B), - absence de SYNO_OK en état C, - tags obsolètes qui contredisent l’état métier. - Le Bloc D doit corriger les tags (ajout/retrait) pour refléter ABC. D3_UNSAFE_STATUS - qB remonte un statut dans une liste d’états considérés comme dangereux (UNSAFE). - Le Bloc D ne tente aucune correction. - Le torrent est marqué en erreur via un tag d’erreur dédié et bloqué pour le run. 5. STATUTS UNSAFE (LISTE MINIMALE) Le Bloc D considère a minima comme UNSAFE les statuts suivants (libellés à adapter à l’API qB) : - error - missingFiles - metadataError - ioError - stalledUP (si combiné à un flag d’erreur pertinent) - checkingResumeData (bloqué anormalement) - unknown (état inconnu ou incohérent) Cette liste pourra être enrichie ultérieurement sans modifier la philosophie du Bloc D. 6. TAG MÉTIER D’ERREUR Lorsqu’un torrent est en état D3_UNSAFE_STATUS : - le Bloc D applique ou maintient un tag métier : SYNO_ERR_UNSAFE - ce tag signale qu’un diagnostic technique est nécessaire avant d’autoriser à nouveau ABC/D sur ce torrent. 7. POLITIQUE DE CORRECTION (R-ONCE) Par torrent et par run : - Si D1_SAVE_PATH_MISMATCH : - 1 setLocation vers le chemin attendu, - relecture de l’état qB, - fin des corrections pour ce torrent sur ce run. - Si D2_TAG_MISMATCH : - 1 recalcul complet des tags métier (ajout/retrait), - relecture de l’état qB, - fin des corrections pour ce torrent sur ce run. Les corrections supplémentaires (si nécessaires) seront effectuées lors des runs suivants, jamais dans une boucle locale. 8. PRIORITÉ DES ÉTATS Pour un torrent donné dans un run, la priorité d’analyse est : 1) D3_UNSAFE_STATUS : si qB est unsafe, priorité absolue à la protection. 2) D1_SAVE_PATH_MISMATCH : si SAFE mais save_path incorrect. 3) D2_TAG_MISMATCH : si SAFE, save_path correct mais tags incorrects. 4) D0_QB_CONSISTENT : si aucun problème détecté. 9. IMPACTS MÉTIER - Le Bloc D réduit le risque de divergence silencieuse entre la logique Synomap et la réalité qB. - Il rend les erreurs visibles grâce aux tags métier (SYNO_ERR_UNSAFE). - Il garantit que la migration S2_SYNO_CENTRIC ne repose pas sur une confiance aveugle dans qB, mais sur une vérification active et contrôlée. FIN DU DOCUMENT MÉTIER V4