feat: VWB — aide outil (?), croix suppression, plein écran, zones détection

- Bouton ? sur chaque nœud : tooltip avec description + paramètres typés
- Croix rouge visible (fix overflow React Flow)
- Sélection plein écran avec détection auto des éléments UI
- Zones détectées affichées sur l'aperçu de capture
- 32 actions documentées en français avec paramètres typés
- Pruning candidats VLM : max 80 avant classification (3x plus rapide)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Dom
2026-03-17 08:13:46 +01:00
parent fb648e730f
commit 1e18194e31
5 changed files with 466 additions and 67 deletions

View File

@@ -213,7 +213,18 @@ class UIDetector:
regions.extend(opencv_regions)
logger.debug(f"Total: {len(regions)} candidate regions")
# Limiter les candidats AVANT classification VLM pour éviter
# des centaines d'appels VLM inutiles (~2-3s chacun).
# On garde max 80 candidats — suffisant pour obtenir ~50 éléments
# après filtrage par confiance, tout en gardant un temps raisonnable.
max_candidates = 80
if len(regions) > max_candidates:
# Trier par confiance décroissante, puis par surface décroissante
regions.sort(key=lambda r: (r.confidence, r.w * r.h), reverse=True)
logger.info(f"Pruning {len(regions)} candidates → {max_candidates} (pre-VLM cap)")
regions = regions[:max_candidates]
# Étape 2: Classifier chaque région avec le VLM
logger.debug("Step 2: Classifying regions with VLM...")
ui_elements = []