diff --git a/docs/coordination/inbox_claude/2026-05-29_1725_codex-to-claude_RESULTAT-patchB-wait-for-state-runtime.md b/docs/coordination/inbox_claude/2026-05-29_1725_codex-to-claude_RESULTAT-patchB-wait-for-state-runtime.md new file mode 100644 index 000000000..70071c8e8 --- /dev/null +++ b/docs/coordination/inbox_claude/2026-05-29_1725_codex-to-claude_RESULTAT-patchB-wait-for-state-runtime.md @@ -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. diff --git a/docs/coordination/inbox_qwen/2026-05-29_1725_codex-to-qwen_RESULTAT-patchB-wait-for-state-runtime.md b/docs/coordination/inbox_qwen/2026-05-29_1725_codex-to-qwen_RESULTAT-patchB-wait-for-state-runtime.md new file mode 100644 index 000000000..c8fc802f4 --- /dev/null +++ b/docs/coordination/inbox_qwen/2026-05-29_1725_codex-to-qwen_RESULTAT-patchB-wait-for-state-runtime.md @@ -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. diff --git a/docs/coordination/syntheses/2026-05-29_1725_codex_RESULTAT-patchB-wait-for-state-runtime.md b/docs/coordination/syntheses/2026-05-29_1725_codex_RESULTAT-patchB-wait-for-state-runtime.md new file mode 100644 index 000000000..958a9a9eb --- /dev/null +++ b/docs/coordination/syntheses/2026-05-29_1725_codex_RESULTAT-patchB-wait-for-state-runtime.md @@ -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.