alf
|
2731b37b20
|
refactor: architecture modulaire core/features + routers par domaine (phase 1)
Refonte évolutive (pas de page blanche) : on garde le code validé hardware, on impose
la structure.
- core/ : adb, provider, store (socle validé) + context.py (Ctx injecté + guard
centralisé exceptions→HTTP) + operator_router (santé/unlock/audit).
- features/ : voices/ (ex-voice/, sous-système complet) + fleet/ (service + router) ;
chaque feature expose make_router(ctx). Ajouter un domaine = un dossier + l'enregistrer.
- app.py slim : compose les routers (_FEATURES). Fini le monolithe api/app.py.
- imports migrés, __main__ et tests adaptés. VoiceWorkerError.http_status=503 (découplage).
- 42/42 ; validé live (santé, devices, voices/catalog).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-30 16:57:26 +02:00 |
alf
|
465ddd4e7a
|
feat: store chiffré, dashboard web flotte, accès réseau + durcissements
- store/ : archive clinique chiffrée (sqlite3 + PyNaCl SecretBox/Argon2id),
mapping serial→label patient, audit. Choix sqlite+PyNaCl plutôt que SQLCipher
(wheels Linux-only) pour rester facilement installable Mac/Win.
- web/ + montage StaticFiles : dashboard flotte en lecture (état, profils,
sessions, RAG, updates, crashes), HTML+JS vanilla sans build.
- __main__.py : `python -m kazeia_central`, host/port via env + auth HTTP Basic
optionnelle (KAZEIA_USER/PASS) pour exposition réseau (0.0.0.0).
- adb : devices() robuste au bruit daemon, réveil/retry du provider (§3.5).
- models : champs non-clés optionnels (résilience flotte hétérogène).
- spec : RAG à plat (miroir ConfigStore.toJson), ajout rag_dump_json, note PIN.
- tests : 14/14 (parsing adb + store chiffré).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-18 22:41:55 +02:00 |