4.6 KiB
4.6 KiB
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:18000vershttp://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
.pendingpour 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/resultsretourne maintenantpending,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: InterfaceFolderResponseétenduesrc/store/documentSlice.ts: État et actions pour le système de pendingsrc/App.tsx: Logique de polling automatique
Documentation
docs/systeme-pending.md: Documentation complète du systèmedocs/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
- Redémarrer le serveur backend
- Redémarrer le frontend
- Vérifier les logs de nettoyage au démarrage
- 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