fix(security,metrics): Sprint A14-S1 — boucher les 6 P0 du rewrite ciblé a2bea75 unverified Claude commited on May 3
refactor(measurements): split runner.py (1019 → 6 sub-modules) by concern 0b09377 unverified Claude commited on May 3
feat(measurements): câbler les 13 modules test-only — baseline → 0 388e3f2 unverified Claude commited on May 2
fix(zero-debt): éliminer toute la dette technique actionnable identifiée 7e28f42 unverified Claude commited on May 2
refactor(measurements): split statistics.py (1128 → 8 sub-modules) by family 652752d unverified Claude commited on May 2
fix(audit-2): 5 correctifs supplémentaires d'un 2e tour d'audit b80bb93 unverified Claude commited on May 2
fix(audit): 5 corrections suite à l'audit complet de mes derniers sprints 1e8b84c unverified Claude commited on May 2
fix(report): corrections d'audit du sprint de découpage de generator.py 6724f94 unverified Claude commited on May 2
refactor(report): split generator.py (1063 → 431 lines) by concern d641f6e unverified Claude commited on May 2
refactor(report): consolidate 27 render helpers into render_helpers.py 2d6c41d unverified Claude commited on May 2
feat(sprint-A11): doc institutionnelle (déploiement + RGPD + traduction EN) 95cbd83 unverified Claude commited on May 2
feat(sprint-A9): release pipeline PyPI + ghcr.io + GitHub Release 628d92a unverified Claude commited on May 2
feat(sprint-A8): reproductibilité opérationnelle (lock files + Docker pinning + snapshots doc) fc30527 unverified Claude commited on May 2
feat(sprint-A7): WCAG niveau AA — palette daltonien + i18n résiduel + déclaration a11y 17cc547 unverified Claude commited on May 2
feat(sprint-A6): WCAG niveau A bloquant — skip-link, canvas a11y, scope=col 43d25a5 unverified Claude commited on May 2
feat(sprint-A5): concurrence + perf + lazy reports + corpus de référence 563a0f0 unverified Claude commited on May 2
feat(web): Sprint A4 — sécurité web (B-11 CSRF, M-3 /health) c9d381c unverified Claude commited on May 2
refactor(arch): Sprint A3 — refactor cercles + importers (B-1, B-2, B-3, m-17) fda1a60 unverified Claude commited on May 2
feat(ci): Sprint A1 — Hardening CI (B-7, B-8, M-4, M-15, m-7, m-8, m-9) 89d5b21 unverified Claude commited on May 2
fix(web): rendre la SPA visible dans l'iframe HuggingFace Space d7b2813 unverified Claude commited on May 1
chore: supprimer unregister_job mort + factoriser _numbers_in_payload partagé d40d01e unverified Claude commited on May 1
refactor(engines): extraire engine_from_name de cli vers cercle 2 (engines/factory.py) 4ea3cd0 unverified Claude commited on May 1
refactor(core): extraire safe_parse_xml en cercle 1 + appliquer aux 3 sites XXE résiduels 180bb96 unverified Claude commited on May 1
chore(web): cookie samesite=strict + nettoyage des références "Sprint X" 781c660 unverified Claude commited on May 1
fix(web): durcir le parsing XML (defusedxml en dépendance dure) + exceptions précises de46be0 unverified Claude commited on May 1
fix(web): valider strictement les payloads Pydantic (max_length, Literal) dbab2ed unverified Claude commited on May 1
fix(web): déléguer l'I/O bloquante à des threads dans les routes async 2be6d5f unverified Claude commited on May 1
fix(web): JOBS registry thread-safe via helpers state.register_job / get_job_in_memory 31f753b unverified Claude commited on May 1
refactor(web): finaliser le découpage — router benchmark + app.py orchestrateur bb74b82 unverified Claude commited on May 1
refactor(web): extraire les 5 routers métier (engines, corpus, config, synthesis, history) ecbec06 unverified Claude commited on May 1
refactor(web): extraire les 5 routers simples (system, normalization, reports, importers, home) f14102c unverified Claude commited on May 1
refactor(web): extraire benchmark_utils.py et config_utils.py ec6e89d unverified Claude commited on May 1
refactor(web): extraire helpers métier (corpus_utils, engine_utils) 0171c0a unverified Claude commited on May 1
refactor(web): extraire models.py et state.py depuis app.py 243a84a unverified Claude commited on May 1
refactor(measurements): renommer *_runner.py en *_hooks.py pour cohérence 77d9c47 unverified Claude commited on May 1
feat(api): exposer l'API publique du Cercle 1 au niveau racine 360239b unverified Claude commited on May 1
docs: corriger les docstrings mensongères sur les shims dans les __init__.py 6a9d280 unverified Claude commited on May 1
fix(core): déplacer MetricsResult et aggregate_metrics en cercle 1 b7dca96 unverified Claude commited on May 1
docs: mettre à jour CLAUDE.md, api-stable.md, supprimer architecture-cercles.md 6d4b563 unverified Claude commited on May 1
refactor(engines): unifier l'API token_confidences à un seul nom canonique eca43d9 unverified Claude commited on May 1
refactor(importers): supprimer picarones/importers/, n'utiliser que extras/importers/ 00924d0 unverified Claude commited on May 1
refactor(core): faire de core/ un cercle 1 strict, déplacer cercle 2 vers measurements/ 979f3c3 unverified Claude commited on May 1
refactor(report): regrouper renderers depuis extras/render/ 79574cc unverified Claude commited on May 1
refactor(measurements): promouvoir modules philologiques/académiques/governance depuis extras/ 7a072e2 unverified Claude commited on May 1
fix(ci): restaurer rétrocompat tests + corriger 14 cassures CI c0f7ba9 unverified Claude commited on May 1
phaseE: séparation core/ (Cercle 1) + measurements/ (Cercle 2) d756039 unverified Claude commited on Apr 30
phaseC: extras/importers/ — 6 importers en Cercle 3 + 2 marqués experimental 0a46dfa unverified Claude commited on Apr 30
phaseB: extras/historical/ — 8 modules philologiques + 2 renderers en Cercle 3 f593a34 unverified Claude commited on Apr 30