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:
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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.
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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.
|
||||
@@ -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.
|
||||
|
||||
@@ -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`.
|
||||
Reference in New Issue
Block a user