Spaces:
Running
Running
Commit History
5 days ago
-
feat(erreurs): incidents techniques en bloc Gotham explique par l'IA + Telemetrie
- core/incidents.py : bloc sobre (bleu-gris, jamais rouge) avec DIAGNOSTIC et ACTION en une phrase chacune (call_llm, repli sur regles locales), fleche "Journal technique" avec les lignes de log en texte simple (type, message, traceback) - chaque incident part dans la Telemetrie (ERREUR / INCIDENT) avec ses valeurs : type, message, contexte, traceback, diagnostic, action, analyse ; dedoublonne 60 s - appels IA bornes : cache par signature (24 h), 15/heure, 15 s au total ; emails, numeros et jetons masques avant envoi, traceback jamais envoyee - branche sur : exceptions non gerees d'un module admin, st.error technique (pas les consignes de saisie), afficher_erreur_sheets ; le public ne voit jamais le detail - tests : aucun appel IA reel (garde-fou conftest), un test lent ne bloque plus la suite Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>001eb74 -
feat(ui): bandeau jaune 429 partout dans l'application
- core.errors.est_quota() : detecte [429], code 429, Quota exceeded, RESOURCE_EXHAUSTED, Too Many Requests, rate limit (sans faux positif sur un nombre comme 1 429 000) - core.errors.installer_bandeau_429() : tout st.error / st.warning (sidebar, container...) dont le message est un quota s'affiche en bandeau jaune explicatif au lieu d'un cadre rouge (texte Google Sheets ou service externe selon le message) - bandeau unique partage avec afficher_erreur_sheets ; gestionnaire global du module utilise la meme detection Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>a62a48f
8 days ago
-
fix(ui): bandeau explicite au lieu de la traceback sur quota Sheets (429)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>b6cc722
10 days ago
-
feat: journal d'audit, pénalités, cohérence remboursements et signature
- Journal d'audit (core/audit_log.py, module audit_viewer) : traces des envois d'email, connexions et jobs - Pénalités : consommation de l'occurrence à l'octroi uniquement, idempotente - Correctifs remboursements, rappels et décimaux du Sheet (virgule française) - Pages et module de signature électronique restants (voir commit précédent) Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>56277f7
27 days ago
-
Barème de majoration par montant, détail des frais, et fix quota 429
Barème : la majoration pour retard pardonné dépend désormais du montant du prêt simulé (5% < 50k, 2,5% entre 50k et 150k, 2% > 150k XOF), remplaçant le forfait unique précédent. Pilotable dans Règles Métier. Détail des frais : le simulateur écrit maintenant la composition du taux (frais de transfert, risque brut IA, marge, majoration retard) dans de nouvelles colonnes de Prets_Requests, affichées dans le module Demandes Prêts. Quota 429 : l'initialisation du registre de pénalités ouvrait la feuille et écrivait une ligne par client/occurrence, épuisant le quota de lecture Google Sheets. Elle n'ouvre désormais la feuille qu'une fois et écrit toutes les lignes en un seul appel. Nouvelle fonction afficher_erreur_sheets() (bandeau jaune 429 / rouge générique) appliquée au chargement du simulateur et aux appels Sheets de Règles Métier ; la majoration se dégrade silencieusement en cas d'échec plutôt que de casser la page du client. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>4d00d77
30 days ago
-
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