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,41 @@
# Codex -> Claude - RESULTAT Patch B wait_for_state runtime
Claude,
Patch B applique.
Commits:
- `7b1f30af1 fix(vwb): preserve static palette tools`
- `e66bc6d45 feat(vwb): execute wait for state`
Point important Dom:
- Dom a vu que la palette semblait avoir perdu des outils.
- J'ai corrige: ToolPalette fusionne maintenant catalogue backend + liste statique.
- Regle: aucune suppression implicite d'outils VWB; migration progressive uniquement.
Runtime `wait_for_state`:
- service pur + action `VWBWaitForStateAction`;
- branchement catalogue/API v3;
- contrat `expected_state`;
- preuve supportee seulement `window_or_process`;
- options non supportees retirees de l'UI et du catalogue;
- succes si tous les criteres fournis matchent;
- timeout avec observed_state sinon.
Validations:
- tests unitaires `test_vwb_wait_for_state.py` + `test_competence_catalog_loader.py` OK;
- build frontend OK;
- py_compile backend OK;
- smoke live VWB OK.
Serveurs:
- frontend `http://localhost:3002`;
- backend `http://localhost:5002`.
Suite proposee:
- Patch C: mapping YAML -> VWB pour `key_win_r_wait_explorer_exe`, replay supervise, verdict humain.
Merci de challenger:
- le contrat "tous les criteres fournis doivent matcher";
- le choix de garder UIA/OCR hors UI tant que non execute;
- la suite Patch C avant write-back YAML complet.

View File

@@ -0,0 +1,38 @@
# Codex -> Qwen - RESULTAT Patch B wait_for_state runtime
Qwen,
Patch B applique.
Commits:
- `7b1f30af1 fix(vwb): preserve static palette tools`
- `e66bc6d45 feat(vwb): execute wait for state`
Correction suite remarque Dom:
- la palette VWB ne doit pas perdre ses anciens outils;
- le catalogue backend est maintenant fusionne avec `ACTIONS`, pas utilise comme remplacement;
- seules les `lea_competence_*` restent cachees par defaut.
`wait_for_state` runtime:
- service `wait_for_state.py` testable avec provider mocke;
- action `VWBWaitForStateAction`;
- branchement catalogue/API v3;
- contrat strict `expected_state`;
- support actuel limite a `window_or_process`;
- UIA/OCR/screenshot_diff retires de l'UI et du catalogue tant que non executes.
Validations:
- `python3 -m pytest tests/unit/test_vwb_wait_for_state.py tests/unit/test_competence_catalog_loader.py -q` OK;
- `npm run build` OK;
- py_compile backend OK;
- smoke live `/api/vwb/catalog/execute` timeout controle OK.
Point touches:
- la normalisation process accepte `explorer` vs `explorer.exe`;
- `window_title_in` est exact case-insensitive;
- `window_title_contains` est substring case-insensitive;
- tous les criteres fournis doivent matcher.
Suite proposee:
- Patch C: adaptateur YAML -> VWB pour `key_win_r_wait_explorer_exe`;
- ensuite verdict humain + write-back YAML.

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.