Spaces:
Running
Running
Commit History
5 days ago
-
perf(sheets): bouclier anti-429 global (cache GET gspread, invalidation sur ecriture, secours perime, reessais)
Cache au niveau HTTPClient.request : valeurs 60 s, metadonnees 10 min, Drive 1 h, dedoublonnage des lectures concurrentes, disjoncteur + cache perime sur 429. Bouton ACTUALISER LES DONNEES, lecture fraiche pour la generation d'ID. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>dd08ad5
13 days ago
-
fix: decimaux du Sheet lus correctement (17,61 n'est plus lu 1761) et logs LLM/Jev
Le classeur est en locale francaise : gspread supprimait la virgule des decimaux a la lecture ("17,61" -> 1761, "1,5" -> 15, "252,4" -> 2524). core/gspread_fr.py lit desormais une virgule decimale comme un decimal, pour toute l'application (get_all_records, cache partage) et le job de rappels. Neutralise la rustine "diviser par 10 tant que > maximum" de Demandes Prets qui reduisait un taux legitime de 24,11 % en 2,41 %. Diagnostic : [LLM] modele, duree et erreur de chaque tentative ; [JEV <etape>] trace envoyee et reponse brute complete. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>c73b85c
19 days ago
-
fix(sheets): tolerate rows wider than header, stop writing geo cells to Garants_KYC
Simulator crashed with "42 columns passed, passed data had 48 columns" after a new guarantor signed up: KYC form appended 5 geoloc cells past the 42-column Garants_KYC header. Reader now truncates rows to header width (like get_all_records); geoloc only appended for Clients_KYC. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>e6b6e8c
26 days ago
-
Corriger le pourcentage et diagnostiquer les refus Jev
e3cb468
28 days ago
-
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