Michał Pierzchała
81448c8f97
feat: add perf metrics and frames commands ( #703 )
...
* feat: add perf metrics and frames commands
* fix: tighten perf command ergonomics
* test: move perf area coverage to provider integration
2026-06-07 20:36:57 +02:00
Michał Pierzchała
86971990cb
fix: scope runner diagnostics to sessions ( #704 )
2026-06-07 11:35:38 +02:00
Michał Pierzchała
7d7b467699
fix: retry iOS runner prepare launch ( #692 )
2026-06-05 18:05:04 +02:00
Michał Pierzchała
3a93071748
docs: update public documentation links ( #684 )
2026-06-03 12:01:23 -07:00
Michał Pierzchała
491ad7e922
fix: improve session ownership and recovery guidance ( #674 )
...
* fix: improve session recovery guidance
* fix: quote session recovery commands
* test: simplify record session cleanup fixtures
* test: cover recovery hint edge cases
* test: trim duplicate recovery quoting coverage
* fix: scope implicit sessions by caller workspace
* fix: surface session state directory
* fix: remove unused session store check
* test: trim duplicate session recovery coverage
2026-06-02 14:06:00 -07:00
Michał Pierzchała
0313262a6a
docs: clarify physical device signing help ( #672 )
2026-06-02 08:50:35 -07:00
Michał Pierzchała
b1aaa3a4b6
chore: update glama mcp metadata ( #655 )
2026-06-01 19:29:50 -05:00
Michał Pierzchała
3785a17554
fix(ios): unify multi-touch gestures on two-finger synthesis + hinted unsupported errors ( #645 )
...
* fix(ios): unify multi-touch gestures on two-finger synthesis + hinted unsupported errors
Make RunnerSynthesizedGesture the single iOS multi-touch engine and drop the older
incompatible models:
- rotateGesture now drives the two-finger XCTest synthesis path (dx=dy=0, scale=1,
degrees), mirroring the pinch migration in #634 . The native XCUIElement.rotate(withVelocity:)
injected a single synthetic rotation that React Native's rotation recognizer did not read
reliably; synthesis fixes it. velocity is ignored on iOS (kept in the wire contract for
compatibility; rotation direction comes from the sign of degrees).
- pinch is now synthesis on iOS and a clear UNSUPPORTED_OPERATION on tvOS/macOS. The macOS
coordinate double-tap+drag heuristic (performCoordinatePinch) is removed: synthesis is
iOS-only, so macOS multi-touch is reported honestly as unsupported rather than approximated.
- RunnerInteractionOutcome.unsupported now carries an actionable hint, mapped to ErrorPayload.hint
(#639 ). Every unsupported gesture/tvOS path returns a concise message plus a next-step hint
(existing messages kept verbatim).
Net: on iOS, pinch/rotate/transform all flow through one synthesis primitive. swipe/scroll/pan/
fling remain single-finger drags (correct, unchanged).
Coverage: examples/test-app/replays/gesture-lab.ad exercises pinch + rotate against the gesture
lab and asserts "pinch changed yes" / "rotate changed yes".
* fix(ios): fail-fast macOS pinch + align capability/docs with synthesis-only
Follow-through for removing the macOS coordinate pinch path (the runner now returns
UNSUPPORTED_OPERATION for macOS pinch): reject it at admission instead of round-tripping.
- capabilities.ts: pinch now matches rotate-gesture/transform-gesture (Android + iOS
simulator only); macOS dropped. Removes the now-unused isMacOsOrMobileAppleSimulator helper.
- capabilities.test.ts: pinch expected unsupported on macOS and tvOS.
- website/docs/docs/commands.md: pinch listed for Android + iOS simulators only (removed from
the macOS app-session list); documents that iOS rotate ignores the optional velocity arg
(synthesis uses a fixed duration; direction comes from the sign of degrees).
Addresses PR #645 review HIGH #2 and MEDIUM #3 .
* fix(ios): surface a hinted unsupported error for synthesis gestures at admission
Removing macOS pinch from the capability matrix makes macOS pinch (and the already-excluded
rotate-gesture/transform-gesture on macOS/tvOS/physical iOS) fail fast in ensureGenericCommandReady
before reaching the runner. That left the runner's macOS-specific hint unreachable on the daemon
path, so callers only saw the generic "<cmd> is not supported on this device".
Add an optional unsupportedHint to the capability matrix and surface it at admission, so the
synthesis-only gestures fail fast (no runner round-trip) AND return an actionable hint pointing to
where they work (Android + iOS simulator). Applied to pinch / rotate-gesture / transform-gesture.
Addresses PR #645 review (P2: route macOS pinch to the hinted failure).
2026-06-01 19:30:36 +02:00
Michał Pierzchała
ece193e76b
fix: improve React Navigation Maestro reliability ( #628 )
2026-05-30 22:52:45 +02:00
Michał Pierzchała
d087a62d1d
fix: improve Maestro Android reliability and snapshot speed ( #612 )
...
* fix: improve maestro tab target swipes
* fix: stop replay suites on pending timeout cleanup
* fix: tighten maestro compat support plumbing
* fix: resolve ios simulator url open targets
* fix: speed up Android Maestro snapshots
* fix: resolve android snapshot ci regressions
* perf: reduce android snapshot helper overhead
* docs: record persistent helper session architecture
* chore: address snapshot session review
* perf: add persistent Android snapshot helper session
* fix: stabilize Android replay interactions
* fix: stabilize Maestro visibility resolution
* refactor: simplify Android keyboard parsing
2026-05-29 22:09:18 +02:00
Michał Pierzchała
e1b8686e44
fix: hint sparse snapshot fallback ( #614 )
...
* fix: hint sparse snapshot fallback
* fix: suppress sparse hint for depth-limited snapshots
2026-05-29 11:26:27 +02:00
Michał Pierzchała
99e97c873e
feat: stream replay test progress ( #605 )
...
* feat: stream replay test progress
* fix: format replay test progress duration
* fix: harden replay progress transports
* refactor: clean up replay progress fallow findings
* refactor: trim replay progress cleanup
2026-05-28 17:54:44 +02:00
Michał Pierzchała
819d7dc8aa
feat: expose structured MCP command tools ( #593 )
...
* feat: expose semantic MCP tools
* docs: remove semantic mcp prd
* refactor: deepen semantic command surface
* refactor: add mcp execution seam
* refactor: deepen command grammar
* refactor: remove legacy command definitions
* refactor: collapse semantic cli wrappers
* refactor: remove local mcp placeholders
* refactor: derive semantic cli routing
* refactor: trim mcp status metadata
* refactor: derive semantic input contracts
* refactor: split semantic grammar modules
* refactor: derive batch input schema
* refactor: centralize cli command schema catalog
* refactor: share semantic cli output projections
* refactor: remove legacy cli output paths
* refactor: consolidate command interface surface
* docs: align command contract wording
* refactor: split command projection from cli grammar
* refactor: trim projection exports
* fix: satisfy fallow command contract audit
* refactor: structure public batch steps
* chore: clean batch architecture references
* fix: keep legacy cli batch steps working
* fix: serialize mcp batches
* chore: tighten command surface cleanup
* fix: serialize mcp stdin requests
* chore: keep mcp config out of command contracts
* fix: project structured batch targets
* chore: harden command input typing
* fix: project maestro backend for replay tests
* fix: preserve session mcp request options
2026-05-28 09:20:55 +02:00
Michał Pierzchała
a5fffc6e49
feat: add Maestro YAML replay compatibility ( #581 )
...
* feat: add Maestro replay compatibility
* fix: harden Maestro replay compatibility
* fix: address Maestro replay review feedback
* fix: finalize Maestro replay compatibility
* refactor: tighten Maestro replay compatibility boundary
* refactor: reduce Maestro replay quality debt
* refactor: satisfy Maestro replay fallow audit
* fix: stabilize Android provider snapshot tests
2026-05-27 21:45:51 +02:00
Michał Pierzchała
bbe7c06fb6
feat: auto-reverse Android localhost opens ( #590 )
...
* feat: auto-reverse Android localhost opens
* test: cover Android localhost reverse edge cases
* fix: reduce Android reverse error complexity
* docs: simplify Android Metro reverse guidance
* docs: prefer scripted SkillGym checks
* test: clarify Android Metro SkillGym plan
2026-05-26 10:44:51 +02:00
Michał Pierzchała
ea21793154
feat: support ios transform gesture ( #586 )
2026-05-26 09:58:33 +02:00
Michał Pierzchała
c72cf0e1d2
fix: clarify Android gesture transform behavior ( #584 )
...
* fix: clarify Android gesture transform behavior
* fix: stabilize Android transform injection
2026-05-26 09:47:07 +02:00
Michał Pierzchała
47b981c8ad
feat: add gesture command coverage ( #576 )
...
* feat: add gesture command coverage
* fix: align iOS fling provider fixture
* feat: group gesture commands
* fix: clarify android gesture support
* feat: add android multitouch gestures
* fix: address gesture review feedback
* refactor: simplify gesture plumbing
* fix: keep gesture subcommands internal
* fix: update iOS provider pan transcript
2026-05-22 18:01:58 +02:00
Michał Pierzchała
0bc1b1e927
fix: simplify iOS interactive snapshots ( #578 )
2026-05-21 16:19:53 +02:00
Michał Pierzchała
67aa89af58
feat: add iOS repro evidence capabilities ( #573 )
2026-05-21 13:39:52 +02:00
Michał Pierzchała
b0e19c9d1e
perf: improve recording and interaction flows ( #563 )
...
* perf: improve recording and interaction flows
* feat: add React Native overlay dismiss command
* test: cover RedBox overlay dismissal
* fix: simplify React Native overlay snapshot hint
* fix: address daemon and scroll review feedback
* fix: unblock ci after recording polish
* chore: refresh fallow health baseline
* test: stabilize android provider suites
* test: cover rn overlay provider command
2026-05-20 20:32:08 +02:00
Michał Pierzchała
f71371ebb8
fix: handle platform alerts ( #562 )
...
* fix: handle Android platform alerts
* fix: handle iOS alerts in runner
* chore: type alert metadata
* refactor: colocate Android alert handling
2026-05-20 14:51:17 +02:00
Michał Pierzchała
896adcc625
feat: add maestro replay compatibility ( #561 )
2026-05-19 20:49:34 +02:00
Michał Pierzchała
840bef56ca
fix: tighten env var surface ( #560 )
2026-05-19 17:11:31 +02:00
Michał Pierzchała
41508d29b1
fix: make mcp discovery-only ( #556 )
2026-05-18 15:56:36 +02:00
Michał Pierzchała
59d28e8446
refactor: add provider-first device lab tests ( #542 )
...
* refactor: add provider-first device lab tests
* refactor: tighten device lab provider seams
* test: cover provider lab contracts
* docs: record device lab harness direction
* ci: run device lab integration tests
* test: move device lab under integration
* test: extract device lab helpers
* refactor: centralize apps filter defaults
* test: drop lab-covered unit tests
* test: fold platform happy paths into device lab
* test: reuse device lab helpers
* test: move device lab to in-process harness
* test: replace session handler cases with device lab
* test: harden device lab scenario contracts
* docs: define unit test retention policy
* test: expand provider device lab coverage
* test: harden provider device lab coverage
* test: cover manifest install and runner session contracts
* chore: remove unused provider cleanup code
* test: split android find device lab scenario
* test: track provider lab architecture progress
* test: clarify provider lab roadmap progress
* test: advance provider lab session coverage
* test: move menubar click routing to device lab
* test: move menubar snapshots to device lab
* refactor: centralize screenshot flag plumbing
* refactor: colocate screenshot flag metadata
* test: cover all public commands in device lab
* test: move macos wait success to device lab
* test: drop redundant perf and diff units
* test: move push payload paths to device lab
* test: move network parsing to device lab
* test: move log cleanup to device lab
* test: move log restart and boot to device lab
* test: move ios physical boot to device lab
* test: cover perf startup in device lab
* test: extract android and ios device lab worlds
* test: trim device lab world surface
* test: split snapshot capture unit coverage
* test: deepen device lab coverage and trim handler units
* test: clean up device lab migration scaffolding
* test: report device lab public command coverage
* refactor: make Apple provider seams semantic
* refactor: tighten device inventory and Linux provider seams
* refactor: tighten request provider scoping
* refactor: add semantic macos host provider
* test: broaden device lab find coverage
* test: cover workflow flags in device lab
* refactor: promote linux input provider seam
* test: clarify device lab flag coverage
* test: classify snapshot force-full progress
* test: enforce device lab progress in ci
* test: stabilize device lab ci
* test: move packaged metro smoke to integration
* test: drop stale provider seam coverage
* test: harden provider scope regression coverage
* refactor: remove stale platform barrels
* refactor: keep linux clipboard and screenshots semantic
* refactor: move macos host tools behind provider
* fix: honor remote artifact output paths
* test: deepen runtime coverage for daemon and runner paths
* test: share loopback test helpers
* refactor: make daemon runtime importable
* fix: honor replay target metadata
* chore: tighten final device lab quality gates
* test: share device lab setup helpers
* test: remove generic apple lab fallback
* test: deduplicate device lab helpers
* chore: tighten fallow duplication signal
* refactor: share apple diagnostic helpers
* fix: detect active android ime during fill verification
* test: consolidate provider-backed integration suite
* ci: fix fallow and iOS smoke setup
* chore: consolidate cleanup after ci fixes
* test: split vitest unit and integration projects
* docs: mention MCP discovery metadata
* docs: add agent skills context pointers
* fix: close provider recording coverage gaps
* fix: restore mcp compatibility smoke
* test: cover provider edge regressions
* test: consolidate loopback helpers
* docs: remove stale provider routing reference
* fix: harden final provider review issues
* chore: defer mcp cleanup from provider refactor
2026-05-18 14:50:52 +02:00
Michał Pierzchała
068d4c5d0a
chore: remove ensure-simulator lifecycle command ( #552 )
2026-05-15 19:23:45 +02:00
Michał Pierzchała
8f722c3c5f
docs: guide bounded react devtools profiling ( #548 )
2026-05-15 18:56:05 +02:00
Michał Pierzchała
c1550721ce
fix: collapse Android snapshot row noise ( #545 )
...
* fix: collapse Android snapshot row noise
* docs: clarify agent-facing snapshot text
* fix: preserve semantics when collapsing Android snapshots
* fix: trim redundant Android collapse hints
* fix: collapse passive Android duplicate children
* refactor: drop unused Android snapshot hint code
* docs: clarify Android Metro verification guidance
* test: cover Android Metro reverse planning
* test: fix codex skillgym runner
* fix: satisfy fallow snapshot checks
* docs: clarify PR validation guidance
2026-05-15 18:52:11 +02:00
Michał Pierzchała
7e14decce3
fix: improve Android text entry stability ( #540 )
...
* fix: improve android text entry stability
* fix: stabilize android daemon diagnostics
* chore: refresh fallow baselines
* refactor: tighten android text fallback
* fix: tighten android input ownership diagnostics
* fix: require settled android fill verification
* test: cover android fill prefix verification
2026-05-15 12:16:06 +02:00
Michał Pierzchała
83efe54407
fix: default apps listing to user-installed ( #541 )
2026-05-15 11:06:27 +02:00
Michał Pierzchała
801c2ae0b3
fix: improve rn agent-device stability guidance ( #519 )
2026-05-14 17:30:45 +02:00
Michał Pierzchała
d12d27de21
docs: clarify agent-device shell resolution ( #522 )
2026-05-14 13:27:59 +02:00
Michał Pierzchała
517b5198b4
docs: clarify agent-device binary resolution ( #511 )
2026-05-13 14:52:46 +02:00
Anupam Chugh
a90642544d
feat: support precise location settings ( #491 )
...
* feat: support precise location settings
* fix: address location settings review
* chore: refresh fallow baselines for location settings
* fix: clean up location settings dispatch
---------
Co-authored-by: anupamchugh <anupamchugh@gmail.com >
Co-authored-by: Michał Pierzchała <thymikee@gmail.com >
2026-05-12 12:07:59 +02:00
Michał Pierzchała
8a1e195599
docs: trim stale internal docs ( #498 )
2026-05-12 10:31:27 +02:00
Michał Pierzchała
2ebb9aa4a6
docs: improve agent discovery onboarding ( #496 )
2026-05-11 21:07:48 +02:00
Michał Pierzchała
25d72895c5
feat: add MCP discovery router ( #494 )
2026-05-11 17:28:04 +02:00
Michał Pierzchała
10fd292569
fix: stabilize remote DevTools and install workflow ( #490 )
...
* 0.14.6
* fix: harden remote install workflow
* fix: prevent companion startup state race
* fix: guide remote ios devtools reconnects
2026-05-01 07:27:36 -04:00
Michał Pierzchała
7d47c6796a
fix: persist remote react devtools companion ( #489 )
2026-04-30 16:18:54 -04:00
Michał Pierzchała
7ea8d9eea3
feat: discover cloud config during connect ( #488 )
...
* feat: discover cloud config during connect
* test: isolate cloud connect profile coverage
* docs: document cloud connect discovery
* fix: honor no-login after cloud auth reuse
* fix: validate cloud connection profiles
* refactor: require object cloud profiles
* refactor: trim cloud connect compatibility code
2026-04-30 16:16:56 -04:00
Michał Pierzchała
6a55d48938
fix: tunnel remote ios react devtools ( #486 )
2026-04-30 12:36:02 -04:00
Michał Pierzchała
8aa4abe465
feat: expand android adb provider boundary ( #481 )
2026-04-29 21:45:42 -04:00
Michał Pierzchała
cff8bd81e4
feat: add iOS frame perf sampling ( #477 )
...
* feat: add iOS frame perf sampling
* fix: satisfy fallow for iOS perf sampling
* refactor: address iOS perf review feedback
* fix: handle optional iOS display info export
* fix: retry iOS trace record lock failures
* fix: correct iOS perf retry windows
2026-04-29 21:20:21 -04:00
Michał Pierzchała
fea7a5b73f
feat: expose daemon embedding and Android ADB APIs ( #480 )
2026-04-29 19:18:17 -04:00
Michał Pierzchała
0c7e48d7d5
feat: add Android frame health perf metrics ( #474 )
2026-04-29 16:56:37 -04:00
Michał Pierzchała
6a2bf9f626
feat: export batch orchestration helpers ( #472 )
2026-04-29 10:48:17 -04:00
Michał Pierzchała
bbb1d363c2
fix: handle iOS keyboard Done dismiss controls ( #469 )
2026-04-28 21:20:09 -04:00
Michał Pierzchała
6c368bf792
docs: update agent-device guidance ( #467 )
2026-04-28 17:07:33 -04:00
Michał Pierzchała
d1a764105f
chore: update version guidance to >=0.14.0
2026-04-28 14:40:28 -04:00