Commit Graph

32 Commits

Author SHA1 Message Date
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
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
Manus
9c26772617 Checkpoint: Classification IA en deux étapes (filtre pertinence + classification catégorie) intégrée dans le moteur RSS. Inclut : module aiClassifier.ts avec les deux prompts, intégration dans rssEngine.ts avec fallback sur règles, procédures tRPC reclassifyWithAI pour veille et AAP, badge IA violet dans VeilleDashboard, bouton "Classer avec l'IA" (admin), section "Analyse par l'IA" dans la boîte de dialogue détail, 7 nouveaux tests Vitest (20 tests au total). Migration BDD appliquée (4 nouveaux champs IA dans veille_items et aap_items). 2026-06-03 05:31:58 -04:00
Manus Deploy
13b6385dbc fix: ajouter try/catch dans les blocs else de migrateExistingItems pour gérer les violations UNIQUE 2026-05-03 06:44:12 -04:00
Manus Deploy
e502ca97d8 fix: gérer les violations UNIQUE dans migrateExistingItems (supprimer les doublons) 2026-05-03 06:31:56 -04:00
Manus Deploy
a8ba0ee979 fix: corriger erreurs TypeScript TS7006 dans server/db.ts (types explicites pour lambdas) 2026-05-03 06:28:24 -04:00
Manus Deploy
3d1bff45a3 fix: corriger détection ER_DUP_ENTRY dans Drizzle (e.cause.code au lieu de e.code) 2026-05-03 06:27:04 -04:00
Manus Deploy
10c2226481 fix: utiliser text+JSON.stringify pour territoires/departements (fix double-sérialisation Drizzle) 2026-05-03 06:14:02 -04:00
Manus Deploy
7fc7f7d1de fix: utiliser mysql2 pool explicite pour résoudre l'erreur JSON dans Drizzle 2026-05-03 06:07:00 -04:00
Manus Deploy
393dcbc2f9 fix: supprimer JSON.stringify pour insertions Drizzle JSON (tableaux directs) 2026-05-03 05:48:22 -04:00
Manus Deploy
6fde1aa00f fix: sérialisation JSON pour colonnes territoires et departements 2026-05-03 05:20:55 -04:00
Manus Deploy
8b323f8036 fix: gestion d'erreur gracieuse dans scheduleRssFetch (migration DB) 2026-05-02 19:56:21 +02:00
Manus Deploy
91a0b21c52 feat: intégration planificateur RSS natif (cron interne Node.js)
- Ajout de scheduleRssFetch() dans server/_core/index.ts
- Planificateur démarré au lancement du serveur
- Supporte les modes interval et scheduled depuis rss_settings
- Rechargement dynamique lors de la sauvegarde des paramètres RSS
- Supprime la dépendance à la tâche planifiée Manus externe
2026-05-02 19:43:38 +02:00
Manus Deploy
76a71ebc2c feat: fusion multi-département RSS, enrichissement catégorie/niveau/territoire
- Ajout colonnes territoires (JSON) dans veille_items et departements (JSON) dans aap_items
- Logique de fusion : articles similaires (même sujet, départements différents) fusionnés en un seul
- Extraction automatique : catégorie (Handicap/PA/Enfance/Précarité/Sanitaire/Autre), niveau et territoire
- Endpoint POST /api/scheduled/rss-migrate pour migration des articles existants
- Correction patterns détection : Loire, Rhône (sans Lyon seul), Auvergne-Rhône-Alpes protégé
2026-04-28 19:19:06 -04:00
Manus
ddf1533d04 Checkpoint: Moteur RSS : server/rssEngine.ts (parseur RSS/Atom, règles d'automatisme, déduplication), server/scheduledRoutes.ts (endpoint POST /api/scheduled/rss-fetch), montage dans _core/index.ts 2026-04-28 12:35:58 -04:00
Manus
8f2a22e4b1 Checkpoint: Ajout bouton "Purger les données" (admin uniquement) avec boîte de dialogue de confirmation sur VeilleDashboard et AAPDashboard. Procédures tRPC veille.purge et aap.purge ajoutées côté serveur. 2026-04-28 04:33:20 -04:00
Manus
c3e1720e83 Checkpoint: Ajout de la page de gestion des flux RSS : liste des flux, formulaire d'ajout/édition avec type (Veille/AAP), type par défaut, règles d'automatisme par mots-clés, paramètres de fréquence (heure fixe ou intervalle), activation/désactivation. Tables BDD rss_feeds et rss_settings. Procédures tRPC complètes. Navigation sidebar mise à jour. 2026-04-25 16:44:09 -04:00
Manus
4a17eaa04a Checkpoint: Fix critique : context.ts vérifie maintenant le cookie veille_local_auth pour les utilisateurs locaux, évitant la déconnexion lors des appels tRPC protégés (import, settings, users) 2026-04-21 07:06:32 -04:00
Manus
9c3d3ef18d Checkpoint: Correction du login : routers.ts utilise maintenant input.identifier au lieu de input.email, LocalAuthContext.tsx mis à jour en conséquence. La connexion par username (adminItinova) fonctionne en recette. 2026-04-21 06:29:48 -04:00
Manus
b3137e8f27 Checkpoint: Ajout du champ username dans la table local_users, adaptation de l'auth backend (connexion par username OU email), mise à jour de la page Gestion des utilisateurs avec le champ username visible et éditable, compte adminItinova migré avec username propre. 2026-04-21 05:31:44 -04:00
Manus
535dd19188 Checkpoint: Boîte à idées : table BDD, API tRPC (créer, lister, répondre, changer statut), page avec liste filtrée par statut et recherche, bouton Nouvelle demande, réponse admin avec statut colorisé, menu dans la sidebar 2026-04-17 10:57:07 -04:00
Manus
37096bc83b Checkpoint: La validation Zod de la procédure localLogin ne force plus le format e-mail — z.string().email() remplacé par z.string().min(1) pour accepter tout identifiant 2026-03-20 08:54:22 -04:00
Manus
cab8629125 Checkpoint: Le champ de connexion accepte maintenant un identifiant (ex: adminItinova) ou une adresse e-mail. Le backend recherche dans les deux cas. Le label et le placeholder ont été mis à jour. 2026-03-20 08:44:29 -04:00
Manus
3ae37760a3 Checkpoint: Ajout de l'upload direct de fichiers Excel depuis le navigateur (drag & drop), nettoyage automatique des balises HTML dans les résumés, import fonctionnel avec 38 entrées Veille + 7 AAP 2026-03-16 14:35:21 -04:00
Manus
8fb71e8bda Checkpoint: Application complète : deux tableaux de bord (Veille Stratégique + AAP), import Excel quotidien avec déduplication, sources multiples (local/OneDrive/FTP/SharePoint), affichage liste/vignettes, filtres multi-critères, gestion utilisateurs, logs d'import, page paramètres, authentification locale, tâche cron 06h00, 13 tests Vitest passants. 2026-03-16 10:45:35 -04:00
Manus
5000fc555d Initial project bootstrap 2026-03-16 10:20:39 -04:00