docs: track design docs, plans, audits, coordination infrastructure, handoffs

- 21 docs/*.md: audits, design notes, deployment plans, checklists, memos
- Coordination: ROLES, runbooks (DGX reboot, Lea live), patches, registre, syntheses, systemd, QG template
- Handoffs: 6 Codex handoff documents + README + template
This commit is contained in:
Dom
2026-07-02 13:29:58 +02:00
parent 7dd5c872df
commit 6907ecc82f
42 changed files with 5267 additions and 0 deletions

View File

@@ -0,0 +1,83 @@
# Registre des décisions — 2026-06-08
- `Date`: 2026-06-08
- `Auteur`: Qwen (compilation)
- `Statut`: actif, source de vérité jusqu'à contre-ordre Dom
---
## Décisions tranchées
### D-01 : DGX = Option A (court terme)
- **Cible** : `/home/aivanov/ai/rpa_vision_v3`, user `aivanov`
- **Tranché par** : Dom (15:15)
- **Référence** : `active/2026-06-08_1515_decisions-dom-go-operationnels.md`
- **Branch** : `poc-dgx` poussée sur Gitea (`6d34b3cb6`)
- **Option B** (`/opt/rpa_vision_v3`, user `rpa`) : reportée post-POC
### D-02 : WP-A dashboard fail-closed — GO
- **Ce que ça fait** : Dashboard refuse de démarrer si `DASHBOARD_PASSWORD` absent ET auth non désactivée. Mot de passe par défaut supprimé.
- **Commit** : `549ea0631`
- **Tests** : 11/11 passés
- **Tranché par** : Dom (15:15) + QG Qwen (15:48)
### D-03 : WP-B verrou enrôlement — GO
- **Ce que ça fait** : `RPA_FLEET_ENROLL_LOCKED=true` bloque enrôlement nouveau `machine_id`. Ferme contournement "poste révoqué + nouveau ID + token global".
- **Commit** : `f18de016d`
- **Tests** : 6/6 passés
- **Tranché par** : Dom (15:15) + QG Qwen (15:48)
### D-04 : P1.g GPU merge — GO
- **Ce que ça fait** : `resolve_device(auto/cuda/cpu)` avec garde-fou VRAM (`min_free_gb=2`, `max_total_gb=6`), fallback CPU.
- **Commit** : `0e215da84`
- **Tests** : 15/15 passés, smoke OK (`auto → cuda`, `cpu → cpu`)
- **Tranché par** : Dom (15:15) + QG Qwen (15:25)
- **Rollback** : `RPA_VISION_DEVICE=cpu`, `RPA_EASYOCR_GPU=0`
### D-05 : Grounder candidat = Qwen3-VL-4B-Instruct via vLLM
- **Bench** : 87.5% accuracy, 1.1s latence, 1 dangereux/16, Apache-2.0
- **Tranché par** : Claude (15:45) + QG Qwen (16:10)
- **Note** : Pas d'activation runtime sans GO Dom + bench sur écrans réels
### D-06 : Grounding gemma4:26b supervisé
- **Bench** : 69% accuracy, **0 dangereux**, 14.4s OCR
- **Tranché par** : Claude (15:45) + QG Qwen (16:10)
- **Usage** : Grounding supervisé (pas autonome)
### D-07 : UI-TARS gate vision
- **Ce que ça fait** : `has_vision_capability()` via `/api/show` — skip propre si modèle aveugle + `logger.warning`
- **Commit** : `d00fe7b00`
- **Tranché par** : Claude (12:25) + QG Qwen (12:28)
- **Contexte** : UI-TARS cassé sur DGX (aveugle, mmproj non chargé) → 500 silencieux corrigé
### D-08 : Trained artifacts V2 — GO avec réserves
- **Paquet** : ~306 Mo, 6107 fichiers (anchors ajoutés, screen_states retirés)
- **Anti-secret** : CLEAN (0 token, 0 identité patient, 0 machine_id réel)
- **Rewrite** : 2 colonnes (`image_path` + `thumbnail_path`) `/home/dom/``/home/aivanov/`
- **Revue visuelle** : Dom confirme captures 100% fictives (mockup `urgence.labs`)
- **Tranché par** : Claude (16:08) + Codex (16:06) + QG Qwen (16:10, 16:50)
- **Transfert** : Bloqué en attente GO Dom effectif
### D-09 : Lea live — GO quand preflight vert
- **Condition** : Dom devant Windows + preflight G1-G6 verts
- **Scope** : Capture Shadow supervisée, Notepad/Explorateur/Easily lecture seule
- **Interdit** : ❌ Replay autonome
- **Tranché par** : Dom (15:15)
### D-10 : Code mort — NO-GO suppression
- **Ce qui est interdit** : Suppression, déplacement, archive, marquage `DEPRECATED` massif
- **Autorisé** : Inventaire read-only, documentation
- **Tranché par** : Dom (16:37) + Codex (16:37) + Claude (16:35)
- **Référence** : `active/2026-06-08_1637_decision-piste2-no-go-code-mort.md`
---
## Décisions en attente
| Sujet | En attente de | Impact |
|---|---|---|
| Unification `.service` files | Conception Codex | Migration DGX propre |
| Transfert trained artifacts DGX | GO Dom effectif + tar créé | Clone DGX complet |
| Node.js sur DGX | Dom/Claude | VWB frontend 3002 |
| Benchmark GPU P1.g | Claude (en cours) | Activation large P1.g |
| Scan anti-code-mort | Attente (read-only) | Détection automatique "UI-TARS bis" |

View File

@@ -0,0 +1,145 @@
# Registre des decisions — 2026-06-09
- `Date`: 2026-06-09
- `Auteur`: Codex
- `Statut`: actif
---
## Decisions tranchees
### D-2026-06-09-01 : Codex orchestre activement Claude et Qwen
- **Tranche par** : Dom, 2026-06-09
- **Decision** : Codex est l'orchestrateur actif du projet. Tant que Claude et Qwen ont des loops de coordination actifs, Codex doit leur fournir une prochaine tache actionnable.
- **Exception** : Codex peut ne pas distribuer une execution seulement s'il attend explicitement un feu vert de Dom ou un QG bloquant.
- **Implication** : en cas de blocage sur execution, Codex distribue quand meme des taches non destructives : preparation, audit read-only, QG, rollback, plan de tests, registre decisions.
- **Persistance** : regle ajoutee a `docs/coordination/ROLES.md`.
### D-2026-06-09-02 : Dashboard DGX — GO partiel, produit incomplet
- **Tranche par** : QG Qwen + Codex
- **Refs** :
- `docs/coordination/inbox_codex/2026-06-09_1120_claude-to-codex_RESULTAT-DASHBOARD-DGX-E2E.md`
- `docs/coordination/inbox_codex/2026-06-09_1130_qwen-to-codex-claude-dom_QG-DASHBOARD-DGX-E2E-GO-PARTIEL.md`
- **Decision** : securite dashboard DGX validee ; dashboard produit non valide tant que P0 workflows non servis et ZIP agent absent ne sont pas corriges.
- **Suite autorisee** : preparation Lea live read-only ; preparation corrections P0 sans execution.
- **Bloquant multi-TIM** : WP-C token par poste.
### D-2026-06-09-03 : Branching stable = `poc-prod`
- **Tranche par** : Dom, relaye par Claude a 14:12 CEST.
- **Ref** : `docs/coordination/inbox_codex/2026-06-09_1412_claude-to-codex-qwen_DECISIONS-DOM-poc-prod-m4-clone-p0-go.md`
- **Decision** : branche stable POC/NVP/prod = `poc-prod`.
- **Schema retenu** : `main` racine, `dev` integration quotidienne, `poc-prod` stable protegee promue depuis `dev` apres QG.
- **Conservation** : `poc-dgx` conserve comme snapshot DGX.
- **Reste ouvert** : chantier blobs ~15 G, sort de `master`, droits de push/protection sur `poc-prod`.
### D-2026-06-09-04 : Docker — rester clone + venv + systemd pour le POC
- **Tranche par** : Dom, relaye par Claude a 14:12 CEST.
- **Refs** :
- `docs/coordination/inbox_codex/2026-06-09_1410_claude-to-codex_AUDIT-DOCKER-VS-CLONE-SYSTEMD.md`
- `docs/coordination/inbox_codex/2026-06-09_1412_claude-to-codex-qwen_DECISIONS-DOM-poc-prod-m4-clone-p0-go.md`
- **Decision court terme** : ne pas dockeriser pour le POC ; conserver clone + venv + systemd.
- **Decision moyen terme** : Docker hybride progressif post-POC, avec Ollama et agent RPA hors conteneur.
### D-2026-06-09-05 : GO execution P0-1/P0-2 dashboard DGX
- **Tranche par** : Dom, relaye par Claude a 14:12 CEST.
- **Ref** : `docs/coordination/inbox_codex/2026-06-09_1412_claude-to-codex-qwen_DECISIONS-DOM-poc-prod-m4-clone-p0-go.md`
- **P0-1** : appliquer `DATABASE_URL` absolu pour VWB, restart service, verifier `/api/workflows/` = 23.
- **P0-2** : build `deploy/Lea_v1.0.0.zip` sur DGX pour usage POC interne.
- **Garde-fou** : paquet agent non distribuable multi-TIM tant que WP-C token par poste n'est pas implemente et QG.
### D-2026-06-09-06 : M2 cible dev Linux, Ollama via tunnel DGX
- **Tranche par** : QG Qwen corrige a 15:12 CEST.
- **Refs** :
- `docs/coordination/inbox_codex/2026-06-09_1420_claude-to-codex_RESULTAT-M2-VERIF-SERVEUR-DEV-LINUX-READONLY.md`
- `docs/coordination/inbox_codex/2026-06-09_1425_claude-to-codex_RESULTAT-M2-OLLAMA-ENV-READONLY.md`
- `docs/coordination/inbox_codex/2026-06-09_1512_qwen-to-codex-claude-dom_QG-M2-CORRECTION-OLLAMA-TUNNEL-GO.md`
- **Decision** : M2 cible le serveur dev Linux `192.168.1.40`, pas le DGX directement.
- **Ollama** : acces via tunnel SSH local `127.0.0.1:11434` vers DGX ; Qwen indique tunnel relance et modeles disponibles.
- **Garde-fou** : execution live Shadow uniquement avec Dom devant Windows + GO Codex. Tunnel non persistant = P1 a stabiliser avant demo multi-machine.
### D-2026-06-09-07 : WP-C peut commencer apres P0 dashboard
- **Tranche par** : QG Qwen a 15:05 et 15:06 CEST.
- **Refs** :
- `docs/coordination/inbox_codex/2026-06-09_1505_qwen-to-codex-claude-dom_QG-PREP-P0-DASHBOARD-WPC-GO.md`
- `docs/coordination/inbox_codex/2026-06-09_1506_qwen-to-codex-claude-dom_QG-POST-P0-BRANCHES-DOCKER.md`
- **Decision QG** : WP-C token par poste peut commencer en parallele M2 apres P0 dashboard.
- **Garde-fou** : WP-C reste bloquant multi-TIM ; tests P0 requis : build ZIP sans token global + enroll poste unique.
### D-2026-06-09-08 : P0 dashboard corrige par symlink workflow store
- **Tranche par** : Dom, relaye et execute par Claude a 20:25 CEST.
- **Ref** : `docs/coordination/inbox_codex/2026-06-09_2025_claude-to-codex-qwen_RESULTAT-P0-DASHBOARD-CORRECTIONS.md`
- **Rectificatif** : le diagnostic `DATABASE_URL` etait incomplet/errone ; la route VWB `/api/workflows/` lit les JSON via `WorkflowDatabase("data/workflows")`, pas SQLAlchemy.
- **Cause racine** : divergence de `WorkingDirectory` dev vs DGX, donc chemin relatif `data/workflows` resolu au mauvais endroit sur DGX.
- **Correction POC** : symlink `data/workflows` -> `visual_workflow_builder/backend/data/workflows`.
- **Verification** : VWB 5002 `/api/workflows/` = 39 workflows.
- **Rollback** : `rm data/workflows && mkdir data/workflows`.
- **Note** : `DATABASE_URL` laisse en place, neutre pour cette route, utile aux composants SQLAlchemy.
### D-2026-06-09-09 : DETTE-015 double store workflows
- **Ref** : `docs/coordination/inbox_codex/2026-06-09_2035_claude-to-codex-qwen_INFO-DETTE-015-store-workflows.md`
- **Decision** : enregistrer la dette double store workflows en P2 post-POC.
- **Docs** :
- `docs/DETTE_TECHNIQUE.md`
- `docs/PLAN_MIGRATION_WORKFLOWS_STORE_2026-06-09.md`
- **Cible post-POC** : unifier sur la DB SQLAlchemy existante sous flag, TDD, sans refactor avant la demo.
### D-2026-06-09-10 : Qwen indisponible, Codex orchestre en mode degrade
- **Tranche par** : Dom, 2026-06-09.
- **Decision** : Qwen est considere temporairement indisponible. Codex ne lui route plus de nouvelles taches tant que la panne n'est pas levee.
- **Implication** : Codex assure l'interim de coordination et demande a Claude des self-checks/read-only/handoffs, sans executer les actions qui exigent un QG formel si elles sont structurelles ou risquées.
- **Garde-fou** : pas de code WP-C, pas de live M2, pas de multi-TIM sans GO explicite Dom/Codex et, si possible, QG a posteriori quand Qwen revient.
### D-2026-06-09-11 : Qwen revenu, reprise QG normale
- **Tranche par** : Dom/Codex, 2026-06-09 20:47 CEST.
- **Refs** :
- `docs/coordination/inbox_codex/2026-06-09_2025_qwen-to-codex-claude-dom_QG-TUNNEL-PERSISTANT-M2-READINESS-GO.md`
- `docs/coordination/inbox_codex/2026-06-09_2026_qwen-to-codex-claude-dom_QG-WPC-CARTO-GO.md`
- `docs/coordination/inbox_codex/2026-06-09_2027_qwen-to-codex-claude-dom_ACK-MESSAGES-FIN-JOURNEE.md`
- **Decision** : Qwen est revenu ; Codex reprend le mode normal avec QG Qwen.
- **Action** : Qwen doit rendre le QG post-P0 dashboard sur le resultat Claude 20:25 ; Claude peut avancer WP-C Patch 1 local/TDD uniquement.
### D-2026-06-09-12 : Dashboard post-P0 — GO final
- **Tranche par** : QG Qwen a 20:50 CEST.
- **Refs** :
- `docs/coordination/inbox_codex/2026-06-09_2050_qwen-to-codex-claude-dom_QG-POST-P0-DASHBOARD-GO.md`
- `docs/coordination/inbox_codex/2026-06-09_2050_qwen-to-codex-claude-dom_ACK-POST-P0.md`
- **Decision** : P0-1 et P0-2 resolus ; dashboard produit debloque pour M2.
- **Verification Qwen** : VWB 5002 `/api/workflows/` = 39, symlink OK, tunnel Ollama actif.
- **Garde-fou** : ZIP agent POC interne uniquement ; multi-TIM reste NOGO avant WP-C.
- **Point P1** : verifier et retirer `DATABASE_URL` si present dans env systemd/service pour eviter dette inutile avant GO M2.
### D-2026-06-09-13 : WP-C Patch 1 GO, Patch 2 autorise local/TDD
- **Tranche par** : QG Qwen a 21:10 CEST + Codex.
- **Refs** :
- `docs/coordination/inbox_codex/2026-06-09_2058_claude-to-codex_RESULTAT-WPC-PATCH1-MIGRATION-TDD.md`
- `docs/coordination/inbox_codex/2026-06-09_2104_claude-to-codex_INFO-WPC-PATCH1-COMMITE.md`
- `docs/coordination/inbox_codex/2026-06-09_2110_qwen-to-codex-claude-dom_QG-WPC-PATCH1-GO.md`
- **Patch 1** : GO, commit local `f7f692641`, non pousse, non deploye DGX.
- **DATABASE_URL** : garder ; P1 post-POC, pas de cleanup avant M2.
- **Patch 2 autorise** : generation token a l'enroll, local/TDD uniquement, pas de branchement auth, pas de ZIP, pas de deploiement DGX.
---
## Decisions en attente
| Sujet | En attente de | Impact |
|---|---|---|
| WP-C Patch 2 local/TDD | Resultat Claude + QG Qwen | Generation token enroll seulement |
| Branching details : blobs/master/protection | QG Qwen + GO Dom | Nettoyage et protection stable |
| Execution M2 Lea live | Dom devant Windows + GO Codex | Capture Shadow supervisee |
| Push/deploiement WP-C Patch 1+ | GO Dom/Codex separe | Integration distante |
— Codex

View File

@@ -0,0 +1,62 @@
# Registre des decisions — 2026-06-10
- `Date`: 2026-06-10
- `Auteur`: Codex
- `Statut`: actif
---
## Decisions tranchees
### D-2026-06-10-01 : Plan de continuite si contexte Codex bas/reset
- **Tranche par** : Dom, relaye par Codex a 09:18 CEST.
- **Contexte** : Dom signale qu'il reste tres peu de contexte Codex et qu'un reset est prevu vers 14:12.
- **Decision** : Codex doit poser un plan de relais pour permettre a Claude et Qwen d'avancer sans dependance forte a son contexte.
- **Claude** : peut avancer WP-C Patch 2 local/TDD seulement et produire preuves/resultat.
- **Qwen** : garde le fil, rend QG, signale contradictions, tient active/registre si necessaire.
- **Dom** : reste arbitre pour live, push, deploiement, branches et extension de scope.
- **Refs** :
- `docs/handoffs/2026-06-10_handoff_codex_context-low-reset-1412.md`
- `docs/coordination/active/2026-06-10_0918_continuite-codex-context-reset.md`
- `docs/coordination/inbox_claude/2026-06-10_0918_codex-to-claude_RELANCE-WPC-PATCH2-CONTINUITE.md`
- `docs/coordination/inbox_qwen/2026-06-10_0918_codex-to-qwen_QG-CONTINUITE-CONTEXT-RESET.md`
### D-2026-06-10-02 : WP-C Patch 1-3 GO, arret avant Patch 4 runtime
- **Tranche par** : QG Qwen + Codex, 2026-06-10.
- **Refs** :
- `docs/coordination/inbox_codex/2026-06-10_1425_qwen-to-codex-claude-dom_QG-WPC-PATCH2-GO.md`
- `docs/coordination/inbox_codex/2026-06-10_1435_qwen-to-codex-claude-dom_QG-WPC-PATCH3-GO.md`
- `docs/coordination/active/2026-06-10_1437_wpc-patch1-3-go-stop-patch4.md`
- **Decision** : WP-C Patch 1, Patch 2 et Patch 3 sont GO, locaux, non pousses, non deployes.
- **Etat commits** :
- Patch 1 : `f7f692641`.
- Patch 2 : `9fb2c7bfe`.
- Patch 3 : `b20d17882`.
- **Garde-fou** : Patch 4 est le premier impact runtime (`api_stream.py::_verify_token` derriere flag `RPA_FLEET_PER_AGENT_TOKEN`) et reste interdit sans decision Dom explicite.
- **Autorise** : preparation read-only, plan TDD, plan rollback, audit risques.
- **Interdit** : Patch 4 code, push, deploiement, ZIP/package, M2 live, multi-TIM, secret en clair.
### D-2026-06-10-03 : WP-C arrete pour POC, dette auth globale acceptee
- **Tranche par** : Dom, relaye/QG par Qwen a 14:50 CEST.
- **Refs** :
- `docs/coordination/inbox_codex/2026-06-10_1450_qwen-to-codex-claude-dom_DECISION-WPC-ABANDON-DETTE.md`
- `docs/coordination/active/2026-06-10_1440_anti-doublon-wpc-verdict.md`
- `docs/DETTE_TECHNIQUE.md` (`DETTE-016`)
- **Decision** : le token global + `machine_id` auto-declare est suffisant pour le POC controle.
- **Consequence** : WP-C token par poste est arrete pour le POC ; Patch 4 runtime est annule.
- **Etat commits** : Patch 1-3 restent locaux, inertes, non pousses, non deployes.
- **Dette** : `DETTE-016` creee en P2/ACCEPTED pour le gap "auth token global sans verification cryptographique par poste".
- **Garde-fou** : reouvrir WP-C ou une solution equivalente uniquement avant distribution multi-TIM elargie, exposition reseau non maitrisee ou besoin de revocation par poste non contournable.
## Decisions en attente
| Sujet | En attente de | Impact |
|---|---|---|
| M2 Lea live | Dom devant Windows + GO Codex | Execution supervisee |
| Branches/blobs/protection | QG + GO Dom | Hygiene repo post-POC |
| Reouverture WP-C post-POC | Decision Dom explicite | Seulement si multi-TIM elargi / exposition reseau / revocation forte |
— Codex