docs(coordination): report wait for state runtime

This commit is contained in:
Dom
2026-05-29 17:26:35 +02:00
parent e66bc6d452
commit 9a45e61e2a
3 changed files with 150 additions and 0 deletions

View File

@@ -0,0 +1,71 @@
# RESULTAT Codex - Patch B wait_for_state runtime
Date: 2026-05-29 17:25
Auteur: Codex
Contexte: Dom a valide `wait_for_state` comme primitive Lea distincte de `wait_for_anchor`.
## Important: correction palette VWB
Dom a signale un risque de perte d'outils dans la palette VWB.
Cause: la ToolPalette chargeait le catalogue backend comme remplacement de la liste statique.
Correction appliquee:
- `7b1f30af1 fix(vwb): preserve static palette tools`
- le catalogue backend enrichit/standardise les actions connues;
- les outils statiques existants restent visibles;
- seules les actions `lea_competence_*` restent masquees par defaut.
Regle produit confirmee:
- aucune suppression implicite d'outils VWB;
- migration progressive vers le standard catalogue, outil par outil.
## Patch B applique
Commit:
- `e66bc6d45 feat(vwb): execute wait for state`
Changements:
- ajout service `visual_workflow_builder/backend/services/wait_for_state.py`;
- ajout action `VWBWaitForStateAction`;
- branchement dans catalogue VWB et API v3;
- contrat strict `wait_for_state` avec `expected_state`;
- execution supportee sur preuve `window_or_process` uniquement;
- retrait des options UI non supportees `uia`, `ocr`, `screenshot_diff` du panneau/protocole catalogue;
- tests unitaires succes/timeout.
Contrat runtime actuel:
- `expected_state.window_title_in`: titre exact accepte;
- `expected_state.window_title_contains`: titre contenant un fragment;
- `expected_state.process_active`: process/app actif, avec normalisation `.exe`;
- succes si tous les criteres fournis matchent;
- timeout si l'etat attendu n'est pas observe.
## Validations
Passe:
- `python3 -m pytest tests/unit/test_vwb_wait_for_state.py tests/unit/test_competence_catalog_loader.py -q`
- `npm run build` dans `visual_workflow_builder/frontend_v4`
- `python3 -m py_compile` sur les modules backend touches.
Smoke live apres redemarrage VWB:
- frontend `http://localhost:3002` -> HTTP 200;
- backend `http://localhost:5002/api/vwb/catalog/actions` -> HTTP 200;
- `wait_for_state` present dans le catalogue;
- options `evidence_required`: `["window_or_process"]`;
- POST `/api/vwb/catalog/execute` avec un etat impossible retourne `status=failed`, `matched=False`.
Serveurs VWB actifs:
- backend PID `2720831`;
- frontend PID `2720844`.
## Hors scope restant
Non fait:
- adaptateur YAML -> workflow VWB;
- verdict humain;
- write-back YAML;
- separation dashboard reflexes natifs / competences apprises;
- support UIA/OCR/screenshot_diff pour `wait_for_state`.
Suite proposee:
Patch C = mapping YAML -> VWB sur `key_win_r_wait_explorer_exe`, puis replay supervise avec verdict humain.