78 Commits

Author SHA1 Message Date
Michał Pierzchała d0525cd3f1 0.3.1 v0.3.1 2026-02-12 13:52:58 +01:00
Michał Pierzchała 204184ac1e Improve boot readiness retries and normalized diagnostics (#41)
* Add boot diagnostics classification and deadline-based boot retries

* Fix TypeScript narrowing in boot diagnostics error paths

* update docs and cleanup

* Stabilize iOS integration assertion for Settings General page
2026-02-12 13:51:54 +01:00
Michał Pierzchała 835b59f9f6 Improve integration failure diagnostics (#40) 2026-02-12 09:53:02 +01:00
Michał Pierzchała 613974ab71 Handle iOS system blocker alerts in snapshots (#38) 2026-02-11 19:05:19 +01:00
Zhongjin Lu 31a639ab5f feat: add version flags and unify version lookup (#44)
Co-authored-by: Zhongjin Lu <zhongjin.lu@mondorobotics.com>
2026-02-11 17:02:47 +01:00
Michał Pierzchała 6a064f229d fix: update IPHONEOS_DEPLOYMENT_TARGET to 15.6 (#42) 2026-02-11 10:07:58 +01:00
Michał Pierzchała a48d840f6c 0.3.0 v0.3.0 2026-02-10 16:32:05 +01:00
Zhongjin Lu f56dda6c9e fix(android): parse uiautomator XML attributes with single or double quotes (#37)
* fix(android): parse uiautomator XML attributes with single or double quotes

* fix(android): harden hierarchy parser and tighten tests

---------

Co-authored-by: Zhongjin Lu <zhongjin.lu@mondorobotics.com>
Co-authored-by: Michał Pierzchała <thymikee@gmail.com>
2026-02-10 16:27:43 +01:00
Michał Pierzchała 8c50cee10d chore: use macos-26 runner for ios integration test; ubuntu for smoke (#34)
* chore: use macos-26 runner for ios integration test; ubuntu for smoke

* revert smoke test

* update test for iOS 26.2

* restart sim after timeout

* fixup timeout
2026-02-10 10:41:08 +01:00
Michał Pierzchała bb23711d10 docs: simplify and reconcile AGENTS guide (#35) 2026-02-09 21:20:59 +01:00
Michał Pierzchała 8e88eb552a fix: android race condition for snapshot dump (#33)
* fix: android race condition for snapshot dump

* ci

* split workflows

* udpate names
2026-02-09 20:54:13 +01:00
Michał Pierzchała db339c9596 fix: harden startup/teardown behavior on iOS (#32) 2026-02-09 19:51:28 +01:00
Michał Pierzchała 4aed3fba72 fix: support TouchableOpacity as [other] on iOS when has content (#31)
* fix: support TouchableOpacity as [other] on iOS when has content

* update snapshot ios
2026-02-09 19:07:04 +01:00
Michał Pierzchała c470137671 0.2.6 v0.2.6 2026-02-09 13:29:17 +01:00
Michał Pierzchała 2e8680518d fix: iOS snapshot not showing password fields (#29) 2026-02-09 13:29:05 +01:00
Michał Pierzchała ab41eb1566 0.2.5 v0.2.5 2026-02-09 12:39:40 +01:00
Michał Pierzchała 828284d7e3 fix: set min iOS deployment target to 15.6 (#27)
* fix: set min iOS deployment target to 15.6

* increase timeout for iOS
2026-02-09 12:39:02 +01:00
Michał Pierzchała d2954f6fd3 fix: missing long-press on iOS simulator (#26)
* feat:  for self-healing e2e tests;  assertions

* fix: support long-press on iOS simulators via XCTest runner

The long-press command was failing on iOS simulators because dispatch.ts
called interactor.longPress() which mapped to a stub in ios/index.ts
that always threw UNSUPPORTED_OPERATION. Unlike press, type, fill, etc.,
the long-press case was missing the iOS simulator routing through the
XCTest runner.

Rather than adding yet another platform branch in dispatch.ts, this
refactors the Interactor abstraction to absorb runner routing internally.
getInteractor() now accepts an optional RunnerContext; when the device is
an iOS simulator, it returns an interactor whose tap/longPress/focus/
type/fill/scroll/scrollIntoView methods route through
runIosRunnerCommand. This removes 7 scattered if-ios-simulator branches
from dispatch.ts, making it impossible to forget runner routing for
future commands.

Changes:
- Swift runner: add longPress command type + longPressAt helper using
  XCUICoordinate.press(forDuration:)
- runner-client.ts: add longPress to RunnerCommand type + durationMs field
- interactors.ts: add RunnerContext type, createIosSimulatorInteractor()
  that routes through the XCTest runner, move invertScrollDirection here
- dispatch.ts: pass RunnerContext to getInteractor, remove all iOS sim
  branching for interactor commands (-90 lines)

Co-authored-by: Cursor <cursoragent@cursor.com>

* restore attempts

* refactor: unify iOS interactor, remove dead input stubs

Since runnerContext is always passed and the capability matrix ensures
iOS only runs on simulators in v1, the two iOS interactor code paths
collapse into one: shared methods (open, close, screenshot) plus runner
overrides spread on top. No branch needed.

This deletes 7 dead iOS input stubs from ios/index.ts (pressIos,
longPressIos, focusIos, typeIos, fillIos, scrollIos, scrollIntoViewIos)
that only ever threw UNSUPPORTED_OPERATION errors.

Co-authored-by: Cursor <cursoragent@cursor.com>

* cleanup

* fixup save-script

* update

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-09 12:06:26 +01:00
Michał Pierzchała 1ecbec9012 feat: replay --save-script for self-updating e2e tests; add it assertions; add DSL with selectors (#24)
* feat:  for self-healing e2e tests;  assertions

* rework ad scripts
2026-02-09 11:01:19 +01:00
Michał Pierzchała 9a3570fa1c feat: Daemon modularization + capability-gated command routing + CI/test pipeline (#20)
* feat: Daemon modularization + capability-gated command routing + CI/test pipeline updates

* update android test

* fix arch

* no serial

* fixup tests locally; update runner on CI

* increase timeout

* drop unnecessary node build
2026-02-08 15:20:59 +01:00
Anton Kuznetsov d3ac97dbcd Update README with skill installation and session info (#19)
Add usage instructions for adding skills and session commands.
2026-02-06 18:57:50 +01:00
Michał Pierzchała 60324e0269 0.2.4 v0.2.4 2026-02-06 12:48:46 +01:00
Michał Pierzchała ebf45f1e79 feat: record start [path], screenshot [path], --record-json (#18) 2026-02-06 12:44:26 +01:00
Michał Pierzchała 8f653b5a5c 0.2.3 v0.2.3 2026-02-06 12:16:37 +01:00
Michał Pierzchała d8440a6645 fix: make fill clear input and progressively fill the input (#17)
* fix: make fill clear input and progressively fill the input

* fixup ios

* improve text fill reliability
2026-02-06 12:16:20 +01:00
Michał Pierzchała 22bfcee0dc feat: normalize Android snapshots (#16) 2026-02-06 09:26:30 +01:00
Abdulrahman 8130fff678 docs: remove broken missing-features reference from SKILL.md (#14) 2026-02-05 19:37:23 +01:00
Michał Pierzchała 6d2d157888 0.2.2 v0.2.2 2026-02-05 18:09:20 +01:00
Michał Pierzchała 67fa14c70a feat: check parent when matched element is not hittable (#13)
* feat: check parent when matched element is not hittable

* note android

* clarify
2026-02-05 18:08:46 +01:00
Jano 992959c23e feat(ios): add pinch gesture for zoom on iOS simulators (#11)
- Add 'pinch' CLI command: pinch <scale> [x y] (scale > 1 zoom in, < 1 zoom out)
- Implement in dispatch, runner-client (RunnerCommand + scale param), Swift runner
- Use double-tap + drag workaround for map zoom (tap center, drag up/down)
  instead of XCUITest pinch(withScale:velocity:) which pans on map views
- Update commands.md and agent-device skill with pinch usage and best practices
- Fix skill reference: recording.md -> video-recording.md

Co-authored-by: Jano Detzel <jano.detzel@ewe-go.de>
2026-02-05 17:51:36 +01:00
Michał Pierzchała e63cf2ab33 feat: android open --activity flag (#12) 2026-02-05 17:40:26 +01:00
Michał Pierzchała e84612a393 feat: docs (#7)
* feat: docs v1

* update wording

* update action
2026-02-05 15:25:52 +01:00
Alex Astrum b03f867395 fix: skill should work, even if the npm package is not installed (#1)
Added installation instructions for agent-device.
2026-02-05 11:13:33 +01:00
Tsung-Han Yu 83e4c4db88 Update README with correct GitHub link (#2)
Co-authored-by: Michał Pierzchała <thymikee@gmail.com>
2026-02-05 11:12:54 +01:00
Michał Pierzchała a478173802 chore: v0.2.1 v0.2.1 2026-02-05 09:53:03 +01:00
Michał Pierzchała 105b61e79c fix: drop 300ms runner timeout 2026-02-05 09:49:16 +01:00
Michał Pierzchała 7517513853 update skills 2026-02-05 08:23:34 +01:00
Michał Pierzchała c4bd87fe0a chore: v0.2.0 v0.2.0 2026-02-05 08:07:52 +01:00
Michał Pierzchała d8b1800dc0 fix long-running timeouts for session app 2026-02-05 07:59:31 +01:00
Michał Pierzchała ff0740a6ae chore: v0.1.9 v0.1.9 2026-02-04 22:35:45 +01:00
Michał Pierzchała 1d6994440c perf: improve xctest backend speed dramatically and make default 2026-02-04 22:35:18 +01:00
Michał Pierzchała 4301b55bfb docs: update readme for readability 2026-02-04 18:08:01 +01:00
Michał Pierzchała 433230439d update readme 2026-02-03 21:50:39 +01:00
Michał Pierzchała e95b6b2070 chore: v0.1.8 v0.1.8 2026-02-03 21:08:11 +01:00
Michał Pierzchała 639454d95d chore: v0.1.7 2026-02-03 20:58:23 +01:00
Michał Pierzchała 732a3b17cc fix fill 2026-02-03 20:57:22 +01:00
Michał Pierzchała 931bd634ce chore: v0.1.6 2026-02-03 20:03:22 +01:00
Michał Pierzchała 460886f714 document missing device iOS support; fix missing swift 2026-02-03 20:03:15 +01:00
Michał Pierzchała 3e8d302563 chore: v0.1.5 2026-02-03 17:20:25 +01:00
Michał Pierzchała 14b4b92387 chore: publish skills 2026-02-03 17:20:10 +01:00