Spaces:
Running
Running
Commit History
4 days ago
-
JASMINE chat: control guides and what-if data on every chat page
Capture sidebar page controls (nav/theme/refresh excluded) and data_editor contents. Add guide_controles to Digital Twin, Loans Engine, Repayments, Request Loans, Check Up Loans, Forecasting, Dashboard, USIS and Logistique map: what each control changes, its direction of effect and which buttons write for real. Dashboard also passes the profit under both bases. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>2308a61
10 days ago
-
style(ui): emojis remplaces par des balises tactiques sobres
- [OK] [ECHEC] [ATTENTION] [ALERTE] [REFUS] [STOP] [ANALYSE] [IA] [DOSSIER]... a la place des emojis dans tous les libelles, messages et journaux - puces d'etat (couleurs) remplacees par des carres/ronds geometriques - aucun changement de logique : les tests et la detection des messages suivent la nouvelle forme Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>495d60d
15 days ago
-
feat(exercice): base du benefice globale (encaisse / accorde)
Le bouton "Base du benefice" passe dans la barre laterale et pilote tous les modules : - Dashboard : KPI, analyse mensuelle, repartition. - Optimizer : realise selon la base ; interets restant a echoir ajoutes seulement en base encaissee. - Digital Twin : projection du benefice jusqu'au 31/12 de l'exercice (realise + part interets/penalites simulee) au lieu de la tresorerie totale sur 52 semaines ; base accordee = realise. - Rapports IA et JASMINE : base retenue dans les donnees et la consigne. Echeancier contractuel : vraies dates (Dates_Versements) si renseignees. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>2d6c8b9 -
feat(dashboard): bascule benefice encaisse / accorde
Bouton "Base du benefice" sur le Dashboard : Encaisse (interets + penalites, au mois du paiement, base de l'objectif) ou Accorde (cout du credit, au mois du deblocage). KPI, analyse mensuelle, repartition et contexte JASMINE suivent la base choisie. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>89d4159 -
feat(exercice): separation de toute l'application par annee civile
- core/exercice.py : source unique (lecture des dates FR/ISO, bornes, selecteur EXERCICE de la barre laterale, regle A : chaque flux dans l'annee de sa propre date, echeancier contractuel, synthese par exercice). - Objectifs de benefice par exercice (2026 = 2,2 M, 2027 = 3,5 M XOF, annees futures = dernier objectif connu), editables par annee. - Dashboard, Optimizer, rapports IA, JASMINE, Digital Twin : chiffres de l'exercice choisi + comparaison N-1 ; benefice = interets + penalites encaisses dans l'annee. - IA : consigne d'exercice dans tous les prompts. ML : variable Annee_Deblocage + erreur hors echantillon par exercice. - Correctif : "2026-03-01" n'est plus lu comme le 3 janvier. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>631cd58
-
Réduit la consommation de quota Google Sheets : lectures groupées + cache étendu
- core/sheets_cache.py : ajoute get_cached_dfs_batch() (1 appel API via values_batch_get au lieu de N appels par feuille), tout en reproduisant la numérisation par défaut de get_all_records() pour un résultat identique. - request_loans.py, client_simulator.py, Usis.py, map_dashboard.py, logistique.py, communications.py, ml_dashboard.py : lectures regroupées en un seul appel (avec repli feuille par feuille si une feuille optionnelle manque), ou mises en cache quand elles ne l'étaient pas. - regles_metier.py : cache la lecture de Clients_KYC (liste déroulante), inchangé pour les lectures qui doivent rester immédiates (règles de tarification en direct). - Laissé volontairement sans cache : Check_Up_Loans.py (désactive la numérisation gspread pour éviter une corruption des décimales françaises — incompatible avec le nouveau cache groupé), les lectures juste après une écriture (forecasting, règles métier), et les tâches planifiées en arrière-plan (notifications).c20487a
-
Securite et fiabilite : corrections sur l'ensemble du simulateur/octroi/notifications
Relecture complete (17 fichiers modifies + 4 nouveaux) des corrections suivantes, apportees en parallele sur le poste : Securite : - Simulateur public : recherche client remplacee (ne liste plus toute la base), mot de passe partage remplace par un lien d'onboarding a usage unique, outils JASMINE (portefeuille reel) retires cote page publique (allowed_tools=[]). - Mots de passe hashes PBKDF2-HMAC-SHA256 (core/auth.py), compatible avec les comptes pas encore migres, comparaison en temps constant y compris pour un identifiant inconnu (anti-enumeration). - Verrouillage apres 5 tentatives de connexion echouees (5 min). - IP client lue depuis le dernier maillon de X-Forwarded-For (celui ajoute par le proxy de confiance) plutot que le premier (falsifiable par le client) ; bug qui empechait l'enregistrement du GPS corrige. - Motif libre du client (et l'analyse JASMINE qui en decoule) traite comme une donnee a citer, jamais une instruction, avec echappement HTML avant afficha…397b23d
-
Nettoie les imports et fonctions mortes detectes par audit statique
Scan AST (imports jamais references) + scan par occurrences (fonctions jamais appelees) sur tout src/, verifie manuellement pour ecarter les faux positifs (accents cassant les limites de mot dans un grep de controle). Retire ~35 imports inutilises repartis sur 24 fichiers, et 3 fonctions mortes : get_form_elapsed_time (doublon d'un calcul deja fait dans kyc_form.py), get_select_index (jamais appelee), et refresh_data (dupliquee a l'identique dans Check_Up_Loans.py et loans_engine.py, jamais branchee a un bouton). Laisse de cote apply_ai_algorithms, detect_fraud_logic, is_closed et build_from_networkx -- a activer, pas a supprimer (suite dans un prochain commit). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>5b0dd39
-
Enrichit le contexte JASMINE de 9 modules avec guide et definitions de champs
Chaque widget JASMINE ne recevait que des valeurs brutes sans aucune explication de ce qu'elles representent ni du role de la page — meme cause racine que le bug "meilleur mois" et "CRITIQUES" deja corriges sur Dashboard et USIS. Ajoute systematiquement guide_page (role de la page, workflow) et definitions_champs (definition metier de chaque valeur transmise, y compris les enumerations type_pret/statut_analyse/ statut_echeance) sur : request_loans, loans_engine, Check_Up_Loans, repayments, client_simulator, jasmine_optimizer, digital_twin, et complete ml_dashboard/Usis deja touches precedemment. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>25c2bcc -
Corrige module Communications invisible, visibilite des liens de proximite, et donnees mensuelles pour JASMINE (Dashboard)
- Communications manquait du forcage de droits superadmin (comme les autres modules admin), donc invisible tant que PERMISSIONS n'etait pas mis a jour manuellement. - Lignes de proximite TACTICAL MAP : halo + trait plus epais et plus opaque, peu visibles par-dessus le fond satellite avec les valeurs initiales. - Dashboard (ml_dashboard.py) : ajoute une repartition mensuelle (nb prets, benefices, capital sorti) au contexte JASMINE — sans ca aucune question temporelle ("meilleur mois") n'etait repondable, le contexte ne contenait que des totaux agreges sans axe temporel. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>3faf47b
-
Etend le widget JASMINE aux 6 modules restants
Integre render_scoped_widget sur Dashboard, USIS, Check Loan, Demandes Prets, Init Loan et Onboarding, chacun avec son propre contexte (client selectionne, pret en cours, scores KYC...). Complete le deploiement commence sur Repayments, Digital Twin, Optimizer et le simulateur client. Corrige au passage une 3e copie codee en dur de l'objectif annuel (ml_dashboard.py, "objectif_2026 = 2_200_000") qui avait echappe a la Phase 1 : elle lit maintenant la meme source de verite unique (vortex_params.get_objectif_annuel) que l'Optimizer et les Rapports IA. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>54b48aa
-
Update src/modules/ml_dashboard.py
Verified signature6df01e0
-
Update src/modules/ml_dashboard.py
Verified signature7510382 -
Update src/modules/ml_dashboard.py
Verified signaturedb75d8e -
Update src/modules/ml_dashboard.py
Verified signaturea3b2979
-
Update src/modules/ml_dashboard.py
Verified signature3962238
-
Update src/modules/ml_dashboard.py
Verified signature587b3df -
Update src/modules/ml_dashboard.py
Verified signaturea5476b4 -
Update src/modules/ml_dashboard.py
Verified signature27d9297 -
Update src/modules/ml_dashboard.py
Verified signature2df1f5b -
Update src/modules/ml_dashboard.py
Verified signaturecc0fd97
-
Update src/modules/ml_dashboard.py
Verified signaturee53603f
-
Update src/modules/ml_dashboard.py
Verified signature7700f9f -
Update src/modules/ml_dashboard.py
Verified signatureaad803d -
Update src/modules/ml_dashboard.py
Verified signatured2eb9f3 -
Update src/modules/ml_dashboard.py
Verified signature75cb0f7 -
Update src/modules/ml_dashboard.py
Verified signaturee2a1d3e -
Update src/modules/ml_dashboard.py
Verified signature4478845 -
Update src/modules/ml_dashboard.py
Verified signature9e61aea
-
Update src/modules/ml_dashboard.py
Verified signature039b59b -
Update src/modules/ml_dashboard.py
Verified signature0d80337 -
Update src/modules/ml_dashboard.py
Verified signature26281c0
-
Update src/modules/ml_dashboard.py
Verified signature663cb10 -
Update src/modules/ml_dashboard.py
Verified signature7d6da30 -
Update src/modules/ml_dashboard.py
Verified signatured418359 -
Update src/modules/ml_dashboard.py
Verified signature63edb4c -
Update src/modules/ml_dashboard.py
Verified signature628dd14
-
Update src/modules/ml_dashboard.py
Verified signature67fd319 -
Update src/modules/ml_dashboard.py
Verified signaturecc365a1 -
Update src/modules/ml_dashboard.py
Verified signature42756c9 -
Update src/modules/ml_dashboard.py
Verified signature57eaeae -
Update src/modules/ml_dashboard.py
Verified signature362fd76
-
Update src/modules/ml_dashboard.py
Verified signature276c1b2 -
Update src/modules/ml_dashboard.py
Verified signature351cb68 -
Update src/modules/ml_dashboard.py
Verified signature7eabac7
-
Update src/modules/ml_dashboard.py
Verified signature16e8d41 -
Update src/modules/ml_dashboard.py
Verified signaturefbe2993 -
Update src/modules/ml_dashboard.py
Verified signature882e847 -
Update src/modules/ml_dashboard.py
Verified signatureb2065ba -
Create ml_dashboard.py
Verified signature6a17d0d