fix(perf): apply MVP threading hotfix

Configure numerical library and torch threading for H1, keep raster threading/timing instrumentation, remove CONCERTATION from forced masks after real PDF FP testing, and record coordination archive state.
This commit is contained in:
2026-06-08 10:41:15 +02:00
parent eb6e030183
commit c40441d03a
68 changed files with 2075 additions and 20 deletions

View File

@@ -0,0 +1,65 @@
---
from: dom
to: claude
date: 2026-06-05T10:55:00+02:00
topic: rebuild-beta
status: open
priority: high
references:
- commit: 68ec345
- file: docs/coordination/inbox/for-qwen/2026-06-05_10-55_dom-via-codex_relance-validation-beta.md
---
# Ordre de marche — rebuild et pack beta
Message depose par Codex a la demande de Dom.
## Etat de depart
Branche : `feature/q1-quarantine-mvp`
HEAD observe : `68ec345` — T-N retrograde, T-O prioritaire.
Working tree observe par Codex le 2026-06-05 10:52 :
- non suivis restants : `docs/rapport-analyse-campagne-gui-2026-04-21.md`,
`graphify-out/`.
- Le reste des travaux beta a ete committe par la session precedente.
## Travail pour Claude
### C-BETA-1 — Hygiene finale repo
- Classer `docs/rapport-analyse-campagne-gui-2026-04-21.md` :
commit si utile a la beta, sinon laisser hors scope.
- Classer `graphify-out/` :
probablement artefact a gitignorer/supprimer, mais verifier avant action.
- Ne pas toucher aux livrables Qwen en cours sauf pour les lire.
### C-BETA-2 — Attendre ou compenser T-O
- Si Qwen livre `2026-06-05_qwen_validation-pack-beta.md`, lire son verdict.
- Si Qwen ne livre pas rapidement, faire une validation minimale equivalente
en local avant rebuild : admin off, VLM cache, absence PII pack, secrets,
chemins absolus, quarantaine.
### C-BETA-3 — Rebuild v11
- Lancer le build Windows sur la machine prevue `192.168.1.11`.
- Verifier que le modele custom ONNX est present localement avant build.
- Produire EXE/ZIP/installer selon les scripts valides.
- Calculer SHA-256 des artefacts.
### C-BETA-4 — Pack beta
- Exclure explicitement : `pdf_natif/`, `ano/pdf_natif/pseudonymise/`,
`.admin`, `.claude/`, `.codex-loop/`, `.qwen/`, logs, caches, tests, secrets.
- Inclure procedure SmartScreen et instructions de feedback beta.
- Produire un rapport dans :
`docs/coordination/inbox/for-dom/2026-06-05_claude_pack-beta-build-report.md`
## Garde-fous
- Aucune suppression irreversible de donnees hors artefacts clairement identifies.
- Aucun push sans accord explicite Dom.
- Si Qwen signale un NO-GO bloquant, stopper le rebuild et documenter le blocage.
— Dom via Codex

View File

@@ -0,0 +1,46 @@
---
from: dom
to: claude
date: 2026-06-05T14:45:00+02:00
topic: hold-owncloud-inno-apres-tests
status: open
priority: blocker
references:
- decision: docs/coordination/decisions/2026-06-05_dom_d16-test-windows-avant-diffusion.md
- file: docs/coordination/inbox/for-dom/2026-06-05_claude_pack-beta-build-report.md
---
# Stop diffusion — tests Windows Dom avant OwnCloud
Message depose par Codex a la demande de Dom.
## Instruction
Ne rien bouger sur OwnCloud pour le moment.
Dom va tester l'application sous Windows avec le pack local deja genere. Tant que
Dom n'a pas donne son GO explicite :
- pas d'upload OwnCloud ;
- pas de diffusion beta ;
- pas de publication externe ;
- pas de nouveau package installateur final.
## Inno Setup
Il faudra telecharger/installer Inno Setup sur la machine Windows, mais le
repackaging avec installateur se fera **apres** les tests Windows de Dom et apres
GO explicite.
Apres ce GO :
1. installer Inno Setup via `scripts\\install_inno_setup_build_dep.ps1` ;
2. rebuilder/repackager avec l'installateur ;
3. recalculer les SHA-256 ;
4. deposer un rapport de package mis a jour pour Dom.
## Etat attendu maintenant
Pack actuel conserve localement sur `192.168.1.11`.
— Dom via Codex

View File

