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
Copy file name to clipboardExpand all lines: AGENTS.md
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -103,6 +103,7 @@ Command-only flags (like `find --first`) that don't flow to the platform layer o
103
103
## Hard Rules
104
104
- Use `runCmd`/`runCmdSync` from `src/utils/exec.ts` for process execution.
105
105
- Use daemon session flow for interactions (`open` before interactions, `close` after).
106
+
- Use `keyboard dismiss` for iOS keyboard dismissal; it may tap safe native controls such as `Done` but must not fall back to system back navigation.
106
107
- Do not remove shared snapshot/session model behavior without full migration.
107
108
- Command/device support must come from `src/core/capabilities.ts`.
108
109
- Apple-family target changes must keep `src/utils/device.ts`, `src/core/capabilities.ts`, `src/core/dispatch-resolve.ts`, `src/platforms/ios/devices.ts`, and `src/platforms/ios/runner-xctestrun.ts` in sync.
Keep refs current, prefer selectors/refs over coordinates, use `fill` to replace text, and use `back` for app-owned navigation. Let `help workflow` provide the exact command shapes.
34
+
Keep refs current, prefer selectors/refs over coordinates, use `fill` to replace text, and use `back` for app-owned navigation. On iOS, use `keyboard dismiss` before manually pressing visible keyboard controls such as `Done`; fall back only if the command reports unsupported. Let `help workflow` provide the exact command shapes.
Copy file name to clipboardExpand all lines: src/utils/command-schema.ts
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -283,7 +283,7 @@ Text entry:
283
283
agent-device fill 'id="field-email"' "qa@example.com"
284
284
agent-device press 'id="product-note"'
285
285
agent-device type "Handle with care" --delay-ms 80
286
-
Debounced field with no result selector: agent-device wait 1000. Keyboard read-only: keyboard status/get. Blocked control: keyboard dismiss.
286
+
Debounced field with no result selector: agent-device wait 1000. Keyboard read-only: keyboard status/get. Blocked control: keyboard dismiss. On iOS, prefer keyboard dismiss before manually pressing visible Done; the runner can use safe native keyboard controls and still reports unsupported layouts explicitly.
287
287
Search-as-you-type fields on iOS can drop characters when driven too fast; use --delay-ms on fill/type before trying clipboard paste.
288
288
iOS Allow Paste prompt cannot be exercised under XCUITest. To test paste-driven app behavior, prefill first with agent-device clipboard write "some text"; test the system prompt manually.
289
289
Android non-ASCII can fail on some system images. Try fill/type normally; agent-device uses safer fallbacks. If the shell reports unsupported non-ASCII input, configure a trusted ADB keyboard IME outside the command plan and restore the previous IME afterward.
Copy file name to clipboardExpand all lines: website/docs/docs/commands.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -534,7 +534,7 @@ agent-device keyboard dismiss
534
534
```
535
535
536
536
-`keyboard status` (or `keyboard get`) returns keyboard visibility and best-effort input type classification on Android.
537
-
-`keyboard dismiss` attempts a non-navigation keyboard dismissal on Android and a native dismiss gesture/control on iOS, then confirms the keyboard is hidden.
537
+
-`keyboard dismiss` attempts a non-navigation keyboard dismissal on Android and a native dismiss gesture/control on iOS, including common safe controls such as a keyboard toolbar `Done` button, then confirms the keyboard is hidden.
538
538
- If the keyboard remains visible after the platform-native dismiss path, the command returns an explicit `UNSUPPORTED_OPERATION` error instead of falling back to back navigation.
539
539
- Works with active sessions and explicit selectors (`--platform`, `--device`, `--udid`, `--serial`).
540
540
-`keyboard status|get` is supported on Android emulator/device.
Copy file name to clipboardExpand all lines: website/docs/docs/introduction.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -36,7 +36,7 @@ For agent-oriented operating guidance, start with `agent-device help` or `agent-
36
36
- Physical-device recording defaults to 15 FPS and supports `--fps` caps.
37
37
-`record start --quality <5-10>` scales recording resolution from 50% through native resolution; omitting it keeps native/current resolution.
38
38
- Android supports the same core interaction set, plus `rotate`, `push` notification simulation, `clipboard read/write`, and `keyboard status|get|dismiss`.
39
-
- iOS supports `keyboard dismiss` through the XCTest runner when the on-screen keyboard is visible.
39
+
- iOS supports `keyboard dismiss` through the XCTest runner when the on-screen keyboard is visible, including common native controls such as keyboard toolbar `Done`.
40
40
- App-event triggers are available on iOS and Android through app-defined deep-link hooks (`trigger-app-event`), using active session context or explicit device selectors.
0 commit comments