Manus
8312cf25fc
Checkpoint: Masse salariale enrichie : import Excel administrateur côté serveur, projections annuelles 2025-2027 importées du fichier de référence, réel 2026 exclusivement calculé sur les liasses archivées, conservation des montants de référence et des centimes, éditions limitées aux primes et évolutions de l'exercice courant/futur. 74 tests, TypeScript et build validés.
Validation applicative / TypeScript, tests et build (push) Successful in 5m21s
2026-08-31 11:04:30 +00:00
Manus
28570234d0
Checkpoint: Ajout de la projection annuelle prévisionnel-réel dans Masse salariale : import contrôlé du fichier modèle 2025-2027, réel 2026 provenant uniquement des liasses Salaires, ajustements administrateur limités aux primes et évolutions de l'année courante/future, conservation des centimes, modèle de calcul testé et documentation. 72 tests, TypeScript et build validés.
2026-08-31 10:58:02 +00:00
Manus
5c9618b204
Checkpoint: Déploiements Budget SI finalisés : recette remise en service après redémarrage contrôlé et CI Gitea réussie ; production synchronisée depuis Gitea, migrations automatiques et compte administrateur initial validés ; portails et dashboards recette/production mis à jour. Les contrôles HTTPS administrateur et Salaires sont consignés.
2026-08-30 15:53:25 +00:00
Manus
f759032793
Checkpoint: Correctif de première installation : après les migrations Drizzle, le serveur crée le compte administrateur Itinova requis avec mot de passe haché, sans doublon. Validation complète réussie : 62 tests, TypeScript et build.
Validation applicative / TypeScript, tests et build (push) Successful in 1h3m35s
2026-08-30 09:54:50 +00:00
Manus
b2c8580382
Checkpoint: Correctif de production : le serveur exécute désormais les migrations Drizzle versionnées avant l'ouverture HTTP, ce qui initialise une base vide lors du premier déploiement. Test de régression ajouté. Validation complète réussie : 61 tests, TypeScript et build.
Validation applicative / TypeScript, tests et build (push) Successful in 4m45s
2026-08-30 09:40:46 +00:00
Manus
6447389cb8
Checkpoint: Préparation recette-production : manifeste Budget SI aligné avec le registre dashboard, visuel de portail sélectionné, et label Traefik paramétrable par BUDGET_SI_DOMAIN afin que la production réponde sur son URL dédiée. Vérification complète réussie : 60 tests, TypeScript et build.
Validation applicative / TypeScript, tests et build (push) Successful in 2m22s
2026-08-30 09:07:15 +00:00
Manus
7ee4e848d2
Checkpoint: Clôture Salaires : validation HTTPS administrateur réalisée après correction de la collision DNS MySQL. La page Salaires, les filtres, le statut d'extraction et l'ouverture du PDF via la route protégée sont vérifiés. Tous les contrôles projet sont tracés ; la version fonctionnelle eeac2de est déployée en recette via Gitea CI/CD.
2026-08-30 08:59:05 +00:00
Manus
eeac2de481
Checkpoint: Correctif recette : DATABASE_URL cible désormais le conteneur MySQL unique itinova-budget-si-db, évitant la collision de l'alias Docker partagé db qui empêchait la connexion administrateur après recréation. Test de régression Compose ajouté. Validation complète réussie : 59 tests, TypeScript, build et format Compose.
Validation applicative / TypeScript, tests et build (push) Successful in 2m1s
2026-08-29 23:54:15 +00:00
Manus
0e59dac29f
Checkpoint: Correctif UX Salaires : pendant le chargement de la sonde AES-256-GCM, l'interface affiche désormais une vérification neutre et désactive l'import au lieu d'afficher à tort une alerte de blocage. Test de régression ajouté. Validation complète réussie : 58 tests, TypeScript et build.
Validation applicative / TypeScript, tests et build (push) Successful in 1m52s
2026-08-29 23:40:21 +00:00
Manus
193f7ce32a
Checkpoint: Ajout du secours de stockage réservé aux PDF de paie chiffrés : lorsque Forge est indisponible en recette, les octets AES-256-GCM sont stockés dans un volume hôte Docker persistant, jamais dans l'image ni la base. Import, réindexation et consultation passent par cette même abstraction, avec test de round-trip sans Forge. Compose transmet la clé AES et monte le volume dédié. Validation complète : 56 tests, TypeScript, build et format YAML.
Validation applicative / TypeScript, tests et build (push) Successful in 2m9s
2026-08-29 23:19:21 +00:00
Manus
7698e9f680
Checkpoint: Correctif d'environnement recette : docker-compose transmet désormais explicitement PAYROLL_ENCRYPTION_KEY au service applicatif. La clé AES est déjà configurée de façon sécurisée dans le fichier d'environnement recette, sans affichage de sa valeur. pnpm verify passe après cette correction : TypeScript, 55 tests et build.
Validation applicative / TypeScript, tests et build (push) Successful in 1m50s
2026-08-29 23:02:19 +00:00
Manus
82de3181df
Checkpoint: Fenêtre administrateur Salaires finalisée : import multipart limité, chiffrement AES-256-GCM avant stockage persistant hors conteneur, métadonnées/index métier minimisés en base, consultation PDF déchiffrée côté serveur avec no-store, filtres année/mois et comparaison M-1 expliquée. Réindexation sûre des archives partielles sans écrasement du PDF. Validation réelle sur deux liasses mensuelles : index partiel signalé sans invention de données, comparaison affichée et lecture après redémarrage. 55 tests Vitest, TypeScript et build de production validés.
Validation applicative / TypeScript, tests et build (push) Failing after 1m54s
2026-08-29 22:40:59 +00:00
Manus
8a58f2c2bd
Checkpoint: Déploiement recette validé de la Masse salariale, avec CI/CD Gitea et redéploiement Blue-Green du commit 0a00e70. Les wordmarks de connexion sont désormais intégrés à l'interface pour éviter les erreurs de ressources manus-storage sur la recette.
2026-08-27 16:09:49 +00:00
Manus
0a00e70a9f
fix: rendre les wordmarks de connexion indépendants du stockage
Validation applicative / TypeScript, tests et build (push) Successful in 1m35s
2026-08-27 16:02:12 +00:00
Manus
fe2a266d2d
chore: tracer le rétablissement SSH recette
Validation applicative / TypeScript, tests et build (push) Successful in 1m36s
2026-08-27 15:52:14 +00:00
Manus
15d67924ca
chore: tracer le déploiement recette masse salariale
2026-08-27 13:34:51 +00:00
Manus
da407db4de
Checkpoint: Ajout du module Masse salariale SANTINOVA : tables de salariés, rémunérations et évolutions manuelles sécurisées par rôle administrateur ; import contrôlé des bulletins 2025 et janvier–août 2026 ; écran tableau 2025–2027 ; tests d'autorisations, d'agrégats et des quatre états UI ; documentation des sources et de la politique d'import.
2026-08-27 13:10:47 +00:00
Manus
2f4b1f2e8e
Checkpoint: Déploiement Gitea de recette validé : workflow CI rendu autonome vis-à-vis de GitHub (checkout Gitea interne), signature webhook corrigée, validation CI réussie et redéploiement Blue-Green terminé avec le commit ec597da.
2026-08-27 11:11:10 +00:00
Manus
79411a6801
fix(ci): valider depuis Gitea interne
2026-08-27 10:57:05 +00:00
Manus
3b52527fd0
chore: tracer le déploiement de recette
Validation applicative / TypeScript, tests et build (push) Failing after 4s
2026-08-27 10:26:54 +00:00
Manus
eec1c4e9f7
chore: synchroniser le CI Gitea et fiabiliser le build Docker
2026-08-27 10:19:39 +00:00
Manus
9a1b9f0ac6
Checkpoint: Correction de l'échec de build cloud : remplacement de l'installation globale flottante de pnpm par Corepack 0.31.0 et pnpm 10.4.1 verrouillé par packageManager, compatible avec pnpm-lock.yaml. Installation figée, TypeScript, 22 tests et build de production vérifiés localement.
2026-08-27 09:51:28 +00:00
Manus
07b96c03c1
Checkpoint: Finalisation du suivi de l'audit : les trois évolutions futures restent documentées comme hors périmètre, sans développement ajouté.
2026-08-17 20:51:21 +00:00
Manus
615dd46059
Checkpoint: Audit de robustesse et maintenabilité : calcul dynamique des tendances OPEX par véritable année N-1, filtrage/validation centralisés des codes établissement, transactions d'import et d'écriture, contraintes uniques CAPEX/OPEX avec déduplication, suppression effective de postes OPEX, nettoyage des gabarits et scripts morts, chargement différé XLSX, documentation métier et 22 tests passants.
2026-08-17 20:50:33 +00:00
Manus
31cdb257fb
Checkpoint: Menu latéral : nom utilisateur déplacé tout en bas avec espace libre avant, ajout du menu Tableau de bord Finance sous OPEX (Charges), création de la page dédiée avec accès au dossier OneDrive Windows.
2026-06-12 10:28:47 +00:00
Manus
60fd2b891e
Checkpoint: Suppression des 6 lignes parasites en BDD (Infogérance, Sécurité, Applicatifs HEP, Applicatifs SMR, Téléphonie, TOTAL) + filtre PARASITE_PATTERNS dans handleFileImport pour empêcher leur réinsertion lors d'un import Excel.
2026-06-11 08:48:10 +00:00
Manus
0e1cab9f6c
Checkpoint: Bug corrigé : ajout contrainte UNIQUE (annee, etablissementCode) sur opex_bases_repartition + déduplication des lignes existantes — le clic ne crée plus de doublon. Nouvelle fonctionnalité : colonne "Tout manuel" (toggle) dans l'onglet Clés de répartition — quand activé pour un établissement, le calcul prorata est ignoré et seuls les montants saisis manuellement dans la vue Établissements sont utilisés. Badge ambre visible dans les deux vues.
2026-06-11 07:57:02 +00:00
Manus
cfeb5196db
Checkpoint: Corrections des deux lacunes identifiées dans l'onglet "Clés de répartition" de DSI OPEX :
...
1. Loading/error state : ClesRepartitionView reçoit désormais isLoadingBases et isErrorBases depuis la requête trpc.opex.getBasesRepartition.useQuery(). Affiche un spinner pendant le chargement et un message d'erreur si la requête échoue (au lieu d'un tableau vide trompeur).
2. Import fichier amélioré : détection intelligente de la feuille (mots-clés OPEX/DSI/répartition/base, insensible aux accents), recherche de l'en-tête dans les 15 premières lignes, normalisation des accents pour la détection des colonnes, message d'erreur détaillé avec les colonnes détectées, toast informatif si plusieurs feuilles présentes.
14 tests Vitest passants. 0 erreur TypeScript.
2026-06-11 07:24:34 +00:00
Manus
841ff1bd09
Checkpoint: Ajout de l'onglet 'Clés de répartition' dans DSI OPEX : tableau éditable avec base de répartition standard et base /HEP par établissement, import fichier Excel/CSV, info année (OPEX N → base N-2). Calcul automatique du poste SAAS DUI Pôle HEP branché sur la colonne /HEP. Nouvelle table opex_bases_repartition avec colonne baseRepartitionHep. Seed 2026 : 64 établissements dont 19 HEP. 14 tests passants, 0 erreur TypeScript.
2026-06-11 07:20:24 +00:00
Manus
020156d62c
Checkpoint: Migration complète localStorage → BDD : useBudgetData, ParametresContext, Budget2027, DsiCapex, DsiOpex, ImportModal (indicateur inventaires + suppression double-écriture). Ajout procédures tRPC : inventaire.listMeta, inventaire.getStats, opex.initFromSource, opex.deleteAll, opex.cloneFromN1. 14 tests Vitest passants. 0 erreur TypeScript.
2026-06-10 12:49:29 +00:00
Manus
caf95da1c1
Checkpoint: Migration complète vers authentification locale (JWT + bcrypt) : schéma DB (10 tables), routes tRPC (auth, users, etablissements, inventaire, capex, opex, parametres), page de login avec branding Itinova/Santinova, protection des routes, onglets Établissements et Utilisateurs branchés sur tRPC, import inventaire/établissements/utilisateurs via tRPC, 14 tests Vitest passants.
2026-06-10 12:17:07 +00:00