@@ -0,0 +1,97 @@
---
from: dom
to: claude
date: 2026-06-05T17:55:00+02:00
topic: v11-5-chantiers-paralleles
status: open
priority: high
references:
- decision: docs/coordination/decisions/2026-06-05_dom_d17-v11-5-chantiers-paralleles.md
- decision: docs/coordination/decisions/2026-06-05_dom_d16-test-windows-avant-diffusion.md
---
# Préparer v11.5 en parallèle après bêta
Message déposé par Codex à la demande de Dom.
## Cap Dom
Après les tests Windows et le GO bêta, la v11.5 doit être préparée en parallèle
avec Claude + agents sur trois chantiers :
1. **GUI v6**
2. **D-13 complet**
3. **Plateforme licence**
## Important — gel bêta
Ne pas perturber le pack bêta v11 actuel.
Tant que Dom n'a pas terminé ses tests Windows :
- pas de modification du code packagé bêta ;
- pas de refonte sur la branche de livraison ;
- pas de mélange entre hotfix MVP et v11.5 ;
- plans, inventaires et découpage seulement.
## Proposition de répartition agents
### Agent A — GUI v6
Objectif : reprendre la transposition GUI v6 sans casser le moteur.
À produire :
- inventaire de l'existant (`Pseudonymisation_Gui_V5.py`, mockup v6, WIP sauvegardé Windows) ;
- architecture cible GUI v6 ;
- liste des écrans / workflows ;
- contrat minimal avec le moteur ;
- stratégie de migration progressive.
### Agent B — D-13 complet
Objectif : finir la protection des réglages avancés.
À produire :
- inventaire des réglages à protéger ;
- matrice admin/non-admin ;
- règles UI + règles sauvegarde config ;
- tests attendus ;
- impacts sur GUI v5/v6.
### Agent C — Licence plateforme
Objectif : préparer la plateforme licence validée D-14.
À produire :
- architecture serveur FastAPI/PostgreSQL/HTMX ;
- module client `license.py` ;
- format licence signé RSA-PSS ;
- flows activation / expiration / offline 30 jours / grace period ;
- plan de branches et livrables.
### Agent D — Intégration / merge
Objectif : éviter les collisions.
À produire :
- frontières de fichiers ;
- dépendances entre agents ;
- ordre de merge ;
- critères d'acceptation v11.5 ;
- risques principaux.
## Livrable demandé à Claude
Avant tout codage lourd, déposer :
`docs/coordination/inbox/for-dom/2026-06-05_claude_plan-v11-5-parallele.md`
Ce plan doit dire clairement :
- ce qui peut démarrer tout de suite en lecture/planification ;
- ce qui attend le GO bêta ;
- qui touche quels fichiers ;
- comment éviter de perdre le WIP Windows sauvegardé ;
- quels tests devront valider v11.5.
— Dom via Codex

View File

@@ -0,0 +1,53 @@
---
from: dom
to: claude
date: 2026-06-05T19:20:00+02:00
topic: app-aivanov-dev
status: open
priority: high
references:
- decision: docs/coordination/decisions/2026-06-05_dom_d18-app-aivanov-dev-parallele.md
- decision: docs/coordination/decisions/2026-06-02_dom_d14-plateforme-licence-architecture.md
---
# Mission Claude - developpement plateforme app.aivanov.fr
Dom valide le lancement parallele de la plateforme web `app.aivanov.fr`.
## Write scope
Travailler dans un projet separe :
`/home/dom/ai/app_aivanov`
Ne pas modifier le pack beta Windows dans `/home/dom/ai/anonymisation`.
## Mission
Developper le MVP portail :
- FastAPI ;
- PostgreSQL cible, SQLite local autorise ;
- SQLAlchemy/Alembic ;
- Jinja2 + HTMX ;
- auth email/password ;
- pages client "Mes licences" ;
- activation poste ;
- telechargement EXE/Setup/SHA256 ;
- back-office Dom ;
- API `/api/v1/activate`, `/api/v1/check`, `/api/v1/version`, `/api/v1/download/{version}` ;
- signature RSA-PSS cote serveur.
## Garde-fous
- OwnCloud est hors cible produit.
- Aucun deploiement public sans GO Dom.
- Aucune cle privee commitee.
- Aucun secret Brevo/SSH/API dans le repo.
- Pas de modification de l'EXE beta ni de la branche beta.
## Coordination
Qwen prend les tests, la securite, le contrat API licence et la validation RGPD.
Eviter les conflits : Claude code la plateforme, Qwen code les tests et signale les corrections.

View File

