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
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
Manus
c47c76215e
Checkpoint: Classification IA automatique à l'insertion RSS, suppression badge IA et bouton Classer avec l'IA dans VeilleDashboard, suppression section Analyse IA dans la boîte de dialogue détail, mise à jour AAPDashboard avec champs IA et affichage catégorie IA en priorité (vue liste et vignettes)
2026-06-12 05:18:49 -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
d9cded5970
Checkpoint: Remplacement du fond bleu dégradé par le fond blanc (bg-background) sur la page de connexion, avec adaptation des couleurs de texte.
2026-05-31 15:44:47 -04:00
Manus
54fa11fdd8
Checkpoint: Correction du bug TypeError: Invalid URL dans la boîte à idées causé par l'utilisation de useAuth (Manus OAuth) au lieu de useLocalAuth sur le VPS. Déployé sur recette.
2026-05-31 15:40:40 -04:00
Manus
ca4745213f
fix: remplacer useAuth par useLocalAuth dans BoiteAIdees (Invalid URL sur VPS)
2026-05-31 15:36:23 -04:00
Manus
5293b8dee2
Checkpoint: Renommage de l'application "Veille Réglementaire" → "Veille Stratégique" (sidebar, header mobile, titre HTML). Fond bleu dégradé (bleu marine → bleu ciel) sur la page de connexion avec texte blanc adapté.
2026-05-27 08:44:20 -04:00
Manus
4452352c92
Checkpoint: Checkpoint final avant publication. Inclut : correction du bug ER_DUP_ENTRY (e.cause.code) dans le moteur RSS, correction des blocs else sans try/catch dans la migration, déploiement en production (veille.santinova-soft.org), synchronisation base de données recette → production, mise à jour portail et dashboard de production, push code sur Gitea prod.
2026-05-27 08:26:32 -04:00
Manus
f0fa5d4125
Checkpoint: Fix: correction des bugs dans migrateExistingItems - ajout de try/catch autour de tous les db.update pour gérer les violations UNIQUE (ER_DUP_ENTRY via e.cause.code). Fix également pour l'import RSS (détection des doublons via e.cause.code). Corrections TypeScript dans db.ts.
2026-05-03 06:46:51 -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
b36a049ca5
Checkpoint: Logo Santinova agrandi de h-20 à h-28 sur la page Login.
2026-03-20 09:40:45 -04:00
Manus
58c0155f81
Checkpoint: Le texte "powered by" et le logo Santinova sont maintenant alignés horizontalement sur une seule ligne, avec le logo agrandi à h-20 pour correspondre à la taille du logo Itinova en haut.
2026-03-20 09:23:40 -04:00
Manus
8dc248db6a
Checkpoint: Logo Itinova affiché en haut de la page Login, mention "powered by" avec logo Santinova en bas. Les deux images sont hébergées sur le CDN webdev.
2026-03-20 09:09:23 -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
e9a8ae9016
Checkpoint: L'encart affichant admin@itinova.fr et le mot de passe par défaut a été retiré de la page Login pour des raisons de sécurité
2026-03-16 16:11:22 -04:00
Manus
ed8af28fce
Checkpoint: Vignettes Veille : Niveau en violet, Territoire en teal, Date en orange. Vignettes AAP : Région en violet, Département en teal, Date de publication en orange. Cohérence visuelle avec la palette de la boîte de dialogue.
2026-03-16 15:51:59 -04:00
Manus
2161dfc8a3
Checkpoint: Bouton Détail en bleu doux (bg-blue-50/border-blue-200) et bouton Lien externe en vert émeraude (bg-emerald-50/border-emerald-200), avec fond arrondi, bordure et effet hover
2026-03-16 15:41:22 -04:00
Manus
f1a3045bbf
Checkpoint: Niveau en violet doux (bg-violet-50/border-violet-200), Territoire en teal (bg-teal-50/border-teal-200), Source en orange doux (bg-orange-50/border-orange-200) — icônes et textes assortis
2026-03-16 15:30:47 -04:00
Manus
2065786052
Checkpoint: Bouton œil (Eye) ajouté sur chaque ligne du tableau Veille (vue liste et vignettes) ouvrant une boîte de dialogue avec titre complet, badge type coloré, métadonnées en grille (catégorie, niveau, territoire, source, passage en vigueur), résumé intégral et lien externe
2026-03-16 15:00:15 -04:00
Manus
b7aa274921
Checkpoint: Ajout des zones de téléversement drag & drop dans la page Paramètres lorsque la source "Fichier local" est sélectionnée, avec résultat d'import affiché immédiatement
2026-03-16 14:45:02 -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