fix(epoch+set_text): epoch stable au focus + repli de saisie sur champ web#6
Merged
Merged
Conversation
…p web Decouvert au test live sur Firefox (arriere-plan). A) ui_fingerprint exclut les noeuds decoratifs transitoires (caret/focus-ring/selection/text-marker, ou caret ~1px) et normalise le path apres leur retrait -> focaliser un champ ne fait plus churner l'epoch. B) set_text sur champ AX: chaine de repli type_into -> focus_window+Focus+retry -> clic+set_field_text (paste presse-papier), chaque tentative verifiee ; si tout echoue, erreur actionnable au lieu de 'actuator returned Failed' ; gate batch ajuste pour ne pas re-prompter dans un batch deja approuve. Frappe Firefox-arriere-plan reste best-effort.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Contexte
Suite du fix epoch (#5). Le test live sur Firefox (page Uber Eats en arrière-plan, cible volontairement dure) a sorti 2 issues bornées, corrigées ici.
A — epoch stable quand on focalise un champ
Après
focus_window, l'epoch re-churnait : focaliser un champ web insère un nœud caret / focus-ring transitoire dans l'arbre AX → ça changeait l'ensemble structurel hashé parui_fingerprint.Fix : le fingerprint exclut les nœuds décoratifs transitoires (rôles caret/focus-ring/selection/text-marker, ou caret ~1px) — feuilles sans action/drag/état de contrôle — et normalise le
pathaprès leur retrait (un caret inséré ne décale plus le path des vrais voisins). → focaliser un champ ne change plus l'epoch.B — saisie robuste sur champ web + diagnostic actionnable
apply_selectionsset_textsur un champ AX web Firefox en arrière-plan échouait enactuator returned Failedopaque (la frappe élément-bound n'atterrit pas hors focus).Fix — chaîne de repli sur champ AX :
type_intofocus_window+Focusélément →type_intoset_field_text(remplacement par paste presse-papier)Chaque tentative est vérifiée (valeur == texte demandé). Si tout échoue → erreur actionnable :
Sémantique fail-honest préservée (un échec reste rapporté, jamais de faux succès). Gate batch ajusté pour ne pas re-prompter dans un batch déjà approuvé.
Validation locale
cargo build✅ ·cargo clippy --workspace --all-targets -- -D warnings✅ ·cargo test✅ (250 tests).