4NK_IA_front/docs/changelog-pending.md
Nicolas Cantu a7c944621e backend
2025-09-16 05:18:29 +02:00

115 lines
4.3 KiB
Markdown

# Changelog - Système de Pending
## 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
```bash
# 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