Dom
1b4e64960b
feat(validator): R1 MVP P0 — OcrRoiChecker + orchestrator (flag OFF default)
Package core/validation/ minimal :
- result.py : Verdict, FailureCategory, ValidationResult
- pixel_diff_checker.py : wrapper de ReplayVerifier.verify_action
- ocr_roi_checker.py : ROI 80px autour du clic, détecte WRONG_APPLICATION
via SUSPECT_TOKENS (edge/https/explorateur de fichiers/…)
- orchestrator.py : Validator dispatch action_type → checkers + agrégation
Wiring api_stream.py:3646 derrière RPA_VALIDATOR_V2_ENABLED (OFF par défaut).
Si verdict ≠ COMPLETE, override report.success=False et expose failure_category
dans result_entry. Zero régression flag OFF.
Tests :
- tests/unit/test_validator_v2.py : 13 tests (Checkers + Validator + sérialisation)
- tests/integration/test_validator_step10.py : 2 tests reproduisant le bug
replay_sess_4c38dbb8 / act_raw_6c1432b3 (clic Enregistrer fait basculer
vers Explorateur de fichiers) — Validator retourne WRONG_APPLICATION
Activation pour test live : RPA_VALIDATOR_V2_ENABLED=true
Cf. docs/recherche/SPEC_VALIDATOR_MATRICE.md, AXE_B2_DEEP_VALIDATOR.md.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-24 17:52:06 +02:00
..
2026-03-31 09:30:14 +02:00
2026-04-17 17:46:40 +02:00
2026-05-24 16:48:37 +02:00
2026-05-24 16:48:37 +02:00
2026-04-15 09:06:19 +02:00
2026-04-14 16:49:02 +02:00
2026-04-09 21:03:25 +02:00
2026-03-26 10:19:18 +01:00
2026-01-29 11:23:51 +01:00
2026-01-29 11:23:51 +01:00
2026-03-15 10:02:09 +01:00
2026-05-09 15:30:25 +02:00
2026-03-18 16:24:01 +01:00
2026-05-12 18:49:49 +02:00
2026-05-24 16:48:37 +02:00
2026-04-10 09:01:13 +02:00
2026-05-24 16:48:37 +02:00
2026-01-29 11:23:51 +01:00
2026-03-15 10:02:09 +01:00
2026-03-16 22:25:12 +01:00
2026-03-16 22:58:44 +01:00
2026-04-14 16:48:36 +02:00
2026-04-20 17:03:44 +02:00
2026-01-29 11:23:51 +01:00
2026-04-10 09:01:52 +02:00
2026-04-15 09:06:28 +02:00
2026-03-15 10:02:09 +01:00
2026-05-24 16:48:37 +02:00
2026-03-15 10:02:09 +01:00
2026-03-16 23:10:51 +01:00
2026-04-09 22:21:40 +02:00
2026-04-15 09:06:41 +02:00
2026-04-10 08:09:05 +02:00
2026-05-24 16:48:37 +02:00
2026-05-24 16:48:37 +02:00
2026-03-15 10:02:09 +01:00
2026-01-29 11:23:51 +01:00
2026-01-29 11:23:51 +01:00
2026-03-15 10:02:09 +01:00
2026-03-15 10:02:09 +01:00
2026-03-15 10:02:09 +01:00
2026-03-15 10:02:09 +01:00
2026-01-29 11:23:51 +01:00
2026-03-15 10:02:09 +01:00
2026-01-29 11:23:51 +01:00
2026-01-29 11:23:51 +01:00
2026-05-24 16:48:37 +02:00
2026-01-29 11:23:51 +01:00
2026-03-15 10:02:09 +01:00
2026-04-20 17:03:44 +02:00
2026-04-15 22:02:30 +02:00
2026-05-24 16:48:37 +02:00
2026-03-15 10:02:09 +01:00
2026-04-10 08:42:01 +02:00
2026-03-26 10:19:18 +01:00
2026-05-05 23:09:43 +02:00
2026-05-05 22:50:22 +02:00
2026-04-22 10:43:28 +02:00
2026-04-14 16:48:23 +02:00
2026-05-24 16:48:37 +02:00
2026-03-15 10:02:09 +01:00
2026-03-15 10:02:09 +01:00
2026-04-18 13:07:56 +02:00
2026-01-29 11:23:51 +01:00
2026-05-24 16:48:37 +02:00
2026-05-24 16:48:37 +02:00
2026-03-15 10:02:09 +01:00
2026-05-24 16:48:37 +02:00
2026-05-24 16:48:37 +02:00
2026-05-24 16:48:37 +02:00
2026-01-29 11:23:51 +01:00
2026-05-05 23:29:38 +02:00
2026-04-15 09:06:41 +02:00
2026-04-18 13:07:56 +02:00
2026-01-29 11:23:51 +01:00
2026-01-29 11:23:51 +01:00
2026-04-15 09:06:51 +02:00
2026-01-29 11:23:51 +01:00
2026-04-14 16:49:17 +02:00
2026-04-14 16:49:17 +02:00
2026-01-29 11:23:51 +01:00
2026-05-24 16:48:37 +02:00
2026-04-17 17:46:40 +02:00
2026-04-10 09:04:37 +02:00
2026-04-10 09:04:37 +02:00
2026-05-09 12:42:47 +02:00
2026-01-29 11:23:51 +01:00
2026-01-29 11:23:51 +01:00
2026-03-31 09:45:20 +02:00
2026-01-29 11:23:51 +01:00
2026-01-29 11:23:51 +01:00
2026-04-10 10:54:19 +02:00
2026-04-14 16:48:00 +02:00
2026-03-15 10:02:09 +01:00
2026-03-15 10:02:09 +01:00
2026-01-29 11:23:51 +01:00
2026-03-15 10:02:09 +01:00
2026-04-09 21:03:25 +02:00
2026-04-25 17:48:18 +02:00
2026-01-29 11:23:51 +01:00
2026-03-15 10:02:09 +01:00
2026-03-15 10:02:09 +01:00
2026-05-24 16:48:37 +02:00
2026-04-14 16:48:00 +02:00
2026-01-29 11:23:51 +01:00
2026-03-15 10:02:09 +01:00
2026-04-10 08:28:55 +02:00
2026-04-10 11:02:51 +02:00
2026-05-24 16:48:37 +02:00
2026-05-24 16:48:37 +02:00
2026-05-24 16:48:37 +02:00
2026-05-24 17:52:06 +02:00
2026-03-15 10:02:09 +01:00
2026-01-29 11:23:51 +01:00
2026-03-15 10:02:09 +01:00
2026-03-15 10:02:09 +01:00
2026-01-29 11:23:51 +01:00
2026-01-29 11:23:51 +01:00
2026-01-29 11:23:51 +01:00
2026-03-15 10:02:09 +01:00
2026-03-15 10:02:09 +01:00
2026-04-20 17:03:44 +02:00
2026-03-15 10:02:09 +01:00
2026-01-29 11:23:51 +01:00
2026-01-29 11:23:51 +01:00
2026-05-24 16:48:37 +02:00
2026-01-29 11:23:51 +01:00
2026-01-29 11:23:51 +01:00
2026-01-29 11:23:51 +01:00
2026-04-09 21:50:32 +02:00
2026-04-15 09:06:19 +02:00
2026-04-15 09:07:04 +02:00