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
Put subcommand first, then positionals, then flags:
236
238
agent-device open com.example.app --session checkout --platform android --relaunch
237
239
agent-device record start ./checkout.mp4 --session checkout
238
-
Unknown current ref placeholder: @ref. Use provided labels/ids/selectors when known. Never invent @e#.
239
-
After snapshot -i, use @ref in plans when the exact @e number is unknown.
240
-
If a task explicitly says to act by @ref, output press @ref or click @ref after refreshing refs.
240
+
Snapshot refs look like @e12. After snapshot -i, use the exact @eN ref from that output.
241
+
If the exact ref is not known yet, first output snapshot -i, then use a concrete example shape like press @e12 in the next command; do not write @<ref>, @ref, @Label_Name, or @eN placeholders.
241
242
Close means agent-device close. App-owned back means back; system back means back --system.
242
243
Taps are press or click. Gestures are direct commands: swipe, longpress, pinch.
If app id is unknown, plan devices, apps, then open <discovered-app-id>. Install arguments are app/package id then artifact path. Fresh install state: open with --relaunch.
253
+
agent-device open com.example.app --platform android --relaunch
254
+
If app id is unknown, plan devices, apps, then open <discovered-app-id>. Install arguments are app/package id then artifact path. After install, install-from-source, or reinstall, open the installed id with --relaunch for fresh runtime state.
253
255
Do not open artifact paths or invent package ids. If apps lookup misses the target and no URL/artifact is provided, ask or stop.
254
256
255
257
Snapshots and refs:
256
258
snapshot reads visible state. snapshot -i gets current interactive refs.
259
+
Snapshot legend:
260
+
@e12 [button] label="Add to cart" id="add-cart" enabled hittable -> press @e12 or press 'id="add-cart"'.
261
+
@e13 [textinput] label="Notes" preview="Leave at side..." truncated -> snapshot -s @e13 before reading.
262
+
[off-screen below] 4 items: "Privacy", "About" -> scroll down, then snapshot -i; those are hints, not refs.
257
263
Re-snapshot after navigation, submit, modal/list/reload/dynamic changes.
258
264
Off-screen summaries are scroll hints; use scroll, not swipe, then snapshot -i.
265
+
Missing target in a long list: use a short manual scroll + snapshot loop with a max attempt count; do not rely on unbounded scrollintoview.
259
266
Truncated text/input previews: do not use get text first; expand with snapshot -s @ref (for example snapshot -s @e7), then read the scoped output.
267
+
Rare iOS accessibility gaps: if a row ref is shown disabled/hittable:false and press @ref reports success but no UI change, or a horizontal tab/filter bar is collapsed into one composite/seekbar with no child refs, run agent-device snapshot -i -c --json to read rects, compute the target center, press x y, then diff snapshot -i. Coordinates are fallback-only; document why you used them.
260
268
261
269
Selectors:
262
270
Use selectors as positional targets: id="field-email" or label="Allow".
@@ -273,20 +281,24 @@ Text entry:
273
281
agent-device press 'id="product-note"'
274
282
agent-device type "Handle with care" --delay-ms 80
275
283
Debounced field with no result selector: agent-device wait 1000. Keyboard read-only: keyboard status/get. Blocked control: keyboard dismiss.
284
+
Search-as-you-type fields on iOS can drop characters when driven too fast; use --delay-ms on fill/type before trying clipboard paste.
276
285
277
286
Read-only and waits:
278
287
Read-only visible/state question: use snapshot/get/is/find.
- remote config, macOS menu bar surfaces, replay update, and batch during recording
43
+
- remote config, macOS menu bar surfaces, replay update, and batch schema/recording
44
44
45
45
`assertAgentDeviceEvidence` is intentionally soft when a runner does not expose skill-detection telemetry. When telemetry exists, the suite asserts that `agent-device` was loaded; when it is absent, the cases still judge command-planning output instead of failing on missing runner metadata.
'The current @ref is unknown until a fresh interactive snapshot is captured',
423
+
'The target control has no stable selector in the task context',
424
+
'Fresh interactive snapshot will expose the target as @e12',
424
425
],
425
-
task: 'Plan the commands to capture fresh interactive refs, press the Lab online control by @ref, then verify the nearby change with diff snapshot -i.',
426
+
task: 'Plan the commands to capture fresh interactive refs, press the target control with its @e12 ref, then verify the nearby change with diff snapshot -i.',
'Horizontal filter tabs are collapsed into one [seekbar] in snapshot -i',
532
+
'The individual Bakery tab has no @ref or selector on iOS',
533
+
'Compact raw JSON plus visual inspection gives Bakery center x=84 y=220',
534
+
],
535
+
task: 'Plan commands to handle the missing child refs by inspecting raw compact rects, tapping the Bakery center, and verifying the selected filter changed.',
0 commit comments