74 Commits

Author SHA1 Message Date
Michał Pierzchała 8b36c2a56c feat: support remote runtime hints and artifact retrieval (#199)
* feat: add remote runtime hints and artifact retrieval

* fix: apply session runtime transport hints on open

* fix: secure and time out artifact downloads
2026-03-09 19:50:40 +01:00
Michał Pierzchała 780ecbc7a4 feat: support installing local artifacts over remote daemon transport (#192)
* feat: support installing local artifacts over remote daemon transport

When the CLI runs on a different machine than the daemon (via
AGENT_DEVICE_DAEMON_BASE_URL), install/reinstall commands now
transparently upload local app binaries (.apk/.ipa/.aab) and app
bundles (.app dirs) to the daemon before installing. No new flags
required — same CLI ergonomics.

- Add POST /upload endpoint to daemon HTTP server with auth and
  streaming file/tar reception
- Add client-side upload helper with timeout and tar packing for
  .app directories
- Intercept install/reinstall in sendToDaemon for remote daemons,
  upload artifact, rewrite positional path
- Clean up uploaded temp files after install completes (or fails)
  with 5-minute safety-net auto-cleanup for abandoned uploads
- Sanitize artifact filenames to prevent path traversal

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix: harden remote artifact upload flow

* refactor: split upload registry from receiver

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 16:10:31 +01:00
Michał Pierzchała 3bafc24f05 fix: support explicit remote daemon endpoints (#189)
* fix: support remote daemon base url

* fix: harden remote daemon endpoint handling

* docs: update remote daemon skill guidance
2026-03-06 15:40:06 +01:00
Michał Pierzchała 9b0a3dee6e feat: add install command with ipa/aab support (#151)
* feat: add install command for in-place app deployment

* chore: document install vs reinstall in quick start and skill

* docs: clarify install format support and limits

* feat: support ipa and aab app installation

* feat: improve install flexibility for ipa and aab

* fix: retry iOS simulator screenshot surface timeouts

* refactor: simplify install resolution and boot handling
2026-03-03 14:14:23 +01:00
Michał Pierzchała 14de55c9b7 fix: support configurable iOS runner bundle IDs (#146) 2026-02-26 16:40:24 +01:00
Michał Pierzchała b3ad24f527 feat: add Android keyboard status and dismiss command (#144) 2026-02-26 11:47:46 +01:00
Michał Pierzchała 890ceefe90 feat: add trigger-app-event aliases and routing (#134)
* feat: add trigger app event aliases and routing

* chore: remove redundant trigger normalization in session handler

* chore: remove trigger command aliases
2026-02-26 10:44:46 +01:00
Michał Pierzchała 4a38bb0b74 feat: add simulator-set and Android allowlist isolation (#143)
* feat: add simulator-set and Android allowlist isolation

* chore: document isolation scopes in agent-device skills
2026-02-26 10:38:23 +01:00
Michał Pierzchała 74eee5a32e Fix Android boot completion and emulator launch modes (#138)
* Fix Android boot completion and headless emulator launch

* Refactor Android boot fast lookup for testability

* Avoid extra target probes in Android boot fast lookup

* Simplify Android boot path in session handler

* fix: enforce boot target and headless validation
2026-02-26 10:20:51 +01:00
Michał Pierzchała b685a0b259 Add remote HTTP daemon mode with lease admission controls (#136)
* fix: add daemon remote HTTP server mode with isolation controls

* feat: add tenant lease lifecycle and admission control

* refactor: simplify lease scope and rpc method routing

* fix: correct smoke expectations for close without session
2026-02-25 18:25:15 +01:00
Michał Pierzchała 803ba256d4 Add Touch ID and Android fingerprint simulation for settings (#135)
* fix: add touchid/fingerprint settings simulation and harden error handling

* chore: tighten agent docs and simplify iOS biometric settings flow
2026-02-25 17:38:43 +01:00
Michał Pierzchała e8e92dc7b8 feat: port dogfood skill to agent-device (#133)
* feat: add agent-device dogfood skill package

* Apply suggestion from @thymikee
2026-02-25 16:27:25 +01:00
Michał Pierzchała f512b7d69c feat: add network dump command for session app traffic (#120)
* feat: add network dump command for session app traffic

* fix: restore cli branch block after rebase conflict
2026-02-25 16:17:08 +01:00
Michał Pierzchała ef20dea6bc feat: add AndroidTV and tvOS target support (#125)
* feat: add AndroidTV and tvOS target support

* feat: enable tvOS runner interactions

* refactor: unify apple target handling and tvOS capability gates

* refactor: remove hardcoded tvOS app-switcher sleep

* fix: align tvOS capabilities and docs for simulator-only helpers

* feat: improve AppleTV and AndroidTV physical device detection

* refactor: simplify tv target detection helpers
2026-02-25 14:55:54 +01:00
Michał Pierzchała 996d1fca2f feat: add session perf metrics command (#121)
* feat: add session perf metrics command

* refactor: simplify open perf result shaping

* docs: improve perf guidance in docs and skill

* docs: split perf guidance into skill reference
2026-02-25 13:49:59 +01:00
Michał Pierzchała ab338263ed feat: add clipboard read and write commands (#122) 2026-02-25 13:01:33 +01:00
Michał Pierzchała 66b0bdba31 fix: expose push notification simulation (#109)
* fix: expose push notification simulation across iOS and Android

* refactor: share push JSON detection and clean extras validation

* fix: harden push payload path handling in session

* refactor: consolidate push payload source resolution
2026-02-24 17:34:28 +01:00
Nils Fischer 8660b0433f feat: add settings appearance command (#119)
* feat: add settings appearance command

- add appearance light|dark|toggle support to settings command

- implement iOS simulator and Android night mode handlers

- cover parser/handler/platform behavior with unit tests

- update README, docs, and agent-device skill guidance

* test: align settings usage assertions

- expect split settings usage lines for wifi/location and appearance

* fix: harden settings appearance parsing and dedupe usage contract

---------

Co-authored-by: Michał Pierzchała <thymikee@gmail.com>
2026-02-24 17:25:56 +01:00
Michał Pierzchała ddfeb65896 fix: harden android non-ascii text input and document IME workaround (#118) 2026-02-24 16:53:30 +01:00
Michał Pierzchała 67b6698f34 feat: expose app permission grant/deny/reset in settings (#108)
* feat: add app-scoped permission settings across ios and android

* refactor: centralize permission target parsing and options

* fix: include stderr excerpt in generic command failures

* refactor: gate stderr message override to process-exit errors
2026-02-23 18:34:27 +01:00
Michał Pierzchała 55065488f6 feat: improve logs debugging workflow (#111) 2026-02-22 15:52:26 +01:00
Oskar Kwaśniewski 2876c9839e feat: publish on ClawHub (#110)
* feat: publish on ClawHub

Added information about accessing the skill in ClawHub.

* Update README.md

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Apply suggestion from @Copilot

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Michał Pierzchała <thymikee@gmail.com>
2026-02-22 11:28:12 +01:00
Michał Pierzchała e638e0ac60 feat: add full session log coverage and diagnostics workflows (#106)
* feat: add full session log coverage with doctor and marker tooling

* chore: split logs skill guidance into reference doc
2026-02-22 10:35:41 +01:00
Michał Pierzchała df0892b88a feat: colorize snapshot diff output (#90)
* feat: colorize snapshot diff output with node util

* docs: update snapshot diff color guidance
2026-02-20 20:01:22 +01:00
Michał Pierzchała 00ba0be101 fix: speed up and simplify scrollintoview @ref (#87) 2026-02-20 19:43:05 +01:00
Michał Pierzchała 8eea063374 feat: add iOS device record support via runner (#83)
* feat: add iOS device record support via runner

* refactor: simplify record command pathways

* fix: harden iOS record runner failure handling

* chore: emit diagnostic on iOS record stop runner failure

* fix: clear ios device runner cache in build:xcuitest

* chore: drop unused clean-derived env from build script

* fix: stage iOS device recordings via runner temp file

* fix: prefer requested iOS record path with permission fallback

* fix: disable iOS record fallback for explicit output paths

* refactor: remove iOS record fallback staging path flow

* fix: resolve record output paths from request cwd

* chore: log resolved record output path in diagnostics

* fix: avoid app activation when starting iOS recording

* refactor: streamline iOS recording setup paths

* fix: copy iOS device recordings back to host path

* fix: copy iOS recordings from runner test container

* feat: add configurable iOS recording fps

* fix: disable xcode test diagnostics for runner sessions

* fix: use wall-clock timestamps for iOS recording

* feat: default iOS recording to uncapped fps

* fix: recover stale ios runner recording state

* fix: preserve app focus when starting iOS recording

* docs: clarify iOS device recording capture model

* fix: tighten iOS device record start ownership checks

* refactor: collocate iOS record context checks

* refactor: derive uncapped recorder timescale from interval
2026-02-20 18:41:07 +01:00
Michał Pierzchała cd73856d17 perf: optimize and verify scrollintoview ref path (#86) 2026-02-20 18:38:07 +01:00
Michał Pierzchała 87a11bd765 feat: add diff snapshot command (#81)
* feat: add snapshot diff command and snapshot efficiency guidance

* chore: polish snapshot diff baseline output

* fix: trim diff output context and normalize +/- indentation

* fix: normalize unchanged context indentation in diff output

* fix: preserve snapshot indentation in diff formatter

* fix: honor diff snapshot -i flatten mode
2026-02-20 18:37:28 +01:00
Michał Pierzchała 44c966b4b4 feat: switch CLI long-press command to longpress (#80)
* fix: use longpress as sole CLI command and sync docs

* fix: keep long-press as hidden longpress alias
2026-02-20 12:51:01 +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 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 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 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 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 3314d0355e feat: allow optional --save-script output path (#63) 2026-02-16 11:43:36 +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 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 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 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 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
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 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
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 ebf45f1e79 feat: record start [path], screenshot [path], --record-json (#18) 2026-02-06 12:44:26 +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 e63cf2ab33 feat: android open --activity flag (#12) 2026-02-05 17:40:26 +01:00