- Add all process docs to mkdocs.yml nav (15 missing pages) - Replace relative links to files outside docs/ with absolute GitHub URLs - Add docs/audit/ directory (templates + reports) - Add validation config to allow unlisted audit reports as info-level
3.1 KiB
3.1 KiB
Rapport d'audit : Decouplage
Release : 0.3.1 Date : 2026-04-10 Auditeur : claude-code Derniere mise a jour : 2026-04-10 (re-audit post PR #144)
Score de compliance
| Metrique | Valeur |
|---|---|
| Items conformes | 16 / 16 |
| Score | 100 / 100 |
| Ecarts CRITICAL | 0 |
| Ecarts MAJOR | 0 |
| Ecarts MINOR | 0 |
| Ecarts INFO | 0 |
Ecarts resolus (PR #144 — fix/decoupling-audit)
[CRIT — RESOLU] Imports croises entre features frontend
- Localisation :
features/history/store.ts,features/chunking/,features/document/store.ts,shared/i18n.ts - Resolution :
shared/appConfig.tscree comme pont reactif neutre (appLocale,appMaxFileSizeMb,appMaxPageCount).shared/i18n.tslitappLocaledepuisshared/appConfig— plus d'import depuisfeatures/.features/document/store.tslitappMaxFileSizeMbdepuisshared/appConfig— plus d'import deuseFeatureFlagStore.features/feature-flags/store.tsecrit dansappConfiglors du chargement.features/settings/store.tsecritappLocalelors du changement de langue.
[MAJ — RESOLU] Features chunking et history sans store/API propres
- Resolution :
features/chunking/api.tscree avecrechunkAnalysis().features/chunking/store.tscree avecuseChunkingStore(state:rechunking,error; action:rechunk()).features/history/api.tscree avecfetchHistory()etdeleteHistoryEntry().features/history/store.tsreecrit comme store Pinia distinct (state:analyses,error; actions:load(),remove()).
[MAJ — RESOLU] Collapse d'identite store history/analysis
- Resolution :
useHistoryStoreest desormais un store Pinia independant avec son propre state et ses propres appels API. Plus de re-export versuseAnalysisStore.
[MAJ — RESOLU] Health endpoint sans schema Pydantic
- Resolution :
HealthResponseschema Pydantic cree dansapi/schemas.py. Le endpoint/api/healthretourneHealthResponseavecresponse_model=HealthResponse.
[MIN — RESOLU] Pas de format de reponse API coherent
- Resolution : Le schema
HealthResponseetablit le pattern type pour les endpoints systeme. Les erreurs fonctionnelles utilisent le format standard FastAPIHTTPExceptionde facon coherente.
Points positifs
- Decouplage frontend/backend exemplaire via API REST, nginx proxy, et services Docker separes
- Contrat API stable : types TypeScript alignes sur les schemas Pydantic avec serialisation camelCase
- Backend pleinement testable sans frontend (TestClient)
- Repos retournent des objets domaine, pas de dicts ou Row SQLite
- Les adaptateurs infra ne leakent pas les types Docling vers les services
- Changement de DB ne necessiterait de modifier que
persistence/ - Ports avec signatures claires utilisant des types du domaine
- Features frontend isolees : chaque feature possede son store, son API client et ses composants UI
shared/appConfig.tspattern : pont reactif sans couplage de feature a feature
Verdict : GO
Score 100/100 — 0 ecart critique. Toutes les non-conformites precedentes resolues via PR #144.