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; pourcanonical - 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
recentVersionrécupérée parhistoryService.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.