129 Commits

Author SHA1 Message Date
Manus
16759b4ad5 feat: purge import history by retention 2026-10-09 10:22:46 +00:00
Manus
6d72547509 fix: paginate import history and report 2026-10-09 09:58:08 +00:00
Manus
939dddd1d8 fix: require BAP before original PDF exports 2026-10-09 08:44:02 +00:00
Manus
aebdafd026 Checkpoint: Paramètres > Intelligence IA affiche désormais automatiquement le moteur, et le modèle quand il est fourni, décidés par le Référentiel IA dès sa sélection. La consultation ne transmet aucune facture ; un état de chargement et une reprise sur erreur sont affichés. Test Référentiel IA, TypeScript et build validés. 2026-10-02 15:13:56 +00:00
Manus
32b07370d8 Checkpoint: Correction Référentiel IA déployée en recette : une variable de jeton vide ne masque plus le secret Docker monté. La mutation exacte du bouton Paramètres > Intelligence IA est validée avec une session de contrôle : connexion réussie, application Démat. Facturation DSI et moteur Manus Forge. Conteneur healthy, routes HTTP 200 et volume PDF (301 fichiers) conservés. 2026-10-02 15:07:38 +00:00
Manus
edb4726d5f Checkpoint: Correction recette : une variable REFERENTIEL_IA_TOKEN vide masquait le secret Docker monté. Le serveur privilégie désormais un jeton explicite non vide et bascule vers le fichier secret sinon. Test de non-régression ajouté ; 89 tests, TypeScript et build validés. 2026-10-02 15:01:42 +00:00
Manus
eba192e159 docs: record controlled referential ia invocation 2026-09-30 16:38:06 +00:00
Manus
136797ca36 Merge remote-tracking branch 'user_github/main'
# Conflicts:
#	server/webImportSourcesMigration.test.ts
#	todo.md
2026-09-30 16:35:50 +00:00
Manus
84cb2ac805 docs: record recipe referential ia activation 2026-09-30 16:34:40 +00:00
Manus
e9d25d9270 feat: route invoice analysis through referentiel ia 2026-09-30 16:20:22 +00:00
Manus
e08df31909 Checkpoint: Ajout du déclenchement manuel pour les connecteurs web SFR : confirmation explicite, automate Chromium côté serveur, récupération des PDF par session authentifiée et injection dans le flux existant de stockage/dédoublonnage/analyse. Le bouton est désactivé pour les types sans moteur réellement livré. Le résultat affiche factures importées et doublons, sans créer de planification. Chromium et playwright-core sont intégrés à l’image. Validation locale : 77 tests, TypeScript et build. 2026-09-30 14:39:43 +00:00
Manus
405649c606 Checkpoint: Création de connecteur web : l’URL est normalisée, la table est présente sur les trois environnements et le flux HTTPS de production a été validé avec le même profil utilisateur (création puis suppression sans résidu). Toute erreur de persistance est désormais remplacée côté navigateur par un message générique ; les logs ne conservent que le code technique MySQL/Drizzle, jamais la requête ni ses paramètres. Recette et production déployées, santé, MySQL, routes HTTP 200 et volumes PDF vérifiés. Suite validée : 75 tests, TypeScript et build. 2026-09-30 14:28:48 +00:00
Manus
b294c11a52 Checkpoint: Les erreurs de création de connecteur sont désormais neutralisées côté API : aucune requête SQL ni aucun paramètre de connexion ne peut être renvoyé au navigateur. Un test dédié le garantit. Le flux public HTTPS de production a été validé pour le même profil utilisateur : création, normalisation https et suppression réussies, sans ligne résiduelle. 74 tests, TypeScript et build validés. 2026-09-30 13:55:08 +00:00
Manus
137c1f0652 Checkpoint: La migration de création de webImportSources est rendue idempotente avec CREATE TABLE IF NOT EXISTS. Un test garantit la présence des colonnes de connecteur et l’absence de modification de la table factures. 73 tests, TypeScript et build validés ; aucune donnée métier n’a été modifiée. 2026-09-30 13:26:07 +00:00
Manus
26eec3831a Checkpoint: Les connecteurs web acceptent désormais les noms de domaine saisis sans protocole : HTTPS est ajouté automatiquement dans l’interface et à l’API. Les URL HTTP(S) valides restent acceptées et les adresses incorrectes affichent un message métier clair. Sept tests dédiés, la suite complète (71 tests), TypeScript et build ont été validés. 2026-09-30 12:52:53 +00:00
Manus
082e6d8326 Checkpoint: Le score de qualité est désormais recalculé et persisté par le serveur après chaque modification manuelle de facture. Il s’appuie sur les champs obligatoires configurés pour le propriétaire de la facture, conserve un référentiel par défaut en l’absence de configuration et accepte explicitement un compte ayant rendu tous ses champs optionnels. Le calcul local non persisté de la page détail est supprimé. 64 tests, TypeScript et build validés. 2026-09-30 10:16:27 +00:00
Manus
5aa2b9e285 Checkpoint: Réception automatique e-mail sécurisée : le planificateur est créé uniquement après un test IMAP concluant, les erreurs d’authentification sont affichées explicitement et ne déclenchent plus de boucle. Les administrateurs peuvent sélectionner, démarrer, arrêter et suivre le compte source déjà configuré sans afficher ni recopier de secrets. Tests de démarrage réussi/refusé, arrêt et ciblage de compte ajoutés ; 59 tests, TypeScript et build validés. 2026-09-24 09:34:22 +00:00
Manus
fcde121438 Checkpoint: La version f7cfa73 est déployée en recette et production. Les règles de destination sont résolues facture par facture pour les exportations d’abonnements, avec repli des paramètres globaux. Les deux conteneurs sont sains, les routes abonnements répondent HTTP 200, les volumes PDF sont montés et le dashboard de production voit l’application active. 2026-09-04 10:57:39 +00:00
Manus
f7cfa73206 Checkpoint: Les exportations PDF manuelles résolvent désormais une destination facture par facture via les règles actives d’Automatismes d’export, y compris pour les factures d’abonnement. Les paramètres globaux demeurent le repli ; les destinations Teams et SharePoint utilisent l’envoi Microsoft existant. Suite complète : 56 tests, TypeScript et build validés.
All checks were successful
Validation applicative / TypeScript, tests et build (push) Successful in 3m6s
2026-09-04 10:44:41 +00:00
Manus
1b7a46e05f Checkpoint: Le garde-fou de stockage distingue désormais les environnements : les serveurs Santinova exigent explicitement REQUIRE_STORAGE_VOLUME=true et bloquent sans volume PDF monté, tandis que l’hébergement cloud crée le répertoire local nécessaire sans arrêter le démarrage. Les tests, TypeScript, build et une sonde de démarrage cloud sont validés. 2026-09-03 15:35:55 +00:00
Manus
2c5b285e54 Checkpoint: Les deux environnements utilisent désormais le commit a13fe40 : le volume PDF historique est externe, monté avec nocopy, contrôlé au démarrage et inclus dans le healthcheck. Les volumes contiennent et servent toujours 300 fichiers en recette et 147 en production ; les deux services répondent HTTP 200. 2026-09-03 09:27:03 +00:00
Manus
a13fe40eb4 Checkpoint: Le stockage PDF devient un volume Docker externe explicitement nommé, avec nocopy. Le conteneur refuse de démarrer si /app/storage n’est pas un montage inscriptible, et son healthcheck contrôle aussi ce montage. Les tests, TypeScript et build ont été validés.
All checks were successful
Validation applicative / TypeScript, tests et build (push) Successful in 3m20s
2026-09-03 09:20:33 +00:00
Manus
eb2c9cc6b6 Checkpoint: Le volume persistant demat_facturation_storage est de nouveau monté sur /app/storage en production et les deux comptes Microsoft ADM.pareige et Olivier Pareige sont administrateurs, avec accès aux 146 factures globales. Les contrôles de conteneur, stockage et réponse PDF publique sont validés. 2026-09-03 07:36:04 +00:00
Manus
bd48ef52d2 Checkpoint: Le volume demat_facturation_storage est monté sur /app/storage, répertoire réellement servi par Express et utilisé pour les PDF source. Test de non-régression ajouté au compose. Les tests, TypeScript et build sont validés avant l’application ciblée en production. 2026-09-02 15:52:23 +00:00
Manus
53edecf4e7 Checkpoint: Incident 404 production corrigé : le domaine Traefik est désormais configurable via APP_DOMAIN, configuré avec le domaine production sur le serveur. Le service applicatif est sain et les routes publiques racine et Automatismes répondent HTTP 200. La base et les volumes n’ont pas été touchés. 2026-09-02 15:21:44 +00:00
Manus
b5f2cb48fe Checkpoint: Le routage Traefik utilise désormais APP_DOMAIN avec le domaine recette comme repli, ce qui évite qu’une image de production serve un routeur vers la recette. Test unitaire de configuration ajouté ; 53 tests, TypeScript et build validés. 2026-09-02 15:19:28 +00:00
Manus
fe0961ab39 Checkpoint: Version f7c522b1 déployée en recette et production : conteneurs sains, routes Automatismes et Paramètres en HTTP 200, migrations importTrigger et exportAutomationRules appliquées, dashboard production vérifié. Les deux factures SFR importées avant la création de leur règle ont été mises à jour avec OPEX, DSI SANTINOVA, ventilation SANTINOVA et abonnement Oui après confirmation. 2026-09-02 14:11:02 +00:00
Manus
f7c522b18e Checkpoint: Les onglets Automatismes d’import et Automatismes d’export sont visuellement différenciés en bleu et violet. Le libellé « Mode d’export BAP » devient « Mode d’export » et le texte de repli ne mentionne plus BAP. Tests, TypeScript et rendu visuel validés en sandbox.
All checks were successful
Validation applicative / TypeScript, tests et build (push) Successful in 2m15s
2026-09-02 12:42:46 +00:00
Manus
071376c9b1 Checkpoint: La configuration Microsoft Azure AD est de nouveau centralisée dans Paramètres : URL SharePoint, Tenant ID, Client ID, secret masqué, date d’expiration et tests de connexion/upload. Les Automatismes d’export ne contiennent plus d’identifiants et restent dédiés aux règles de destination. Tests, TypeScript, build et rendu de la page Paramètres validés en sandbox. 2026-09-02 12:31:50 +00:00
Manus
582ca77f28 Checkpoint: Automatismes séparé en onglets Import et Export. Les règles d’export ciblent un destinataire ou une ventilation, avec destination locale, Teams ou SharePoint et ouverture navigateur optionnelle. La validation BAP unique ou en masse applique la première règle active par priorité puis conserve le paramétrage historique comme repli. Paramètres d’export déplacés vers Automatismes et page renommée Paramètres. Migration additive, tests, TypeScript, build et contrôles visuels validés. 2026-09-02 12:13:23 +00:00
Manus
da19629ee0 Checkpoint: Factures BAP inclut désormais, après Année et Mois, les filtres Destinataires, Entités et Ventilations comptables de la page Factures. Leur logique est identique, avec valeurs absentes et règle SANTINOVA/ITINOVA fondée sur DSI SANTINOVA. Les filtres sont conservés au retour depuis le détail. Tests, TypeScript, build et rendu visuel validés en sandbox. 2026-09-02 11:52:20 +00:00
Manus
0b2f1b781d Checkpoint: Historique des imports enrichi avec le compte, la source, le déclencheur, les résultats, les erreurs et les informations du fichier source. Les administrateurs peuvent déclencher une lecture e-mail ponctuelle pour une boîte configurée, avec confirmation explicite, sans activer ni créer de planification. Migration importTrigger appliquée en sandbox ; TypeScript, 48 tests, build et rendus bureau/mobile validés. 2026-09-02 11:43:23 +00:00
Manus
f53bb82256 Checkpoint: Investigation des deux factures créées le 1er septembre 2026 en production : les deux enregistrements sont rattachés à des sources d’import e-mail du compte utilisateur 2. La planification de ce compte était encore activée avec une cadence de 30 minutes ; elle a depuis été désactivée avec les autres comptes, et le service applicatif a été recréé sans toucher aux données métier. 2026-09-02 10:46:37 +00:00
Manus
4ad6cb2705 Checkpoint: Import e-mail automatique désactivé pour tous les comptes en recette et en production. Seuls les conteneurs applicatifs ont été recréés pour supprimer les planifications en mémoire. Contrôles confirmés : zéro paramètre e-mail activé, aucun redémarrage du service e-mail dans les journaux, conteneurs sains et HTTP 200 sur les deux environnements. 2026-09-01 14:19:19 +00:00
Manus
d692e228de Checkpoint: Budget réel trié par montant total décroissant et graphique annuel BAP versus abonnements déployés et vérifiés en recette puis production. Les routes /dashboard et /real-budget répondent HTTP 200, le conteneur applicatif est sain, et le bundle graphique est actif. Le dashboard et le portail de production référencent déjà l’application en ligne ; aucune modification n’était nécessaire. 2026-08-30 09:27:14 +00:00
Manus
9997e383cc Checkpoint: Budget réel confirmé en ordre décroissant de montant total ; graphique en barres annuel comparant les montants BAP et abonnements ajouté au tableau de bord.
All checks were successful
Validation applicative / TypeScript, tests et build (push) Successful in 3m19s
2026-08-30 08:56:27 +00:00
Manus
5128322a6d Checkpoint: Ajout du récapitulatif annuel BAP et abonnements au tableau de bord, et de Budget réel par fournisseur avec filtres Année/Mois et ventilation abonnements/hors abonnement. 2026-08-29 22:15:35 +00:00
Manus
43fc8d523c Checkpoint: Page Factures abonnements ajoutée après Factures BAP ; filtres Année/Mois et filtres de la page Factures disponibles sur les deux listes ; déploiements recette et production vérifiés. 2026-08-29 18:52:49 +00:00
Manus
cd73dd3d58 Checkpoint: Préparation du déploiement production de la page Factures abonnements et de ses filtres Année/Mois après validation de la recette. 2026-08-29 18:45:38 +00:00
Manus
e2d067ff4b Checkpoint: Ajout de la page Factures abonnements, accessible après Factures BAP, partageant les recherches, filtres et actions de la page Factures. Filtres Année et Mois ajoutés aux deux listes, avec règle date de facture puis réception. 2026-08-29 18:32:12 +00:00
Manus
0b01ebe331 Checkpoint: Seuil BAP unifié à 90 % dans le serveur et l’interface, déployé en recette et production. Les deux environnements répondent HTTP 200, les conteneurs sont actifs et les bundles BAP correspondent au correctif. 2026-08-27 14:29:52 +00:00
Manus
a9a2a4b312 Checkpoint: Seuil BAP à 90 % validé en sandbox et recette. Le manifeste est rétabli vers le dépôt Gitea de production avant promotion ; le suivi du rétablissement recette est mis à jour. 2026-08-27 14:22:06 +00:00
Manus
deb5b5735c chore: préparer le déploiement recette du seuil BAP à 90
Some checks failed
Validation applicative / TypeScript, tests et build (push) Failing after 54m40s
2026-08-27 13:20:18 +00:00
Manus
a0c440dfae Checkpoint: Le seuil d’éligibilité et de validation BAP est centralisé à 90 % dans le serveur et l’interface. Les validations unitaires, TypeScript, build et rendu de la page Factures BAP sont réussis en sandbox. 2026-08-27 13:02:07 +00:00
Manus
a88b342a0d Checkpoint: Filtre par type d’action des automatismes déployé en recette puis production. Les catégories Type d’achat, Service, Ventilation, Abonnement, Abonnement Oui et Abonnement Non sont disponibles. Contrôles HTTP, conteneurs, commit et bundle réussis sur les deux environnements. 2026-08-27 10:16:24 +00:00
Manus
7e1253615b chore: suivre le déploiement du filtre par action 2026-08-27 10:09:52 +00:00
Manus
1a7d5cb64e chore: suivre le déploiement du filtre d actions
All checks were successful
Validation applicative / TypeScript, tests et build (push) Successful in 9m49s
2026-08-27 09:46:34 +00:00
Manus
0536035303 Checkpoint: Ajout d’un filtre par action dans la liste des automatismes, avec catégories Type d’achat, Service, Ventilation, Abonnement, Abonnement Oui et Abonnement Non. Tests, TypeScript, build et rendu visuel validés en sandbox. 2026-08-27 07:02:36 +00:00
Manus
d7677df41b Checkpoint: Correctif Abonnement visible dans les automatismes déployé en recette puis production. Production validée : commit d9c1130, conteneur sain, HTTP 200 et bundle AutomationRules vérifié. 2026-08-26 12:51:08 +00:00
Manus
d9c1130359 Checkpoint: Préparation du déploiement production du correctif de visibilité Abonnement : manifeste restauré vers le dépôt Gitea production et tâches de vérification tracées. 2026-08-26 12:41:50 +00:00