chore: instrumentation [REPLAY] pour diagnostic chaîne replay
Ajoute 6 points de log structurés homogénéisés avec le préfixe [REPLAY]
aux endroits clés de la chaîne de replay, pour permettre de suivre
précisément ce qui se passe pendant un test humain et diagnostiquer
les points de rupture sans déduire à l'aveugle.
Points de log :
1. DISPATCH — /replay/next envoie une action (expected_before/after,
resolve_order, has_uia, has_anchor, by_text, strict)
2. RESOLVE_ENTRY — _resolve_target_sync reçoit la demande (window_title,
uia_target, anchor, strict_mode)
3. RESOLVE_EXIT — résolution terminée (method, coords, score, from_memory)
4. RESOLVE_EXCEPTION — crash rare dans la résolution
5. REPORT — /replay/result reçoit le rapport agent (success, error,
warning, resolution_method, actual_position)
6. VERIFY — décision finale post-vérification (agent_success,
ver_verified, sem_verified, final_success)
Usage : journalctl --user -u rpa-streaming -f | grep REPLAY
Aucune modif de logique, uniquement des logger.info() aux points de
décision critiques. 56 tests E2E + Phase0 restent verts.
Ces logs sont là pour stabiliser la chaîne après les modifications
robustesse du matin (strict control, UIA strict, filtre UIA-aware)
qui ont cassé les replays réels de Dom et ne se voient pas dans les
tests automatisés in silico.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1558,6 +1558,21 @@ def _resolve_target_sync(
|
||||
"""
|
||||
anchor_image_b64 = target_spec.get("anchor_image_base64", "")
|
||||
|
||||
# [REPLAY] log structuré d'entrée résolution
|
||||
_window_title_log = target_spec.get("window_title", "") or ""
|
||||
_resolve_order_log = target_spec.get("resolve_order") or []
|
||||
_uia_target_log = target_spec.get("uia_target") or {}
|
||||
_by_text_log = target_spec.get("by_text", "")
|
||||
_vlm_desc_log = target_spec.get("vlm_description", "")
|
||||
logger.info(
|
||||
f"[REPLAY] RESOLVE_ENTRY window='{_window_title_log}' "
|
||||
f"resolve_order={_resolve_order_log} "
|
||||
f"has_uia={bool(_uia_target_log)} uia_name='{_uia_target_log.get('name','')[:40]}' "
|
||||
f"has_anchor={bool(anchor_image_b64)} "
|
||||
f"by_text='{_by_text_log[:40]}' vlm_desc='{_vlm_desc_log[:40]}' "
|
||||
f"strict_mode={strict_mode} screen={screen_width}x{screen_height}"
|
||||
)
|
||||
|
||||
# ===================================================================
|
||||
# PHASE 1 APPRENTISSAGE : Lookup mémoire persistante (Fiche #18)
|
||||
# ===================================================================
|
||||
|
||||
Reference in New Issue
Block a user