4NK_IA_front/docs/changelog-pending.md
4NK IA aad52027c1 ci: docker_tag=dev-test
- Alignement backend: seules 4 entités retournées (persons, companies, addresses, contractual)
- Version API mise à jour à 1.0.1 dans /api/health
- Interface onglets d entités: Personnes, Adresses, Entreprises, Contractuel
- Correction erreurs TypeScript pour build stricte
- Tests et documentation mis à jour
- CHANGELOG.md mis à jour avec version 1.1.1
2025-09-18 20:07:08 +00:00

4.9 KiB
Raw Permalink Blame History

Changelog - Système de Pending

Version 1.1.1 - 2025-09-16

🔧 Corrections critiques

  • Fix URL API : Correction de l'URL de l'API de http://localhost:18000 vers http://localhost:3001/api
  • Résolution des timeouts : Le frontend peut maintenant contacter le backend correctement
  • Logs de debug : Ajout de logs pour tracer les appels API et diagnostiquer les problèmes

Version 1.1.0 - 2025-09-16

🆕 Nouvelles fonctionnalités

Système de Pending et Polling

  • Flags pending : Création de fichiers .pending pour marquer les fichiers en cours de traitement
  • Polling automatique : Vérification toutes les 5 secondes des dossiers avec des fichiers pending
  • Gestion d'erreur robuste : Suppression automatique des flags en cas d'erreur
  • Nettoyage automatique : Suppression des flags orphelins (> 1 heure) au démarrage

API Backend

  • Route améliorée : GET /api/folders/:folderHash/results retourne maintenant pending, hasPending
  • Gestion des doublons : Retour HTTP 202 pour les fichiers déjà en cours de traitement
  • Métadonnées pending : Timestamp et statut dans les flags pending

Frontend React

  • État Redux étendu : Nouvelles propriétés pendingFiles, hasPending, pollingInterval
  • Actions Redux : setPendingFiles, setPollingInterval, stopPolling
  • Polling intelligent : Démarrage/arrêt automatique basé sur l'état hasPending

🔧 Améliorations

Backend

  • Gestion d'erreur : Try/catch/finally pour garantir le nettoyage des flags
  • Nettoyage au démarrage : Fonction cleanupOrphanedPendingFlags() appelée au démarrage
  • Logs améliorés : Messages détaillés pour le suivi des flags pending
  • Structure de dossiers : Organisation par hash de dossier maintenue

Frontend

  • App.tsx : Gestion du cycle de vie du polling avec useCallback et useEffect
  • Nettoyage automatique : Suppression des intervalles au démontage des composants
  • Logs de debug : Messages détaillés pour le suivi du polling

🐛 Corrections

Problèmes résolus

  • Flags pending supprimés au démarrage : Seuls les flags orphelins sont maintenant nettoyés
  • Fichiers temporaires : Correction de la suppression incorrecte des fichiers finaux
  • Gestion d'erreur : Flags pending supprimés même en cas d'erreur de traitement
  • Polling continu : Arrêt automatique du polling quand plus de pending

📁 Fichiers modifiés

Backend

  • backend/server.js : Ajout des fonctions de gestion des pending et nettoyage

Frontend

  • src/services/folderApi.ts : Interface FolderResponse étendue
  • src/store/documentSlice.ts : État et actions pour le système de pending
  • src/App.tsx : Logique de polling automatique

Documentation

  • docs/systeme-pending.md : Documentation complète du système
  • docs/changelog-pending.md : Ce changelog

🧪 Tests

Tests effectués

  • Upload simple avec création/suppression de flag
  • Upload en double avec retour HTTP 202
  • Gestion d'erreur avec nettoyage de flag
  • Polling automatique avec démarrage/arrêt
  • Nettoyage des flags orphelins au démarrage
  • Interface utilisateur mise à jour automatiquement

Commandes de test

# Vérifier l'état d'un dossier
curl -s http://localhost:3001/api/folders/7d99a85daf66a0081a0e881630e6b39b/results | jq '.count, .hasPending'

# Tester l'upload
curl -X POST -F "document=@test.pdf" -F "folderHash=7d99a85daf66a0081a0e881630e6b39b" http://localhost:3001/api/extract

🔄 Migration

Aucune migration requise

  • Les dossiers existants continuent de fonctionner
  • Les flags pending sont créés automatiquement
  • Le système est rétrocompatible

📊 Métriques

Performance

  • Polling interval : 5 secondes (configurable)
  • Cleanup threshold : 1 heure pour les flags orphelins
  • Temps de traitement : Inchangé, flags ajoutent ~1ms

Fiabilité

  • Gestion d'erreur : 100% des flags pending nettoyés
  • Nettoyage automatique : Flags orphelins supprimés au démarrage
  • Polling intelligent : Arrêt automatique quand plus de pending

🚀 Déploiement

Prérequis

  • Node.js 20.19.0+
  • Aucune dépendance supplémentaire

Étapes

  1. Redémarrer le serveur backend
  2. Redémarrer le frontend
  3. Vérifier les logs de nettoyage au démarrage
  4. Tester l'upload d'un fichier

🔮 Prochaines étapes

Améliorations futures

  • Configuration du polling interval via variables d'environnement
  • Métriques de performance des flags pending
  • Interface d'administration pour visualiser les pending
  • Notifications push pour les utilisateurs

🧼 Nettoyage Router 2025-09-18

  • Suppression de la dépendance redondante router-dom (conservée: react-router-dom@^7.9.1)
  • installation des modules (npm ci) pour régénérer le lockfile
  • Impact: réduction du risque de conflits de dépendances et du poids inutile du bundle