Skip to content

v2.9.0

Choose a tag to compare

@igorzheludkov igorzheludkov released this 16 Aug 16:38
· 96 commits to main since this release

Unified text entry

ios_input_text and android_input_text are gone — both were only ever "type into whatever the OS reports as focused", which is a mode of text entry, not a separate capability, and agents had to know the platform to pick one.

input_text now covers that path itself:

  • native:true forces it — system dialogs, native onboarding, non-RN apps
  • it is applied automatically when no fiber tree is reachable at all, so an untargeted call on a non-RN screen just works
  • targeted calls (testID/component/textMatch) never fall back: a caller who named a field meant that field, and native mode cannot honour that

Fixes

  • Fiber walks no longer report a mounted app as unmounted. A walk evaluated between a navigation and React's next commit found no roots and said so, while the same call a second later worked fine. Retried once, absorbed in one place rather than in each of the eight walkers.
  • tap stops letting OCR answer for a screen that isn't painted yet. Zero pressables and zero accessibility elements means the screen is not there. OCR cannot tell a half-painted screen from a settled one and returns a confident closest match — which is how a tap right after a reload hit the wrong thing and then succeeded unchanged on retry.
  • get_screen_state excludes the LogBox banner, and says so. RN mounts LogBox above the app, so while a banner was up its own buttons were the only pressables returned on a screen full of real ones. The note is raised only when the banner actually contributed elements.
  • get_refresh_status records from the session's first evaluation, not from the first time it is called — it could previously only ever answer updateCount: 0 · recorder just installed.
  • get_logs({summary:true, level:"error"}) honours the level. It was dropped, so the summary sampled the same info spam as an unfiltered call.
  • search_network distinguishes "the pattern didn't match" from "nothing was captured" and only diagnoses the second.