Michał Pierzchała
e248bf38c0
0.7.4
v0.7.4
2026-02-26 16:40:51 +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
ed5dd7bc28
0.7.3
v0.7.3
2026-02-26 11:48:55 +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
3c6be3c715
0.7.2
v0.7.2
2026-02-26 10:44:55 +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
0c4b1251c6
fix: prevent Android fill/type truncation with + and @ ( #142 )
...
* fix: encode Android shell text input for special ASCII
* fix: harden android fill fallback strategy
* chore: simplify android fill fallback flow
2026-02-26 10:37:31 +01:00
Michał Pierzchała
2a86f52b05
fix: harden press @ref bounds recovery ( #141 )
2026-02-26 10:23:14 +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
cfc56e8b63
docs: add agent skill guidance for remote tenant leases ( #137 )
2026-02-25 18:34:36 +01:00
Michał Pierzchała
2e0f5da4b9
0.7.1
v0.7.1
2026-02-25 18:25:35 +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
18364bd04a
0.7.0
v0.7.0
2026-02-25 16:28:38 +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
Nick Dima
43aae1d30a
fix(ios): correctly implement runner fallback for physical device screenshots ( #132 )
...
* fix(ios): use XCTest runner for screenshots on physical devices
`xcrun devicectl device screenshot` was removed in Xcode 26.x, causing
`agent-device screenshot` to fail on physical iOS devices with exit code 64.
This fix routes physical device screenshots through the AgentDeviceRunner
XCTest runner (already used for snapshot/interaction commands) instead:
- Add `screenshot` command to the Swift runner's `CommandType` enum
- Implement the handler using `XCUIScreen.main.screenshot()`, writing a
timestamped PNG to the app's temp directory (returned as `tmp/<file>`)
- If `appBundleId` is provided, activate the target app before capturing
so the screenshot shows the app under test rather than the runner itself
- In `screenshotIos()`, pass `appBundleId` to the runner command then pull
the file back to the host via `xcrun devicectl device copy from` (same
mechanism used by the recording feature)
- Thread `appBundleId` through `Interactor.screenshot()` → `dispatch.ts`
→ `screenshotIos()` so the active session's app is always captured
- Extract `IOS_RUNNER_CONTAINER_BUNDLE_IDS` to `runner-client.ts` so it
can be shared between `apps.ts` and `record-trace.ts`
Fixes: screenshots failing with "Failed to capture iOS screenshot" on
devices using Xcode 26.x / devicectl 506.6+
* fix: clean up iOS screenshot fallback follow-ups
---------
Co-authored-by: Michał Pierzchała <thymikee@gmail.com >
2026-02-25 16:11:01 +01:00
Michał Pierzchała
8123117e6d
fix: fallback iOS/tvOS screenshot to runner when devicectl screenshot is unavailable ( #130 )
2026-02-25 15:34:14 +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
13b2e2c83b
chore: resolve merge marker in agent-device skill
2026-02-24 17:56:02 +01:00
Michał Pierzchała
0b9ab86fc5
0.6.3
v0.6.3
2026-02-24 17:35:08 +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
ea7d60a0a4
0.6.2
v0.6.2
2026-02-24 16:57:15 +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
20aa00587b
fix: harden permission controls across iOS and Android ( #117 )
2026-02-24 10:55:07 +01:00
EarthXP
0041dee2b7
fix: add MAIN/LAUNCHER flags to Android launcher activity resolver ( #115 )
...
* fix: add MAIN/LAUNCHER flags to Android launcher activity resolver
The `resolve-activity` fallback command was missing `-a android.intent.action.MAIN`
and `-c android.intent.category.LAUNCHER`, causing it to resolve the wrong activity
on multi-entry apps like Microsoft Outlook. This adds the correct intent flags so
the resolver consistently returns the launcher activity.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
* fix: detect am start silent failures and fall back to resolved component
am start -p <package> can exit 0 while printing "Error: Activity not
started" to stdout. The previous try/catch never entered the fallback
because runCmd did not throw. Now we check the output for error
indicators via isAmStartError() and proceed to the resolve-activity
fallback when the primary launch silently fails.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
---------
Co-authored-by: EarthXP <15072042+EarthXP@users.noreply.github.com >
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-24 09:57:28 +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
8ecd78f947
docs: harden agent-device skill security guidance ( #113 )
2026-02-22 20:11:40 +01:00
Michał Pierzchała
6ab51aebc3
0.6.1
v0.6.1
2026-02-22 16:37:15 +01:00
Michał Pierzchała
6453369abb
chore: optimize agent-device skill onboarding ( #112 )
2026-02-22 16:04:29 +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
1854271086
chore: streamline AGENTS onboarding and testing matrix ( #107 )
2026-02-22 10:45:44 +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
71df2ffc42
0.6.0
v0.6.0
2026-02-20 20:02:42 +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
615331291b
chore: remove dead node/ts code paths ( #89 )
2026-02-20 19:44:58 +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
2fd2bf50fe
chore: remove dead ios runner command paths ( #88 )
2026-02-20 19:38:16 +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
345b7eee7d
fix: harden ios runner resilience and cancellation ( #85 )
2026-02-20 17:18:37 +01:00
Michał Pierzchała
40283f5c27
fix: allow swipe on ios physical devices ( #84 )
2026-02-20 16:05:58 +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
089cf96fd8
0.5.5
v0.5.5
2026-02-18 20:51:15 +01:00