@@ -0,0 +1,36 @@
---
from: dom
to: claude
date: 2026-06-05T19:30:00+02:00
topic: perf-mvp-p1
status: open
priority: blocker
references:
- decision: docs/coordination/decisions/2026-06-05_dom_d19-performance-mvp-p1.md
---
# Performance MVP - P1 bloquant
Retour test Windows Dom : l'anonymisation est beaucoup trop lente, avec CPU autour
de 12 % et RAM autour de 16 Go.
## Mission
Programmer un chantier performance MVP en parallele, sans perturber `app_aivanov`
ni la beta tant qu'il n'y a pas de patch valide.
Priorites :
1. diagnostiquer le plafonnement mono-coeur en EXE PyInstaller/frozen ;
2. verifier la rasterisation PDF sequentielle ;
3. mesurer le cout OCR docTR 300 dpi ;
4. ajouter/proposer des timings par etape ;
5. proposer un hotfix MVP faible risque si possible.
## Garde-fous
- Le moteur RGPD reste fail-closed.
- Le leak score 100/100 reste obligatoire.
- Pas de refonte v11.5 melangee avec le hotfix perf.
- Pas de diffusion externe tant que Dom n'a pas valide.

View File

@@ -0,0 +1,58 @@
---
from: dom-via-codex
to: claude
date: 2026-06-05T20:55:00+02:00
topic: handoff-fin-journee
status: open
priority: high
references:
- decision: docs/coordination/decisions/2026-06-05_dom_d18-app-aivanov-dev-parallele.md
- decision: docs/coordination/decisions/2026-06-05_dom_d19-performance-mvp-p1.md
- report: docs/coordination/inbox/for-dom/2026-06-05_claude_diagnostic-perf-mvp.md
---
# Handoff fin de journee pour Claude
Dom arrete pour aujourd'hui. Ne pas lancer de nouveau chantier sans reprise explicite.
## Decisions a conserver
- OwnCloud est hors cible produit.
- La distribution/licence cible passe par `app.aivanov.fr`.
- Pas de diffusion publique, pas de package Inno Setup final, pas de build client sans
GO Dom apres tests Windows.
- Performance MVP est P1 bloquant.
## app.aivanov.fr
Le MVP local est stabilise dans `/home/dom/ai/app_aivanov`.
Attention : ne plus ecraser l'architecture existante. Les modeles/routes alignes sont
`Licence`, `ArtifactVersion`, `Seat`, auth session, API activate/check/version/download.
Reprise possible demain seulement sur demande Dom/Codex :
- completer une fonctionnalite manquante ciblee ;
- ajouter une migration propre ;
- corriger un test rouge ;
- preparer deploiement, mais sans secret et sans publication.
## Performance
Ton diagnostic H1/H2/H3/H4 a ete lu.
Etat actuel cote Codex :
- H2 applique : rasterisation frozen avec `ThreadPoolExecutor` + fallback ;
- H4 applique : timings `PERF` par etape ;
- H1 torch threads reste a implementer/valider ;
- H3 batch OCR reste a etudier apres mesure reelle.
Reprise conseillee :
1. H1 torch threads faible risque, puis tests.
2. Rebuild EXE Windows.
3. Analyse du log `PERF` sur le PDF reel Dom.
4. H3 seulement si le log prouve que l'OCR scanne domine.
Ne pas baisser le DPI OCR par defaut sans validation leak score.

View File

@@ -0,0 +1,65 @@
---
from: codex
to: dom
date: 2026-06-05T20:05:00+02:00
topic: app-aivanov-et-perf-status
status: delivered
priority: high
references:
- decision: docs/coordination/decisions/2026-06-05_dom_d18-app-aivanov-dev-parallele.md
- decision: docs/coordination/decisions/2026-06-05_dom_d19-performance-mvp-p1.md
- report: docs/coordination/inbox/for-dom/2026-06-05_qwen_perf-mvp-p1-diagnostic.md
---
# Statut Codex - app.aivanov.fr + performance MVP
## app.aivanov.fr
Projet cree dans `/home/dom/ai/app_aivanov`.
MVP local livre :
- FastAPI ;
- SQLite local par defaut, PostgreSQL prevu par `DATABASE_URL` ;
- Jinja2 + HTMX ;
- login session ;
- page client licences ;
- back-office Dom ;
- API `/api/v1/activate`, `/api/v1/check`, `/api/v1/version`, `/api/v1/download/{version}` ;
- signature RSA-PSS cote serveur ;
- tests Qwen ajoutes.
Verification :
- `python3 -m pytest -q` dans `/home/dom/ai/app_aivanov` : 10 passed.
- serveur local lance : `http://127.0.0.1:8088`.
## Performance MVP
Diagnostic Qwen confirme le goulot :
- EXE PyInstaller/frozen faisait la rasterisation PDF en sequentiel ;
- GUI force la sortie raster securisee ;
- docTR OCR 300 dpi peut expliquer la RAM elevee.
Patch Codex applique :
- `ThreadPoolExecutor` en mode `sys.frozen` pour la rasterisation PDF multi-pages ;
- fallback sequentiel si le mode thread echoue ;
- env `ANON_DISABLE_RASTER_THREADS=1` pour revenir au comportement precedent ;
- logs `PERF` par etape dans `process_pdf` ;
- logs mode raster (`sequential`, `threads`, `processes`) + duree totale.
Verification :
- `python3 -m py_compile anonymizer_core_refactored_onnx.py` OK ;
- `.venv/bin/python -m pytest tests/unit -q` : 98 passed ;
- test synthetic raster `sys.frozen=True` sur PDF 4 pages : OK.
## Reste avant diffusion
- Rebuilder l'EXE Windows avec ce patch perf.
- Tester sur le PDF reel Dom.
- Comparer CPU/RAM/temps avant-apres.
- Ne pas publier tant que Dom n'a pas valide le resultat.

