- Breaking: removed deprecated gesture duration and rotate velocity inputs (#1218).
swipe x1 y1 x2 y2no longer accepts a trailingdurationMspositional; usegesture pan x1 y1 (x2-x1) (y2-y1) durationMsfor deliberate timed drags.- Maestro
swipeoperations with a duration continue to normalize togesture panwith theendpoint-holdexecution profile, preserving the Maestro-compatible fast-swipe-then-hold behavior on iOS. gesture fling direction x yno longer accepts a trailingdurationMspositional; usegesture panfor timed movement.gesture swipe presetno longer accepts a trailingdurationMspositional; usegesture panfor timed movement.gesture rotate degrees [x] [y]no longer accepts a trailingvelocitypositional; rotation pacing is derived fromdegrees.- MCP/Node schemas no longer advertise
velocityordurationMsonswipe/fling/gesture swipe;durationMsremains ongesture panandgesture transform.
- Breaking: the deprecated
rotateCLI command alias has been removed. Useorientationinstead; invokingrotatenow fails withrotate was renamed to orientation; for the two-finger gesture use: gesture rotate. - Breaking (ADR 0014, session ref-frame lifetime): a mutation through an
@refnow expires the session's ref frame, so a later ref mutation without a fresh observation fails closed with a typeddetails.reason(ref_frame_expired,ref_generation_mismatch,plain_ref_requires_complete_frame, orref_not_issued) instead of acting on a possibly-navigated screen. A ref-oriented sequence that performs several mutations must re-snapshotbetween them, consume an honestly issued--settleref in pinned@eN~s<gen>form, or use selectors. Enforcement applies on every platform, not just iOS. Legacy hand-written.adscripts that reuse several bare refs from one snapshot must capture between mutations or use selectors. - Ref reads resolve against the authorized ref frame's source tree, so an internal read-only capture (including Android freshness) can no longer retarget an admitted
@refby positional coincidence. Read-only ref consumers keep the structured staleness warning while the frame retains the ref's evidence.
- Breaking:
appsdiscovery and public app-list helpers now default to user-installed apps. Use--allorfilter: 'all'to include system/OEM apps. - Breaking: removed the
agent-device/android-appspublic subpath. Use the Android app helpers fromagent-device/android-adb. - Breaking: removed the
agent-device/daemonpublic subpath. Useagent-device/contractsfor daemon request/response types. - Breaking: removed public local ADB bypass/selection helpers such as
spawnAndroidAdbBySerialandresolveAndroidAdbProvider; usecreateLocalAndroidAdbProvider(device)or pass providers directly to the helpers fromagent-device/android-adb. - Added Android ADB provider helpers for exec, stream, clipboard, keyboard, app lifecycle, logcat, and port reverse workflows.