Manus
d27703f878
Merge remote-tracking branch 'recette/main'
...
Validation applicative / TypeScript, tests et build (push) Successful in 8m30s
# Conflicts:
# app.json
# server/emailImportService.ts
# todo.md
2026-08-22 15:57:13 +00:00
Manus
098d707289
Checkpoint: Remplacement complet de imap 0.8 par ImapFlow : OAuth2 moderne avec jeton brut, TLS strict, traitement séquentiel des messages non lus, verrou anti-concurrence conservé, marquage Seen uniquement après succès, test de connexion adapté, diagnostic OAuth2 et tests unitaires ajoutés. Validation : 31 tests, TypeScript, build et authentification réelle Microsoft 365 réussis.
2026-08-22 15:51:06 +00:00
Manus
66c4940aba
Checkpoint: Version finale après fusion du dépôt Gitea de production et nettoyage contrôlé : empreinte SHA-256 unique des PDF, import IMAP séquencé et non concurrent, protections étendues à toutes les sources, migration validée et suivi de production clôturé.
2026-08-22 10:55:15 +00:00
Manus
147dd6e5a0
Merge remote-tracking branch 'prod-dsi/main'
...
# Conflicts:
# server/emailImportService.ts
2026-08-22 10:39:08 +00:00
Manus
b7525ab51e
Merge remote-tracking branch 'prod/main'
2026-08-22 10:33:05 +00:00
Manus
d729a94a96
Checkpoint: Correction robuste des doublons de factures : empreinte SHA-256 unique des PDF sources, détection globale avant import manuel/email/dossier/web, verrou contre les vérifications IMAP concurrentes, attente réelle de fin de traitement avant marquage lu, migration et tests de non-régression.
2026-08-22 10:31:54 +00:00
Manus Admin
957494f8ef
ci: trigger
2026-08-21 13:48:09 +02:00
Manus CI
269823fd78
CI fix : corrections pour CI production
2026-08-21 11:47:55 +00:00
Manus CI
295bb26378
CI : workflow validate.yml, manifeste ci.required:true, garde VITEST, tests isolés
2026-08-21 11:15:58 +00:00
Manus Admin
de797c1c0b
fix: empêcher la duplication massive de fichiers lors de l import email
...
- markSeen: true pour marquer les emails immédiatement
- Vérification doublon avant stockage (findSourceFileByFileName)
- Verrou anti-concurrence par utilisateur
2026-08-18 15:05:31 +02:00
Manus Admin
de76a761a3
fix: empêcher la duplication massive de fichiers lors de l'import email
...
- Marquer les emails comme lus immédiatement (markSeen: true)
- Vérifier si le fichier existe déjà avant de le stocker (findSourceFileByFileName)
- Ajouter un verrou anti-concurrence par utilisateur (runningChecks)
- Empêche la création de ~570x doublons par facture
2026-08-18 14:50:31 +02:00
Manus
8759d85f3d
Merge remote-tracking branch 'recette/main'
2026-08-18 07:42:06 +00:00
Manus
e39dd38bec
chore: suivi du déploiement recette
2026-08-18 07:40:54 +00:00
Manus
89c65ca979
chore: versionner le manifeste de déploiement
2026-08-18 09:40:27 +02:00
Manus
eecbd07b5c
chore: versionner le manifeste de déploiement
2026-08-17 22:35:40 +02:00
Manus
d8b2a8fe6f
Checkpoint: Correction complémentaire : normalisation stricte des valeurs OAuth de loginMethod avant insertion DB, afin d’éviter les erreurs de troncature causées par les identifiants de plateforme externes. Ajout de tests associés et validation build complète.
2026-08-17 20:25:16 +00:00
Manus
54164b1b33
Checkpoint: Audit technique : suppression des composants, scripts et dépendances inutilisés ; chargement différé des pages ; génération de sauvegardes SQL robuste par lots ; centralisation des contrôles d’accès ; sécurisation des cookies Azure et imports web ; documentation de maintenance et 5 tests de non-régression ajoutés.
2026-08-17 20:21:58 +00:00
Manus
6b83361056
Checkpoint: mysqldump n'est pas disponible dans le container Node.js. Remplacement par un dump SQL généré directement via mysql2 : SHOW CREATE TABLE + SELECT * pour chaque table, avec échappement correct des valeurs.
2026-08-08 10:52:58 +00:00
Manus
d3426c1663
Checkpoint: Correction de l'erreur "non authentifié" sur /api/db-backup : utilisation de parseCookies(req.headers.cookie) au lieu de req.cookies (qui nécessitait cookie-parser non installé).
2026-08-08 10:41:01 +00:00
Manus
4ce2d2877a
Checkpoint: Ajout onglet Sauvegarde DB dans ImportSettings : endpoint POST /api/db-backup (mysqldump), GET /api/db-backup/:filename, procédures tRPC backup.list et backup.delete, composant BackupSection avec liste des sauvegardes et téléchargement.
2026-08-08 10:04:57 +00:00
Manus
711ce6b83a
Checkpoint: Ajout du système de connecteurs web : table webImportSources, CRUD tRPC, page WebImportSources.tsx, endpoint /api/web-import/push-invoice, script cron SFR (scripts/web-import/sfr-connector.mjs)
2026-07-30 13:53:07 +00:00
Manus
bcb307bde1
Checkpoint: Tous les boutons d'action (Excel, ZIP, Valider tout BAP, Importer, Supprimer, Dévalider BAP, Relancer) et la recherche sont maintenant sur une seule ligne dans le cartouche vert pastel, avec les filtres période et statut en dessous.
2026-07-30 12:48:20 +00:00
Manus
295ba29329
Checkpoint: Zone de filtres Factures BAP refactorisée en 3 lignes dans un cartouche vert émeraude pastel : ligne 1 (recherche), ligne 2 (filtres période année/mois), ligne 3 (boutons statut + tri aligné à droite).
2026-07-30 12:37:32 +00:00
Manus
ac0594f5db
Checkpoint: Zone de filtres Factures refactorisée en 3 lignes dans un cartouche bleu pastel : ligne 1 (recherche + compact/détail), ligne 2 (destinataire, abonnement, entité, ventilation comptable), ligne 3 (boutons statut export + tri par date).
2026-07-30 12:24:15 +00:00
Manus
5d18dfa468
Checkpoint: Ajout de la table deletedInvoices (blacklist) : quand une facture est supprimée, son numéro est enregistré et l'import email/fichier ne la réimporte plus.
2026-07-30 09:48:00 +00:00
Manus
aebc607e8a
Checkpoint: Ajout de deux nouveaux filtres sur la page Factures : Abonnement (OUI/NON basé sur isSubscription) et Entité (SANTINOVA/ITINOVA basé sur ventilationComptable === 'SANTINOVA'). Filtrage côté client, aucune modification backend nécessaire.
2026-07-30 08:15:56 +00:00
Manus
827c9ec41e
Checkpoint: Ajout de Google Gemini (gemini-2.0-flash) comme 3ème moteur IA : schéma DB mis à jour (enum aiProvider + colonne geminiApiKey dans userSettings et importSettings), llm.ts mis à jour avec routing vers l'API Google AI Studio (compatible OpenAI), fenêtre de configuration IA mise à jour avec 3 cartes (Mistral / Gemini / Manus) et champ clé API Gemini.
2026-07-27 15:55:07 +00:00
Manus
46a61fca0e
Checkpoint: Ventilations, automatismes, services et signatures sont maintenant globaux (sans filtre userId). Doublons supprimés en production.
2026-07-13 10:21:46 -04:00
Manus
1951b9b9d1
Checkpoint: Les admins voient désormais toutes les factures (tous userId) : getById, update, delete, validateBAP, devalidateBAP, validateBAPBulk, reprocessSelected, regenerateBapPdf, search, exportToExcel, exportToPdf, exportSFTP, bapHistory.delete/regenerate — tous corrigés pour les admins.
2026-07-13 08:13:49 -04:00
Manus
a994ec2e61
Checkpoint: Fix: colonne azureAdId agrandie à VARCHAR(128) pour accepter les identifiants Azure AD composés (objectId.tenantId). Migration appliquée en production.
2026-07-07 06:20:33 -04:00
Manus
8ee10602d3
Checkpoint: Ajout de la connexion OAuth2 Microsoft 365 (Azure AD) : route callback /api/auth/azure/callback, bouton Microsoft sur la page de login, variables d'environnement Azure AD configurées
2026-07-07 05:54:46 -04:00
Manus
d4c9bf635a
Checkpoint: Fix: la procédure deleteAll des importLogs permet maintenant aux admins de supprimer tous les logs (pas seulement les leurs). Correction de deleteAllImportLogs dans db.ts pour accepter userId=null (suppression totale).
2026-06-17 06:20:40 -04:00
Manus
f7d3f6d5b3
Checkpoint: Ajout colonne "Source import" (Email / Dossier / Fichier) dans l'historique des imports : schéma DB migré, backend mis à jour (routers.ts, emailImportService.ts, folderImportService.ts), frontend History.tsx avec badges colorés dans le tableau et le dialog de détails.
2026-06-17 06:11:46 -04:00
Manus
b97efb5c57
Checkpoint: Fix: bouton de téléchargement PDF BAP pour factures validées sans PDF (NOVRH VF11521, EVOLUCARE ET098857). Ajout procédure regenerateBapPdf côté serveur + bouton orange RefreshCw côté frontend pour régénérer le PDF à la volée. Déployé en recette et production.
2026-06-17 03:41:18 -04:00
Manus
756f8ab392
fix: stabiliser validatedInvoiceIds avec useMemo pour bouton téléchargement BAP
2026-06-16 12:29:58 -04:00
Manus
1a09c98ef5
fix: exportStatus mis à jour à 'exported' après validation BAP (unitaire et en masse)
2026-06-16 12:18:40 -04:00
Manus
22b34fcf1e
fix: nommage fichiers BAP - format AAAA-MM-JJ - Fournisseur - NFacture.pdf
2026-06-15 12:28:04 -04:00
Manus
b34e145d5d
feat: bouton Dévalider BAP, barre actions 2 lignes, suppression colonne Utilisateur
2026-06-15 12:14:25 -04:00
Manus
a9387eaaea
feat: détection doublons par numéro+montant dans les 3 points d'import
2026-06-15 12:02:24 -04:00
Manus
295965fa57
true message
2026-06-15 11:54:58 -04:00
Manus
2fde4f92a6
feat: mode compact/détail, tri date réception/facturation, suppression colonne utilisateur
2026-06-12 09:00:56 -04:00
Manus
f49eadda2b
feat: warningMessage quota IA dans rapports d'import + redémarrage auto services
2026-06-09 12:15:26 -04:00
Manus
595f5dded1
fix: appliquer les règles d'automatisation (ventilation) lors de l'import email
2026-06-09 10:48:29 -04:00
Manus
6c7828d829
fix: transmettre aiSettings (provider Manus) lors de l'import email
2026-06-09 10:20:17 -04:00
Manus
056bccd985
Checkpoint: Ajout de la colonne 'Export SP' dans le tableau historique de Ventilation FreePro : icône horloge grise = non exporté, icône verte = exporté (date au survol), icône rouge = erreur (message au survol). Le statut est sauvegardé en base (sharepointUploadStatus, sharepointUploadPath, sharepointUploadError, sharepointExportedAt) lors de chaque export via 'Envoyer vers SharePoint'.
2026-06-08 10:53:34 -04:00
Manus
43cacda7ad
Checkpoint: Correction des montants des lignes de ventilation : application d'un coefficient de redistribution proportionnel (totalTtc_officiel / totalTtc_calculé) sur chaque ligne pour que leur somme corresponde exactement au total TTC officiel FreePro. Les montants sont maintenant cohérents avec le portail.
2026-06-08 10:38:58 -04:00
Manus
ed01a07105
Checkpoint: Correction des montants TTC : utilisation du total_ttc retourné par l'API /api/api_red_october/v1/invoices au lieu de recalculer depuis les lignes CSV. Les montants correspondent maintenant exactement au portail FreePro.
2026-06-08 10:30:03 -04:00
Manus
9de1a767fa
Checkpoint: Récupération automatique FreePro opérationnelle : utilisation de l'API REST interne Angular /api/api_red_october/v1/invoices pour lister les factures, puis téléchargement CSV via /account/invoice/{ref}/primary_csv. 6 factures importées automatiquement (01/2026 à 06/2026).
2026-06-08 10:16:52 -04:00
Manus
f3e985af5f
Checkpoint: Fix testConnection : le backend lit désormais le mot de passe directement en base (jamais exposé au frontend). Timeout porté à 25s. Détection correcte de invalid_credentials dans la réponse JSON FreePro.
2026-06-08 09:58:58 -04:00
Manus
f676395973
Checkpoint: Correction du bouton "Tester la connexion" FreePro :
...
- Backend : réécriture de loginToFreePro avec timeout 15s, gestion robuste des erreurs, multiples endpoints tentés, vérification de l'accès /account/ pour confirmer la connexion
- Frontend : suppression de la garde incorrecte sur loginPassword === "••••••••", validation par trim() + includes("@") + longueur minimale
- Résultat : le bouton répond maintenant et retourne un message d'erreur explicite si les credentials sont incorrects
2026-06-08 09:42:32 -04:00