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

146 lines
4.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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
```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
### 🧼 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