- 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
146 lines
4.9 KiB
Markdown
146 lines
4.9 KiB
Markdown
# 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`)
|
||
- Ré‑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
|