fix: require BAP before original PDF exports

This commit is contained in:
Manus
2026-10-09 08:44:02 +00:00
parent e402233120
commit 939dddd1d8
6 changed files with 157 additions and 6 deletions

51
todo.md
View File

@@ -1,5 +1,56 @@
# Invoice Analyzer - TODO
## Cohérence export / BAP — production — 09/10/2026
- [x] Tracer les états : Amazon et Inmac ont été exportées par le flux PDF générique le 30/09, sans BAP validé ni historique BAP
- [x] Bloquer tout nouvel export PDF hors abonnement avant validation BAP et rendre l’état historique explicite dans l’interface
- [ ] Valider la correction en recette puis promouvoir en production sans altérer les PDF ni l’historique existant
## Incident import LIFEN — production — 09/10/2026
- [x] Tracer l’import : PDF stocké, échec lors de l’invocation Référentiel IA (HTTP 400) avant la réponse du modèle
- [x] Identifier la cause : le contrat Référentiel IA exige `engineSlug`, absent de l’invocation ; ajouter le routage et le test de non-régression
- [x] Déployer le routage corrigé en recette et production, contrôler les conteneurs, les routes et les volumes PDF
- [x] Permettre le retraitement production d’une source en erreur sans facture, actuellement bloquée à tort comme doublon
- [x] Retraiter la facture LIFEN via le flux applicatif : 1 facture créée, score 100, statut terminé ; santé et volume PDF validés
## Incident Santino rapide — recette — 02/10/2026
- [x] Tracer la réponse de Santino rapide : génération tronquée pendant `extractedText`, sans fermeture JSON
- [x] Confirmer la limite de sortie : SANTINO Rapide interrompt à 512 tokens (`finishReason: length`)
- [x] Réduire la sortie IA au JSON métier et conserver le texte PDF localement
- [x] Déployer et valider une extraction réelle par SANTINO Rapide en recette
## Réimport après suppression — recette — 02/10/2026
- [x] Retirer le blocage de réimport des factures supprimées dans tous les flux
- [x] Valider qu’une facture supprimée peut être réimportée sans être déclarée doublon
## Incident affichage après import — recette — 02/10/2026
- [x] Contrôler la facture importée, les filtres actifs et l’identité de session : suppression suivie d’une liste noire résiduelle
- [x] Restaurer la facture demandée : 1 facture créée, score 100, statut terminé
- [ ] Déployer l’explication explicite des imports sans facture créée et vérifier la liste recette
## Correction score de qualité à l’import — recette — 02/10/2026
- [x] Auditer les flux d’extraction IA et aligner upload, e-mail, dossier et connecteur web sur le recalcul déterministe
- [x] Ajouter des tests d’exécution du calcul partagé utilisé par chaque flux d’import
- [x] Valider le score de la facture J6LNGDAL0021 et déployer en recette
- [x] Ajouter des tests d’exécution nommés pour chaque flux et rejouer l’import manuel en recette sans SQL de score
## Incident import manuel de PDF — recette — 02/10/2026
- [x] Tracer l’import du PDF soumis et identifier le point de blocage
- [x] Corriger le traitement des caractères de contrôle dans la réponse IA
- [x] Valider le retraitement complet du PDF déjà soumis en recette
- [x] Valider un upload manuel isolé avec une copie de test, puis supprimer toutes ses traces
## Régression signalée d’import manuel — recette — 02/10/2026
- [x] Tracer le dernier import après purge : les sources PDF et leur empreinte sont restées en base
- [x] Corriger la réanalyse des sources du même utilisateur restées vides après purge
- [x] Retirer l’entrée de liste noire résiduelle correspondant au PDF explicitement réimporté
- [x] Valider la réanalyse avec le PDF concerné en recette
## Correction suppression de facture — recette — 02/10/2026
- [x] Reproduire l’échec d’archivage dans `deletedInvoices` et identifier l’écart schéma/code
- [x] Corriger la persistance d’archivage et supprimer les détails SQL de l’interface
- [x] Tester le flux tRPC réel avec une facture de test, puis vérifier son archivage et son absence persistante
- [x] Déployer uniquement en recette sans toucher aux volumes PDF
## Choix du moteur IA — Paramètres — 30/09/2026
- [x] Analyser la configuration IA locale et le contrat du Référentiel IA
- [x] Ajouter le choix entre moteur local et moteur sélectionné dans le Référentiel IA