Spaces:
Runtime error
Runtime error
Commit History
-
fix(qualite): ruff devient une vraie barriere, et trouve un schema mort et casse
Ruff tournait sans jeu de regles declare : 1332 signalements, dont 98 faux positifs sur le motif `Depends()` de FastAPI et 615 modernisations de style. Un controle que personne ne peut passer n'est pas un controle. Le jeu retenu ne garde que ce qui signale un defaut reel (F, E4, E7, E9, I, RUF100), avec des exceptions nommees la ou l'ordre des imports EST la protection : env.py doit poser sys.path avant d'importer les modeles, conftest doit surcharger DATABASE_URL avant d'importer l'application. Ce que le controle a alors trouve : - UN SCHEMA MORT ET CASSE. `LawDetailResponse` existait deja, exposant `List[ArticleResponse]`. Il n'etait branche sur aucune route, et il etait doublement inutilisable : ArticleResponse porte le CONTENU integral de chaque article — pour le Code Minier, 166 Ko servis deux fois — et son `number` etait plafonne a 20 caracteres alors que la colonne en fait 64 depuis qu'elle accueille « QUATRE-VINGT-DIX-SEPTIEME ». Le plafond du schema est corrige, et…7435134 -
fix(analytics): mesurer au lieu d'inventer, et fermer la porte
Le tableau de bord admin affichait des chiffres fabriques comme des mesures. `GET /analytics/search` et `/analytics/usage` renvoyaient des constantes codees en dur — 350 recherches, 150 ms, 1150 appels, 25 utilisateurs actifs, une repartition 100/50/200 entre les modes — accompagnees d'un champ `note: "Mock data"` que le front ne lisait pas. S'y ajoutaient deux litteraux `change="+12%"` et `"+5.4%"` ecrits directement dans le composant, rendus sous « depuis le mois dernier ». Hors `total_laws` et `recent_laws`, tout le tableau de bord etait fictif. Rien en base ne permettait de faire mieux pour la recherche : `query_cache` ne garde qu'un hachage, avec cinq minutes de duree de vie, et une requete servie depuis le cache n'y cree aucune ligne. Ce n'est pas un journal. La migration f1a2b3c4d5e6 en ajoute un — `search_events`, une ligne par recherche, ecrite sans jamais pouvoir faire echouer la recherche elle-meme. Les metriques d'usage, elles, etaient deja mesurables : `conversations` e…9066a18