123 Commits

Author SHA1 Message Date
Michał Pierzchała 089cf96fd8 0.5.5 v0.5.5 2026-02-18 20:51:15 +01:00
Michał Pierzchała a46d3d6e1e fix: resolve replay script paths from caller cwd (#77) 2026-02-18 20:50:34 +01:00
Michał Pierzchała 254b6203ef 0.5.4 v0.5.4 2026-02-18 20:25:15 +01:00
Michał Pierzchała 4e1c76e45d fix: honor replay device selectors and validate session device mismatch (#76) 2026-02-18 20:24:56 +01:00
Michał Pierzchała 74e375344f 0.5.3 v0.5.3 2026-02-18 19:47:44 +01:00
Michał Pierzchała 56aac2a549 chore: prepack with build:all 2026-02-18 19:47:37 +01:00
Michał Pierzchała feeee5e414 feat: add unified node diagnostics and error normalization (#73)
* feat: add unified node diagnostics and error normalization

* chore: clarify diagnostics session scope and retry logging docs

* chore: simplify and de-stale AGENTS guidance

* chore: add diagnostics context for settings actions
2026-02-18 19:40:45 +01:00
Michał Pierzchała 0418b0cb7c feat: add Face ID simulator controls to settings command (#75)
* feat: add iOS simulator Face ID settings command support

* fix: remove faceid aliases and standardize docs
2026-02-18 19:34:10 +01:00
Michał Pierzchała 4c83f5a445 0.5.2 v0.5.2 2026-02-18 16:14:03 +01:00
Michał Pierzchała fc10613ecd fix: harden iOS runner command execution (#72)
* fix: harden iOS runner command execution

* fix: tighten iOS runner error semantics

* fix: harden runner interactions after snapshot
2026-02-18 16:13:18 +01:00
Michał Pierzchała 99cc68463c fix: align press/click behavior and honor fast press cadence on iOS (#70)
* fix: align press and click semantics and reduce iOS tap latency

* perf: batch repeated iOS taps in runner

* perf: add opt-in tap batching for repeated iOS presses

* perf: batch repeated iOS swipes in runner

* fix: preserve interaction series semantics in record/replay

* test: cover click/press interaction handler paths

* refactor: dedupe replay and interaction series helpers

* fix: unify press/click double-tap behavior

* refactor: add interactor doubleTap and alias docs

* refactor: normalize click alias to press path
2026-02-18 16:02:45 +01:00
Michał Pierzchała 040b5185e8 docs: document XCUITest pasteboard prompt suppression (#71)
Add Known Limitations page to the website and a brief note in the
skills permissions reference covering the iOS "Allow Paste" dialog
being suppressed under XCUITest automation.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-18 14:38:16 +01:00
Michał Pierzchała e6da093404 0.5.1 v0.5.1 2026-02-18 11:45:41 +01:00
Michał Pierzchała 94477dd998 feat: add daemon-native JSON batch execution (#69)
* feat: add daemon-native JSON batch command for agent workflows

* docs: add agent batching guides across readme website and skills

* chore: remove batch stdin source and related docs

* fix: harden batch step normalization and flag sanitization

* refactor: simplify batch execution and validation reuse

* docs: rename batching guidance and links
2026-02-18 11:45:19 +01:00
Michał Pierzchała c1c50af598 fix: support reinstall on physical iOS devices (#67)
* fix: support reinstall on physical iOS devices

* fix: add devicectl timeout for iOS uninstall

* chore: simplify iOS reinstall error handling and tests
2026-02-18 10:58:49 +01:00
Michał Pierzchała bceda350fe 0.5.0 v0.5.0 2026-02-17 12:13:01 +01:00
Michał Pierzchała 2237c78440 chore: use esnext when bundling 2026-02-17 12:07:23 +01:00
Michał Pierzchała a016c35d61 chore: add cleaning daemon.lock to build:node script 2026-02-17 12:03:36 +01:00
Michał Pierzchała 106a5f661d chore(breaking): remove AX snapshot backend and trim npm artifacts (#62)
* chore: remove AX snapshot backend and trim npm artifacts

* docs: remove AX backend references from commands page

* chore: update website
2026-02-17 12:00:21 +01:00
Michał Pierzchała 29be3836e3 0.4.2 v0.4.2 2026-02-16 20:35:21 +01:00
Michał Pierzchała 2f64e845b0 feat: iOS device deep link support and web links (#66)
* feat: add iOS device URL session fallback behavior

* chore: trim PR branch naming note

* docs: remove simulator/device support phrasing

* feat: unify iOS deep link behavior across simulator and device

* feat: support iOS open <app> <url> flow

* fix: validate iOS open app+url argument shape

* docs: remove redundant iOS deep-link note
2026-02-16 20:35:00 +01:00
Michał Pierzchała ac078905c6 refactor: stabilize iOS app/session and daemon startup flows (#64)
* refactor: stabilize iOS app/session and daemon startup flows

* fix: wait for android app launch completion

* fix: address review findings for iOS appstate and daemon flows

* fixups
2026-02-16 18:19:17 +01:00
Michał Pierzchała 17940c188f 0.4.1 v0.4.1 2026-02-16 12:17:15 +01:00
Michał Pierzchała 3314d0355e feat: allow optional --save-script output path (#63) 2026-02-16 11:43:36 +01:00
Michał Pierzchała 586716d060 fix: stop daemon/runner lifecycle leaks on iOS (#60)
* fix: enforce daemon and iOS runner lifecycle ownership

* fix: address lifecycle review findings

* chore: harden daemon identity matching and tests
2026-02-16 11:30:46 +01:00
Michał Pierzchała 5709f8d3dd fix: support command-specific help output (#59)
* fix: add command-specific CLI help routing

* fix: omit empty command flag section in help
2026-02-16 11:13:38 +01:00
Michał Pierzchała 31117d7414 0.4.0 v0.4.0 2026-02-16 10:09:00 +01:00
Michał Pierzchała 06a8778157 Enable iOS device core parity and align docs/skills (#55)
* Add iOS device runner support and document platform matrix

* ios: make signing identity override-only

* ios: address PR55 review follow-ups

* docs: remove v1 phrasing from support messages

* ios appstate: prefer xctest before ax fallback

* docs: clarify ios runner derived path override behavior

* ios: harden runner polling and appstate fallback

* ios: remove automatic AX fallback paths

* docs: clarify no automatic AX fallback

* ios: replace ad-hoc runner poll sleep with retry policy

* Harden iOS runner timeouts and cleanup safety

* args: align scrollintoview schema with capabilities

* test: skip iOS integration flows on CI by default
2026-02-15 21:12:10 +01:00
Michał Pierzchała 4e918408ae fix: harden android settings integration test (#58) 2026-02-15 10:42:41 +01:00
Michał Pierzchała 57062c8664 Refactor CLI command schema and strict flag validation (#57)
* Refactor CLI command schema and strict flag validation

* Tighten parser positional handling and ref flag validation

* Fix strict no-command flags and negative positional parsing

* simplify command schema internals and ref flag guards
2026-02-14 14:40:30 +01:00
Michał Pierzchała 64d27c18d0 Add consolidated gesture controls for press and swipe (#54)
* Add gesture series controls for press and swipe

* Normalize iOS swipe timing to safe duration

* Harden daemon startup for integration runs
2026-02-14 13:55:58 +01:00
Michał Pierzchała f1eca35da7 test: stabilize android settings integration test (#56)
* fix: stabilize android settings integration test

* test: use selector click in android integration test

* test: simplify android selector integration flow
2026-02-14 13:29:33 +01:00
Michał Pierzchała 37d1faf3ff 0.3.5 v0.3.5 2026-02-13 19:24:38 +01:00
Michał Pierzchała 0b5586fad9 Add open --relaunch and persist replay semantics (#52)
* Add open --relaunch and persist replay semantics

* Update agent-device skill docs for open --relaunch

* Disambiguate relaunch and save-script examples

* Support non-hierarchical deep links in open target detection
2026-02-13 19:21:25 +01:00
Michał Pierzchała 8cef2a61e0 Add deep-link URL support to open command (#53)
* Add deep-link URL support to open command

* Update agent-device skill docs for deep-link open
2026-02-13 18:49:00 +01:00
Michał Pierzchała e3b1aa6892 CI: add manual iOS runner prebuild cache for iOS job (#50)
* ci: add manual iOS runner prebuild cache for iOS workflow

* ci: simplify manual iOS prebuild workflow

* ci: pin cache actions in iOS workflows

* ci: fix iOS workflow env paths for parser compatibility

* ci: increase daemon timeout for iOS boot preflight

* ios: harden simulator state timeout and reuse preflight session

* ci: remove redundant iOS boot preflight step

* ios: retry transient simctl launch failures on simulator

* ci: pin iOS integration test target to resolved 26.2 simulator

* ci: harden iOS prebuild cache keys and remove derived-data copy path

* ci: simplify iOS workflow caching and drop redundant prebuild workflow

- Remove standalone ios-runner-prebuild.yml (redundant — ios.yml builds on cache miss)
- Switch from actions/cache/restore to actions/cache (auto-saves on miss)
- Drop restore-keys and -stable suffix (no longer needed without prebuild workflow)
- Remove UDID resolution step (test falls back to --platform ios)
- Use point-free shouldRetry for isTransientSimulatorLaunchFailure

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

* ios: increase simctl launch retry budget for CI simulators

SpringBoard can take several seconds after boot to accept app launches.
Increase from 3 attempts / 500ms–2s to 5 attempts / 1s–5s to give CI
simulators enough time.

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

* ios: use deadline-based retry for simulator app launch

The fixed-attempt retry (5 attempts, ~12s window) is too short for CI
simulators where SpringBoard needs 30-60s after boot to accept app
launches — especially when the build step is cached and provides zero
warm-up time.

Switch to a deadline-based approach matching ensureBootedSimulator:
- Default 30s timeout (configurable via AGENT_DEVICE_IOS_APP_LAUNCH_TIMEOUT_MS)
- CI sets 60s to handle cold-boot scenarios
- maxAttempts set high (30) so the deadline is the real limit

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

* ci(ios): keep tests platform-based and stabilize simulator selection

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-13 18:47:39 +01:00
Michał Pierzchała a73912003f 0.3.4 v0.3.4 2026-02-13 14:36:33 +01:00
Michał Pierzchała 8bc1675add Heal numeric get-text drift in replay update (#51)
* Refine selector resolution and simplify replay healing

* Address review feedback on selector internals

* Heal numeric get-text drift in replay update

* Remove redundant find and dead assignment in selector internals

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

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-13 14:35:45 +01:00
Michał Pierzchała 2dd2cad6fd 0.3.3 v0.3.3 2026-02-13 13:11:28 +01:00
Michał Pierzchała 172968c0e1 fix: refine selector resolution and simplify replay healing (#49)
* Refine selector resolution and simplify replay healing

* Address review feedback on selector internals
2026-02-13 13:05:07 +01:00
Michał Pierzchała 733bd8d84f 0.3.2 v0.3.2 2026-02-12 17:56:35 +01:00
Michał Pierzchała 1cf54a265c Boot, reinstall commands, diagnostics overhaul, and review fixes (#48)
* Refine reinstall flow and add agent-focused coverage

* Avoid duplicate readiness preflight in open flow

* Document boot and reinstall in website docs and skill

* Refine boot docs: troubleshooting-only and non-CI wording

* Fix duplicate find matching, add IOS_TOOL_MISSING reason, DRY retry log env check

- Remove redundant findNodeByLocator call in find handler; reuse
  bestMatches from the ambiguity check instead of scanning nodes twice.
- Add IOS_TOOL_MISSING boot failure reason so xcrun/simctl absence gets
  a specific diagnostic hint instead of generic BOOT_COMMAND_FAILED.
- Extract isEnvTruthy helper into retry.ts and replace duplicated
  RETRY_LOGS_ENABLED parsing in ios/index.ts and android/devices.ts.

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

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-12 17:54:04 +01:00
Michał Pierzchała a0ce6f1df2 feat: reinstall command for reuse and agent ergonomics (#47)
* Refine reinstall flow and add agent-focused coverage

* Avoid duplicate readiness preflight in open flow

* Document boot and reinstall in website docs and skill

* Bound iOS boot commands and enforce runCmd timeouts

* Align boot readiness with timeout profiles across platforms

* Refine boot docs: troubleshooting-only and non-CI wording

* Clarify open vs boot fallback guidance
2026-02-12 17:17:56 +01:00
Michał Pierzchała 3ddd3a1ef5 Complete issue #39 boot diagnostics, telemetry, and boot command (#46)
* Complete issue #39 phase diagnostics telemetry and boot command

* Address review findings for boot diagnostics and command gating

* Use agent-device boot preflight in iOS CI workflow

* Run iOS boot preflight via source CLI in CI
2026-02-12 15:00:27 +01:00
Michał Pierzchała 70ab1a8e97 Improve Android open fallback, find ambiguity handling, and replay diagnostics (#45)
* Improve Android open fallback, find ambiguity handling, and replay diagnostics

* Fix iOS integration step to use unique selector for General
2026-02-12 14:51:17 +01:00
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