93 Commits

Author SHA1 Message Date
Manus Automation
290e3709e2 feat(ci): ajouter validation et garde-fou de déploiement
All checks were successful
Deploy Production / deploy (push) Has been skipped
Validation applicative / TypeScript, tests et build (push) Successful in 4m19s
Deploy Recette / deploy (push) Successful in 4m59s
2026-08-20 16:40:12 +00:00
Manus
fcafbf1965 fix: restore React rendering in production bundle
All checks were successful
Deploy Production / deploy (push) Has been skipped
Deploy Recette / deploy (push) Successful in 10m34s
2026-08-18 11:51:11 +00:00
Manus
1821937106 ci: isolate recette and production deployment workflows
All checks were successful
Deploy Production / deploy (push) Has been skipped
Deploy Recette / deploy (push) Successful in 1m9s
2026-08-18 11:37:10 +00:00
Manus
720d42cf71 Merge remote-tracking branch 'recette/main'
Some checks failed
Deploy Recette / deploy (push) Failing after 6s
Deploy Production / deploy (push) Successful in 1m5s
2026-08-18 07:50:50 +00:00
Manus
9acc52da7d Checkpoint: Préparation recette : ajout du journal classification_errors, exposition de la cause technique des fallbacks IA, enregistrement non bloquant depuis le moteur RSS, écran d’administration Erreurs IA, route protégée et migration 0013. Validation locale : 28 tests, TypeScript et build de production réussis. 2026-08-18 07:49:11 +00:00
Manus
6f201dd498 chore: versionner le manifeste de déploiement
All checks were successful
Deploy Production / deploy (push) Successful in 56s
Deploy Recette / deploy (push) Successful in 1m12s
2026-08-17 22:38:22 +02:00
Manus
e4a389cc67 Checkpoint: Audit et refactoring : centralisation robuste du suivi lu/non lu, suppression des captures SQL silencieuses, migration d’unicité avec déduplication des lectures existantes, correction du reclassement AAP via classifyAap, nettoyage de cinq composants template non utilisés, nettoyage des lectures lors des purges/fusions RSS et découpage dynamique du frontend. 27 tests Vitest, TypeScript et build de production validés. 2026-08-17 20:21:45 +00:00
Manus
1344d3c060 Checkpoint: Remplacement du prompt PROMPT_CLASSIFICATION_AAP : approche par bénéficiaires principaux et utilité pour un directeur d'ESMS. Ajout des actions transversales (accès aux soins, inclusion numérique, lutte contre l'isolement). Suppression de la liste noire.
All checks were successful
Deploy Production / deploy (push) Successful in 56s
Deploy Recette / deploy (push) Successful in 58s
2026-07-17 03:57:33 -04:00
Manus
727b7c6436 Checkpoint: Remplacement du prompt PROMPT_CLASSIFICATION : approche par impact métier (directeur d'ESMS) au lieu de liste noire de sujets interdits. Suppression de la liste noire, ajout du critère d'utilité professionnelle directe.
All checks were successful
Deploy Production / deploy (push) Successful in 1m5s
Deploy Recette / deploy (push) Successful in 48s
2026-07-17 03:53:23 -04:00
Manus
4b493bc67c CI/CD: test pipeline prod (has_actions=true)
All checks were successful
Deploy Production / deploy (push) Successful in 57s
Deploy Recette / deploy (push) Successful in 47s
2026-07-10 22:34:27 -04:00
Manus
fac964e0ba CI/CD: test pipeline prod (après resync hooks) 2026-07-10 22:31:51 -04:00
Manus
5203458865 CI/CD: test pipeline prod (Actions unit 16 activé) 2026-07-10 22:29:48 -04:00
Manus
cb3f36699b CI/CD: test pipeline prod final (runner #7 online) 2026-07-10 22:28:29 -04:00
Manus
ae4953cc82 CI/CD: test pipeline prod (Gitea 1.25.5 + runner #6) 2026-07-10 22:26:28 -04:00
Manus
cc00b2263a CI/CD: force Gitea Actions workflow detection 2026-07-10 22:18:36 -04:00
Manus
80e93aa194 CI/CD: test pipeline prod (runner IP interne) 2026-07-10 22:13:57 -04:00
Manus
9164ceb22f CI/CD: test pipeline prod (workflows en place) 2026-07-10 22:09:00 -04:00
Manus
0f0e40b149 CI/CD: test pipeline prod après ré-enregistrement runner 2026-07-10 21:57:59 -04:00
Manus
62751cd4ad CI/CD: test pipeline production 2026-07-10 21:55:55 -04:00
Manus
24b7dbf128 CI/CD: trigger pipeline après fix git clean recette
All checks were successful
Deploy Production / deploy (push) Successful in 1m1s
Deploy Recette / deploy (push) Successful in 1m0s
2026-07-10 21:48:45 -04:00
Manus
0a63cc6797 Fix: labels Traefik recette uniques (veille-recette-secure/svc)
Some checks failed
Deploy Production / deploy (push) Failing after 1s
Deploy Recette / deploy (push) Failing after 1s
2026-07-10 21:46:12 -04:00
Manus
9b11f0e998 CI/CD: Suppression actions/checkout (runner host sans Node.js)
Some checks failed
Deploy Production / deploy (push) Successful in 48s
Deploy Recette / deploy (push) Failing after 56s
2026-07-10 21:40:37 -04:00
Manus
f6aa445732 CI/CD: Ajout workflows Gitea Actions (deploy-recette + deploy-prod)
Some checks failed
Deploy Production / deploy (push) Failing after 17s
Deploy Recette / deploy (push) Failing after 1s
2026-07-10 21:37:47 -04:00
Manus
d283675230 Checkpoint: Purge automatique des tombstones (processed_dedup_keys) de plus de 6 mois :
- purgeOldArticles dans db.ts : suppression des entrées processedDedupKeys.processedAt <= cutoff 6 mois
- Logs cron et init mis à jour pour afficher le nombre de tombstones supprimés
- 0 erreur TypeScript
2026-07-10 21:14:55 -04:00
Manus
8782883bea Checkpoint: Persistance "marquer comme lu" entre sessions :
- Ajout de veille.getReadIds et aap.getReadIds dans routers.ts (procédures protectedProcedure)
- VeilleDashboard.tsx : chargement des IDs lus depuis la DB au montage (useEffect sur readIdsQuery), invalidation getReadIds dans markAsRead et markAllAsRead
- AAPDashboard.tsx : même pattern
- 0 erreur TypeScript
2026-07-10 21:08:26 -04:00
Manus
465e33c3b8 Checkpoint: Connexion Microsoft 365 (Azure AD OAuth2) : migration DB azureAdId, helpers backend, route callback, bouton Login, page AzureCallback, tests OK 2026-07-07 10:29:03 -04:00
Manus
2d0de2a30d feat: prompt IA dédié AAP avec classification par secteur (Handicap/PA/Enfance/Précarité/Sanitaire) 2026-07-06 10:24:40 -04:00
Manus
b3d1e9e6ed fix: supprimer les numéros de département des regex géographiques 2026-07-06 10:08:23 -04:00
Manus
7261a7d33e Checkpoint: reclassifyWithAI traite désormais NULL + rules, supprime les non pertinents et conserve les tombstones 2026-07-06 08:31:02 -04:00
Manus
55f3d5a5d4 Checkpoint: Ajout de la prochaine date d'exécution dynamique dans les Paramètres (calcul frontend selon mode/heure/jour, aligné sur le cron réel backend). Ajout de la règle de rétention configurable (Illimité/3/6/12/18/24 mois) avec purge automatique au démarrage et après chaque import. 0 erreur TypeScript, 21 tests passés. 2026-07-05 07:51:02 -04:00
Manus
f0be15d432 Checkpoint: Rétablissement des modes Quotidienne, Hebdomadaire (choix du jour), Mensuelle (choix du jour du mois) et Intervalle dans la section Planification des Paramètres. Ajout de fetch_day_of_week et fetch_day_of_month dans le schéma Zod du backend. 2026-07-05 06:51:43 -04:00
Manus
b0550f3298 Checkpoint: Correction du scheduler : ajout des modes weekly (avec fetch_day_of_week) et monthly (avec fetch_day_of_month) dans scheduleDailyImport. Planification recette configurée : hebdomadaire, lundi à 08:00. 2026-07-03 05:53:41 -04:00
Manus
326e8b7bcf Checkpoint: Ajout d'un filtre de date minimale (1er avril 2026) dans le moteur RSS : les articles publiés avant cette date sont ignorés sans passer par la classification IA. Les tombstones en recette sont peuplés avec les 490 articles existants pour éviter les doublons. 2026-07-02 03:54:39 -04:00
Manus
b6d89e1087 Checkpoint: Ajout de la table processed_dedup_keys : chaque article traité par le moteur RSS est enregistré dans cette table. Lors des passages suivants du cron, si la dedupKey est présente dans cette table, l'article est ignoré même s'il a été supprimé de veille_items ou aap_items. 2026-07-02 03:49:58 -04:00
Manus
c6b89c5b46 Checkpoint: Ajout de nouveaux patterns de détection (fin de dépôt, fin des candidatures, remise, répondre avant le, ouvert jusqu'au, candidatures jusqu'au). Amélioration de parseFrDate : support JJ.MM.AAAA, ISO AAAA-MM-JJ, "1er mois". Normalisation du texte (retours à la ligne). Fonction findDateInStr pour extraire une date même quand du texte suit. 2026-07-01 03:33:04 -04:00
Manus
53514b0540 Checkpoint: Ajout de la fonction extractDateCloture dans rssEngine.ts : détection par expressions régulières des patterns courants en français (date limite, clôture le, avant le, jusqu'au, dépôt des dossiers, délai de réponse, réception, soumission). La date extraite est insérée dans le champ dateCloture lors de la collecte RSS des AAP. 2026-06-30 10:13:30 -04:00
Manus
1d7fa332ea Checkpoint: Extension du dictionnaire des départements à 5 régions (47 départements). Ajout de la fonction detectRegion pour détecter la région par son nom. Les fonctions detectVeilleNiveauTerritoire et detectAapGeo retournent désormais la région réelle du département détecté (plus de valeur codée en dur "Auvergne-Rhône-Alpes"). buildMergeKey mis à jour pour couvrir tous les noms de départements. 2026-06-30 09:34:21 -04:00
Manus
288bcf982c true message 2026-06-30 09:15:28 -04:00
Manus
cffb3d4201 Checkpoint: Ajout des modes de fréquence quotidien, hebdomadaire (avec sélecteur de jour Lun-Dim), mensuel (avec choix du jour 1-28) et intervalle (1h à 24h). Le cron est rechargé immédiatement après sauvegarde pour tous les paramètres de planification. 2026-06-29 17:07:28 -04:00
Manus
1f1a479029 Checkpoint: Ajout du paramétrage de fréquence des mises à jour dans Paramètres → Import & Planification : choix entre mode heure fixe (cron quotidien) et mode intervalle (1h, 2h, 4h, 6h, 12h, 24h). Le cron est rechargé immédiatement après sauvegarde sans redémarrage serveur. 2026-06-28 10:10:34 -04:00
Manus
9eb5849504 Checkpoint: Suppression du cron RSS indépendant. La lecture des flux RSS est désormais intégrée dans le cron d'import quotidien (import_time dans Paramètres). Le panneau de planification RSS dans RssFeeds affiche maintenant l'heure configurée et redirige vers Paramètres pour la modifier. 0 erreur TypeScript. 2026-06-26 10:38:49 -04:00
Manus
6b8b3ce9d7 Checkpoint: AAPDashboard mis à jour avec les 4 mêmes évolutions que VeilleDashboard :
1. Mode vignette par défaut
2. Alternance de couleurs en mode liste (pair=blanc, impair=slate-50)
3. Couleur de sélection au clic sur une ligne (bg-primary/10, titre en primary)
4. Bouton segmenté Non lus / Tous / Lus — Non lus par défaut
5. Message vide adapté selon le filtre actif
0 erreur TypeScript.
2026-06-26 10:32:19 -04:00
Manus
1c425f25ad Checkpoint: 4 évolutions UI sur VeilleDashboard :
1. Mode vignette par défaut (viewMode initialisé à "grid")
2. Alternance de couleurs en mode liste : lignes paires = blanc, lignes impaires = gris clair (slate-50)
3. Couleur de sélection au clic sur une ligne : bg-primary/10 avec titre en couleur primaire
4. Bouton segmenté Lu/Non lu/Tous au niveau des onglets — Non lu par défaut
5. Message d'état vide adapté selon le filtre actif
Planification RSS vérifiée : scheduleRssFetch() lit bien rss_settings (fetchMode, fetchIntervalMinutes, scheduledTime) depuis la BDD.
2026-06-26 10:22:13 -04:00
Manus
a7cf918fa8 Checkpoint: Filtre de pertinence strict avant insertion en base : seuls les articles jugés pertinents (iaRelevant=true) sont insérés dans veille_items et aap_items. Les articles rejetés sont loggés et comptés dans skippedItems. Prompt IA mis à jour avec la formulation exacte de l'utilisateur (expert ESMS, 5 secteurs, liste noire explicite, principe "doute = false"). 21 tests passés, 0 erreur TypeScript. 2026-06-26 09:50:58 -04:00
Manus
3613e26034 Checkpoint: Mise à jour du prompt de classification IA (aiClassifier.ts) : ajout d'une liste noire explicite de 10 domaines hors périmètre (sylviculture, agriculture, transports, urbanisme, environnement, économie, défense, sport, enseignement supérieur, nominations sans lien). Principe "doute = rejet" renforcé. 0 erreur TypeScript, 21 tests passés. 2026-06-22 06:07:12 -04:00
Manus
dde3d8b6b8 Checkpoint: Ajout de server/articleFetcher.ts (fetch HTTP + extraction 500 mots, timeout 5s, fallback silencieux). Intégration dans rssEngine.ts : si le résumé RSS est court (<150 car.), le 1er paragraphe de l'article est récupéré et transmis à classifyArticle. Signature de classifyArticle mise à jour avec paramètre contenuPage optionnel. 0 erreur TypeScript, 21 tests passés. 2026-06-19 09:27:59 -04:00
Manus
165599bc83 Checkpoint: Mise à jour du prompt de classification IA (aiClassifier.ts) : remplacement du prompt générique ESMS par une définition explicite des 5 secteurs d'activité de l'association (handicap, précarité/logement, protection de l'enfance, personnes âgées, sanitaire SMR). 0 erreur TypeScript, 21 tests passés. 2026-06-19 09:24:30 -04:00
Manus
dcb726832c Checkpoint: Simplification de la classification IA dans l'onglet Veille Stratégique : suppression de la catégorie médico-sociale (Handicap, PA, Enfance, etc.), remplacement de "Générale" par "Informationnelle", classification IA réduite au seul type de veille (réglementaire/concurrentielle/technologique/informationnelle). Migration BDD des données generale → informationnelle. 0 erreur TypeScript, 21 tests passés. 2026-06-17 04:02:17 -04:00
Manus
937dda1cac Checkpoint: Correction du prompt de pertinence (filtre strict, rejet des articles hors périmètre médico-social), ajout du résumé IA automatique, marquage lu/non lu avec compteurs dans la sidebar. Tests 6/6 passés. 2026-06-17 03:28:27 -04:00
Manus
67dfbb1a13 Checkpoint: Implémentation du résumé automatique généré par l'IA pour chaque article RSS (veille et AAP), marquage lu/non lu avec point bleu et fond teinté, bouton "Tout marquer comme lu", compteurs non lus dans la sidebar et dans les titres de page. Migration BDD : table article_reads + colonne iaResume dans veille_items et aap_items. 2026-06-16 03:08:29 -04:00