You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
ios: fill's verified element route cannot recover from a field whose app writes its value back mid-burst #2903
The pace bound in #2878 protects only the synthesized-first-responder-replacement route, which exists only when the XCTest snapshot channel is already penalized. The verified XCUIElement route, which is what most fill calls take on a healthy simulator, is corrupted by the same app behaviour, and its repair path cannot recover from it.
Required behavior
fill onto a field whose app re-applies its own value while the burst is in flight (a controlled React Native TextInput, an async validator) either ends with the requested text or fails with a typed reason naming the collision. It must not report ok on a truncated value, and it must not spend its repair budget re-typing into a race it always loses.
verifyTextEntryWithRepairIfNeeded's replacement-mode assumption that any mismatch is repairable is either proven or replaced by a typed outcome, with the mismatch case pinned.
Evidence
Runner host app with that fixture, iPhone 16 Simulator, iOS 26.2:
element route: corrupted 10/10 (ada@example -> adxe, Ada Lovelace -> ALa).
the existing clear-and-retype repair converged 0/10: every retype raced the same write.
per-character entry with --delay-ms 80: correct 10/10, which is what identifies the burst pace, not the event stream, as the collision.
Dependencies
Blocked by: #2080 as shipped in #2878, which bounds the synthesized route only.
Activity
fix(android): name the placeholder in a fill verification failure (#2985
fix(ios): stop fill from failing and repairing fields that normalize …
fix(ios): stop fill from failing and repairing fields that normalize …
fix(ios): stop fill from failing and repairing fields that normalize …
fix(ios): observe fill once without destructive repair (#3334)