Commit Graph

806 Commits

Author SHA1 Message Date
Michał Pierzchała e98ec1655a feat: add proxy lease runner diagnostics 2026-06-26 12:50:01 +02:00
Michał Pierzchała c593ecb04d docs: trim duplicated help guidance 2026-06-26 12:10:03 +02:00
Michał Pierzchała 04f53bbc04 docs: clarify agent-device help entrypoint 2026-06-26 07:59:47 +02:00
Michał Pierzchała 053bbace30 0.17.10 v0.17.10 2026-06-25 21:48:19 +02:00
Michał Pierzchała be1e1c9931 feat: add cdp command agent-cdp passthrough (#873)
* feat: add agent-cdp passthrough

* docs: narrow agent-cdp memory guidance

* chore: pin agent-cdp 1.6.0

* test: cover agent-cdp guidance

* fix: preserve agent-cdp passthrough flags

* fix: expose CDP wrapper as cdp

* docs: move CDP workflow to debugging guide

* docs: mention cdp in command reference
2026-06-25 21:44:47 +02:00
Michał Pierzchała 8c49d54ff1 fix: clarify proxy runner ownership (#882)
* fix: clarify proxy runner ownership

* fix: tighten proxy runner review follow-ups
2026-06-25 21:44:31 +02:00
Michał Pierzchała 98c0b1d3bf test: migrate test app to expo dev client (#881)
* test: migrate test app to expo dev client

* docs: align test app device targeting

* docs: clarify dev client setup tradeoffs

* docs: remove stale sdk reference
2026-06-25 21:43:14 +02:00
Michał Pierzchała 24cb2b622c fix: refine Apple provider pressure reporting (#877) 2026-06-25 17:34:50 +02:00
Michał Pierzchała 56d8e3902a test: migrate Android recording sizing coverage (#876) 2026-06-25 17:33:51 +02:00
Michał Pierzchała c142514ca6 docs: clarify agent-device QA mental model (#875) 2026-06-25 17:19:22 +02:00
Michał Pierzchała 19417f0a01 fix: avoid copying pnpm node_modules into worktrees (#872) 2026-06-25 12:12:29 +02:00
Michał Pierzchała fa1b0b7c8a docs: configure agent skill conventions (#871) 2026-06-25 11:02:37 +02:00
Michał Pierzchała 63e68cd596 0.17.9 v0.17.9 2026-06-25 10:18:41 +02:00
Michał Pierzchała ced61ce382 fix: disable nested sandboxing for ios runner builds (#869) 2026-06-25 10:18:00 +02:00
Michał Pierzchała f253d50a63 fix: resolve web find locators (#870) 2026-06-25 10:12:29 +02:00
Michał Pierzchała 09339e12cc fix: honor scroll duration across platform plumbing (#866)
* refactor: modularize scroll command plumbing

* fix: honor scroll duration across platforms

* fix: address scroll duration review comments
2026-06-25 10:11:50 +02:00
Michał Pierzchała ba825d8df2 fix: use desktop scroll events on macOS (#863)
* fix: use desktop scroll events on macOS

* fix: support paced macOS desktop scroll

* fix: clear scroll CI quality gates

* fix: address macos scroll review feedback

* refactor: simplify macos scroll plumbing

* fix: tighten scroll duration contract

* fix: limit apple scroll duration reporting
2026-06-25 07:38:21 +02:00
Michał Pierzchała df490ee859 fix: recover Android snapshots from system-only helper output (#861)
* fix: recover Android snapshots from system-only helper output

* fix: tighten Android snapshot recovery follow-up

* fix: preserve Android foreground container pruning
2026-06-25 07:37:23 +02:00
Michał Pierzchała d8e6bb7aa7 fix: add web viewport control and screenshot aliases (#865)
* fix: add web full-page screenshots

* fix: add web viewport command and screenshot aliases

* fix: address viewport CI regressions
2026-06-24 19:35:03 +02:00
Michał Pierzchała 5be101c281 fix: clean up Android snapshot helper sessions (#862) 2026-06-24 19:29:24 +02:00
Michał Pierzchała c9748a9a35 refactor: extract daemon selector capture runtime (#859) 2026-06-24 17:53:24 +02:00
Michał Pierzchała e97e2542a8 refactor: unify selector capture runtime (#857) 2026-06-24 17:29:22 +02:00
Michał Pierzchała 8a34821079 test: guard Maestro swipe stabilization flag (#860) 2026-06-24 17:13:56 +02:00
Michał Pierzchała b2030289e1 refactor: migrate command families to facets (#854)
* refactor: split management command facets

* refactor: migrate command families to facets

* test: isolate android bundletool lookup

* refactor: tighten command facet assembly

* fix: polish command facet follow-ups
2026-06-24 17:13:14 +02:00
Michał Pierzchała 5a84507b08 docs: add selector capture reliability contract (#858) 2026-06-24 17:03:57 +02:00
Michał Pierzchała a179e1e07a docs: add README articles and videos (#855) 2026-06-24 13:23:08 +02:00
Michał Pierzchała 7739b71a25 refactor: centralize command family facets (#849) 2026-06-24 12:40:03 +02:00
Michał Pierzchała 0b840d957d chore: add worktree include config (#853) 2026-06-24 08:04:17 +02:00
Michał Pierzchała 091c7dbc14 refactor: deepen runner command traits (#847) 2026-06-23 19:00:21 +02:00
Michał Pierzchała 2e02f767ed fix: validate batch steps through command contracts (#848) 2026-06-23 18:58:38 +02:00
Michał Pierzchała 180a74b63f refactor: share daemon HTTP contract helpers (#846) 2026-06-23 18:16:14 +02:00
Michał Pierzchała 51eaa7fd20 0.17.8 v0.17.8 2026-06-23 17:38:26 +02:00
Michał Pierzchała d47cd30117 feat: add agent-device proxy command (#844) 2026-06-23 17:20:08 +02:00
Michał Pierzchała c28148420b fix: use native web ref interactions (#843) 2026-06-23 16:36:21 +02:00
Michał Pierzchała 19f73c8fe3 ci: fix iOS simulator boot timeout (#845) 2026-06-23 16:24:50 +02:00
Michał Pierzchała bf8d952e21 fix: speed up web snapshots (#842)
* fix: speed up web snapshots

* ci: stabilize iOS simulator smoke boot
2026-06-23 14:13:30 +02:00
Michał Pierzchała b3b8c90fda 0.17.7 v0.17.7 2026-06-23 10:07:07 +02:00
Michał Pierzchała e6b40dc6ed docs: simplify CLI help flag scoping (#840)
* docs: simplify CLI help flag scoping

* fix: restore connect remote config flags

* docs: restore targeted CLI help cues

* fix: address CLI help review comments

* docs: tighten agent CLI planning guidance
2026-06-23 09:32:03 +02:00
Michał Pierzchała a8fb2a3704 docs: document multi-worktree Metro workflow (#841) 2026-06-22 20:31:59 +02:00
Michał Pierzchała d7beb52768 feat: expose web network dump through agent-browser (#838)
* feat: expose web network dump through agent-browser

* fix: reduce web network mapper complexity

* fix: gate web network headers by include mode

* test: assert compact web network summary

* refactor: simplify web network dump mapping

* refactor: trim web network coverage
2026-06-22 14:40:25 +02:00
Michał Pierzchała 467e174b47 test: improve SkillGym guidance coverage (#839)
* test: improve skillgym guidance coverage

* test: reduce SkillGym assertion complexity
2026-06-22 12:52:04 +02:00
Michał Pierzchała f2dd620fde docs: mention web in README tagline (#837) 2026-06-22 11:05:13 +02:00
Michał Pierzchała 02481e8b7f docs: document minimal web support (#831)
* docs: document minimal web support

* docs: clarify web support scope

* docs: remove duplicate web help entry

* docs: trim README web support notes
2026-06-22 11:01:13 +02:00
Michał Pierzchała c6fd3dc972 test: add live web platform smoke (#832)
* test: add live web platform smoke

* test: harden web smoke cleanup
2026-06-21 13:05:51 +02:00
Michał Pierzchała d3955d5143 chore: remove test-only dead exports (#836)
* chore: remove test-only dead exports

Remove 13 production exports that were consumed only by their own unit
tests, along with those tests. Found via a fallow production-vs-default
unused-export differential (exports unused by production but kept "live"
by a test), then each candidate was reachability-traced and the verdict
adversarially re-verified to confirm zero production use (internal,
re-export, registry, or dynamic dispatch).

Removed exports + their dedicated tests:
- backend.ts: hasBackendCapability, hasBackendEscapeHatch (+ orphaned
  BACKEND_CAPABILITY_ESCAPE_HATCH_METHODS) — cascade from runtime change
- runtime.ts: assertBackendCapabilityAllowed
- command-catalog/capabilities: (kept — see below)
- commands/cli-grammar/common.ts: commandNameSet (no test; pure dead)
- compat/maestro/support-matrix.ts: MAESTRO_COMPAT_UNSUPPORTED_CAPABILITIES
- core/dispatch-resolve.ts: resolveIosDevice
- daemon-client.ts: openApp (standalone fn; Backend.openApp untouched)
- daemon/daemon-command-registry.ts: listDaemonHandlerCommands
- daemon/post-gesture-stabilization.ts: capturePostGestureStabilizedSnapshot
- platforms/android/scroll-hints.ts: annotateAndroidScrollableContentHints
- platforms/ios/runner-session.ts: stopRunnerSession
- platforms/ios/runner-xctestrun-products.ts: xctestrunReferencesExistingProducts
- replay/script.ts: parseReplayScript
- utils/cli-option-schema.ts: getOptionSpecForToken
- utils/finders.ts: findNodeByLocator

Tests whose real subject is live code (handler routing, snapshot status,
writeReplayScript, maestro doc-sync) were rewritten to drop the dead
symbol while keeping coverage, not deleted.

typecheck, lint, and the unit suite (2568 tests) pass; fallow
production unused-exports drops 231 -> 218 with no new dead code.

* test: restore replay script parser coverage

* test: re-point replay parser cases to parseReplayScriptDetailed

Address review on #836: parseReplayScript was a thin wrapper, but the
parser it drove (parseReplayScriptDetailed) is live via
compat/replay-input.ts and compat/maestro/export-flow.ts. Restore the
record/screenshot/snapshot/gesture/type parsing assertions deleted with
the wrapper, re-pointed to parseReplayScriptDetailed(...).actions, so
.ad parser regressions (--hide-touches/--fullscreen/--force-full,
gesture positionals, --delay-ms) stay covered.

* Revert "test: re-point replay parser cases to parseReplayScriptDetailed"

This reverts commit 20a01e8641.
2026-06-21 13:04:47 +02:00
Michał Pierzchała 3ac96d2121 fix: preserve web backend setup hint (#835) 2026-06-21 13:03:49 +02:00
Michał Pierzchała d05cfc727b feat: manage web backend setup (#833) 2026-06-20 11:44:00 +02:00
Aldo Ryanda 73dc7f882d feat(recording): align quality and max-size controls (#816)
* feat(recording): make iOS export quality configurable

Wire the existing recording-export-quality enum through the record command
down to the Swift export preset. Adds a `--export-quality <medium|high>`
option for iOS recordings that controls the AVAssetExportSession preset used
when a recording is re-encoded.

`medium` stays the default and selects AVAssetExportPresetMediumQuality, which
preserves the fast simulator-friendly export. `high` opts into
AVAssetExportPresetHighestQuality for evidence-grade output. This is separate
from the existing integer `--quality <5-10>` capture flag that scales render
resolution.

Closes #568

* fix(recording): apply export quality to touch-overlay export path

The --export-quality flag was only wired into the resize export path. The
touch-overlay re-encode (finalizeRecordingOverlay -> overlayRecordingTouches ->
recording-overlay.swift) ignored it and always picked AVAssetExportPresetMediumQuality,
so record stop with --export-quality high had no effect when the stop path
re-encodes only to burn in touch overlays.

Thread the recording's exportQuality through finalizeRecordingOverlay and
overlayRecordingTouches, pass it as --export-quality to recording-overlay.swift,
and resolve the preset there via the same exportPresetName() helper used by
recording-resize.swift. Medium stays the default when the arg is absent, so
behavior is unchanged for callers that do not set it.

* feat: align recording quality and size flags

---------

Co-authored-by: Michał Pierzchała <thymikee@gmail.com>
2026-06-19 18:44:38 +02:00
Michał Pierzchała 87a6ac7c9a feat: bridge web provider to agent-browser (#826) 2026-06-19 16:47:01 +02:00
Michał Pierzchała 47fadf6925 fix: clean daemon-owned ios runner leases (#829) 2026-06-19 16:01:11 +02:00