View File

@@ -0,0 +1,92 @@
---
from: codex
to: dom
date: 2026-06-05T20:55:00+02:00
topic: handoff-fin-journee
status: delivered
priority: high
references:
- decision: docs/coordination/decisions/2026-06-05_dom_d18-app-aivanov-dev-parallele.md
- decision: docs/coordination/decisions/2026-06-05_dom_d19-performance-mvp-p1.md
- report: docs/coordination/inbox/for-dom/2026-06-05_qwen_perf-mvp-p1-diagnostic.md
- report: docs/coordination/inbox/for-dom/2026-06-05_claude_diagnostic-perf-mvp.md
---
# Handoff fin de journee - Codex
## Messages lus
J'ai relu les derniers messages Qwen et Claude.
- Qwen confirme que le symptome Windows CPU ~12 % colle avec une rasterisation PDF
mono-coeur en EXE PyInstaller/frozen.
- Claude ajoute une cause probable importante : `torch` non configure peut tomber a
1 thread en EXE frozen, ce qui impacte OCR docTR et NER.
- Les deux convergent : performance MVP = P1 bloquant avant diffusion.
## Etat app.aivanov.fr
Projet local cree dans `/home/dom/ai/app_aivanov`.
Etat livre :
- FastAPI ;
- SQLite local par defaut, PostgreSQL via `DATABASE_URL` prevu ;
- Jinja2 + HTMX ;
- auth session email/password ;
- page client "Mes licences" ;
- back-office Dom ;
- API activation/check/version/download ;
- signature RSA-PSS cote serveur ;
- tests Qwen ajoutes.
Verification :
- `python3 -m pytest -q` dans `/home/dom/ai/app_aivanov` : 10 passed.
- Serveur local coupe pour la nuit.
- Redemarrage demain si besoin :
`cd /home/dom/ai/app_aivanov && python3 -m uvicorn app.main:app --host 127.0.0.1 --port 8088`
- Compte dev local : `dom@aivanov.fr` / `change-me`.
Rappel decision produit : OwnCloud reste hors cible. La cible distribution/licence est
une interface web `app.aivanov.fr`.
## Etat performance MVP
Patch deja applique dans `anonymizer_core_refactored_onnx.py` :
- H2 partiel : en EXE frozen, rasterisation PDF multi-pages via `ThreadPoolExecutor`
au lieu du sequentiel force ;
- fallback sequentiel si erreur ;
- rollback possible avec `ANON_DISABLE_RASTER_THREADS=1` ;
- H4 : logs `PERF` par etape dans `process_pdf` ;
- logs du mode raster effectif et de la duree.
Verification locale :
- `python3 -m py_compile anonymizer_core_refactored_onnx.py` : OK ;
- `.venv/bin/python -m pytest tests/unit -q` : 98 passed ;
- test synthetic `sys.frozen=True` sur PDF 4 pages : OK.
Point restant important lu chez Claude : H1 n'est pas encore applique. Demain, il faut
ajouter/configurer proprement `torch.set_num_threads(...)` et les variables
`OMP_NUM_THREADS` / `MKL_NUM_THREADS` si cela ne casse pas l'environnement Windows.
## Reprise conseillee demain
1. Demander/confirmer si le PDF lent de test Windows etait scanne ou natif texte, et
noter nombre de pages + taille.
2. Ajouter H1 torch threads, puis revalider tests.
3. Rebuilder un EXE Windows de test avec H1 + H2 + H4.
4. Retester le PDF reel sous Windows et relever temps total, CPU, RAM, lignes `PERF`
de `anonymisation.log`.
5. Si le gain est net et que leak/tests restent bons, preparer le package suivant.
6. Ne pas refaire le package Inno Setup ni diffuser sans GO Dom apres test Windows.
## Etat operationnel
- Serveur `app.aivanov.fr` local coupe.
- Boucle de lecture inbox toutes les 3 minutes coupee.
- Agents fermes/demandes au repos apres handoff.
- Working tree non commitee : modifications perf + docs coordination + projet
`/home/dom/ai/app_aivanov`.