Aller au contenu

PD-171 — Acceptabilité

Objectif

Vérifier que l’implémentation est conforme à la spécification, respecte l’ensemble des invariants ProbatioVault et ne présente aucune incohérence ou oubli critique.


Périmètre de vérification

La revue d’acceptabilité vérifie explicitement :

  • la conformité stricte à la spécification fonctionnelle
  • le respect de tous les invariants applicables
  • la couverture des scénarios de test définis
  • l’absence d’incohérences, oublis ou régressions

Écarts identifiés

Classification des écarts

Niveau Définition
BLOQUANT Violation d’un invariant, faille de sécurité, non-conformité majeure à la spec
MAJEUR Fonction incomplète, comportement non conforme mais sans rupture de sécurité
MINEUR Détail, dette acceptable, amélioration non critique

Détail des écarts

ID Description Référence Gravité
E-01 C2 appliqué dès base_version < version_canonique au lieu de < version_canonique - 1, rejetant à tort une mise à jour basée sur version_canonique - 1 pourtant nominale (Spec §4.3.2) Spec §4.3.2 ; src/sync/services/conflict-detector.service.ts:71-84 BLOQUANT
E-02 Conflit C1 jamais détecté : la détection est appelée avec un batch de taille 1 ([batchRequest]), donc aucune règle LWW n’est appliquée ; toute seconde requête devient C2 après incrément canonique, en contradiction avec C1 (Spec §5.3/§5.4.1) Spec §5.3, §5.4.1 ; src/sync/sync.service.ts:121-133 ; src/sync/services/conflict-detector.service.ts:86-109 BLOQUANT

[2025-12-29] — Suivi E-01

  • Statut précédent : OUVERT
  • Statut actuel : RÉSOLU
  • Justification factuelle :
  • La détection C2 est désormais déclenchée uniquement pour base_version < canonical_version - 1; pour canonical - 1, le code vérifie une version récente dans la fenêtre concurrente avant de classer C2.
  • Référence vérification :
  • src/sync/services/conflict-detector.service.ts:90-139
  • Tests : conflict-detector.service.spec.ts (E-01 FIX)

[2025-12-29] — Suivi E-02

  • Statut précédent : OUVERT
  • Statut actuel : RÉSOLU
  • Justification factuelle :
  • La détection C1 fonctionne en batch unitaire via recentVersion récupérée par historyService.getRecentVersion(...); si une requête précédente dans la fenêtre concurrente partage la même base_version, C1/LWW est appliqué.
  • Référence vérification :
  • src/sync/sync.service.ts:121-150
  • src/sync/services/conflict-detector.service.ts:105-139
  • Tests : conflict-detector.service.spec.ts (E-02 FIX)

Conclusion d’acceptabilité

✅ ACCEPTÉ
Date : 2025-12-29
Motif synthétique : Écarts E-01 et E-02 corrigés, conformité retrouvée.