v1.8.0
First release since 1.6.16. Combines the queued 1.7.0 tap-improvements branch with the
input-handling primitives, OCR phrase reconstruction, Android coord accuracy work, and
several bug fixes from live testing against gifted.co and Boardwise.
New MCP tools
ios_input_text(text, udid?)— type text into the focused iOS field via the active UI driver (AXe/IDB). Mirrorsandroid_input_text.clear_focused_input— clear the currently focused TextInput via ReactonChangeText, keeping controlled-form state consistent. Bridgeless/Fabric only.dismiss_keyboard— blur the currently focused TextInput.
New tool options
replace: trueon bothandroid_input_textandios_input_text— clear the focused field before typing in a single round trip.
Tap engine
- iOS
labelContains/identifierContainsnow reject RN accessibilityLabel-rollup wrapper matches with an actionable suggestion (usecomponent=/ coordinates) instead of silently tapping the wrong centroid. - C1 ambiguity guards (fiber / iOS a11y / Android a11y) collapse geometrically-identical wrapper matches (e.g.
ThemedButton → TouchableOpacity → TouchableOpacityat identical coords) before refusing. screenshotandverifyare now independent knobs.verify=trueruns the diff even whenscreenshot=false; the response always carriesverification— either a real diff or{ skipped: true, skippedReason }.- OCR strategy reconstructs phrases from same-baseline word detections — recovers cases like
Continue with Googlewhen iOS Vision fragments the phrase due to a leading icon. formatTapSuccessadds a TextInput-specificwarningwhenmeaningful=falsefor a focused input, pointing at the hardware-keyboard suppression case.
Screenshot enrichment
- iOS screenshots detect native system overlays (auth sheets, permission dialogs, MSAL sign-in) and append a warning pointing the agent at
tap(x, y, native=true). RN accessibility rollups are guarded out as false positives. - Android pressables list coords are reconciled against
uiautomatorso coord taps land on the actual element. Dynamic status-bar offset applied to icon-only fallbacks. Previously inflated coords (out of viewport on high-density emulators) are fixed.
Bug fixes
getPressableElementsE1 fallback fires per-device, not on globalconnectedAppsemptiness — a stale connection to an unrelated app no longer suppresses the a11y fallback.fix(focused-input): matchAndroidTextInputhost fiber correctly forclear_focused_input/dismiss_keyboard.fix(input-text-replace): threaddeviceparameter through to the underlying clear call so multi-device sessions disambiguate correctly.