Michał Pierzchała
28a1dcdb0a
refactor: extract provider device runtime seam
2026-06-29 16:53:46 +02:00
Michał Pierzchała
8f92572ae4
feat: expose web screen recording ( #891 )
2026-06-26 19:36:50 +02:00
Michał Pierzchała
2d6fc98222
refactor: tighten daemon output helpers ( #892 )
...
* refactor: tighten daemon screenshot typing
* refactor: share screenshot result typing
* refactor: inline record shape checks
* refactor: inline record readers
* refactor: type batch and network output
* refactor: type batch run response
* refactor: narrow batch and observability output types
* refactor: validate typed batch runtime hints
* refactor: restore record boundary guard
* refactor: split daemon output parsers
* refactor: narrow screenshot overlay parser
* refactor: type screenshot overlay data
* refactor: type shutdown result payload
2026-06-26 16:32:52 +02:00
Michał Pierzchała
56d8e3902a
test: migrate Android recording sizing coverage ( #876 )
2026-06-25 17:33:51 +02:00
Michał Pierzchała
f253d50a63
fix: resolve web find locators ( #870 )
2026-06-25 10:12:29 +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
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
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
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
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
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
bc5726e8b0
test: cover web provider scenario ( #827 )
2026-06-19 13:39:39 +02:00
Michał Pierzchała
833479e01b
feat: add semantic web provider seam ( #825 )
...
* feat: add semantic web provider seam
* fix: forward web provider through request router
2026-06-19 12:26:19 +02:00
Michał Pierzchała
a6bb86539f
fix: stabilize Android Maestro replay interactions ( #805 )
...
* fix: stabilize Android Maestro replay interactions
* refactor: dedupe Maestro visible recovery
* test: relax Android Maestro snapshot count assertions
* refactor: unify Maestro recoverable interaction state
2026-06-14 15:46:26 +02:00
Michał Pierzchała
945a780c37
fix: stabilize iOS runner gestures ( #800 )
...
* fix: avoid stale iOS window viewport queries
* fix: synthesize iOS swipe gestures
* fix: honor iOS drag gesture durations
* test: update iOS gesture provider transcript
* fix: align sequence drag fallback timing
2026-06-13 09:54:53 +02:00
Michał Pierzchała
5c83fe4e50
fix: improve daemon diagnostics and remove compact snapshots ( #786 )
...
* fix: improve daemon startup diagnostics
* perf: relax query-sweep recovery budget
* fix: make compact snapshot flag a no-op
* fix: remove compact snapshot mode
* test: align tvOS remote provider expectation
* test: drop compact snapshot progress target
2026-06-12 17:32:56 +02:00
Michał Pierzchała
a35c444df6
feat: add perf memory diagnostics ( #759 )
...
* feat: add perf memory diagnostics
* fix: address perf memory CI findings
* fix: address perf memory review feedback
* docs: explain perf memory diagnostics benefits
2026-06-11 14:58:09 +02:00
Michał Pierzchała
93f104aaaa
fix: make Device Hub simulator launch opt-in ( #766 )
2026-06-11 13:00:53 +02:00
Thiago Brezinski
b2e4ace12c
fix: focus booted iOS simulators with Device Hub ( #750 )
...
* fix: focus booted iOS simulators with Xcode Device Hub
* fix: expose Device Hub opt-out
* test: cover Device Hub screenshot retry focus
---------
Co-authored-by: Michał Pierzchała <thymikee@gmail.com >
2026-06-10 20:07:08 +02:00
Michał Pierzchała
69d296cd32
test: cover daemon HTTP server edge cases ( #738 )
2026-06-10 11:32:33 +02:00
Michał Pierzchała
22fba8718c
feat: add shutdown command ( #718 )
...
* feat: add shutdown command
* fix: address shutdown review feedback
* fix: reject active session shutdown targets
* fix: preserve shutdown failure details
* fix: satisfy shutdown fallow audit
* fix: simplify shutdown session handling
2026-06-10 10:24:42 +02:00
Michał Pierzchała
16312d073d
fix: use XCTest drag for iOS swipes ( #716 )
...
* fix: use XCTest drag for iOS swipes
* fix: update iOS drag CI expectations
2026-06-09 17:25:31 +02:00
Michał Pierzchała
c2b29d5600
fix: stabilize Maestro replay on iOS ( #713 )
...
* fix: stabilize Maestro replay on iOS
* fix: scope iOS runner cleanup to daemon owner
* fix: lease iOS runner ownership per device
* fix: release prepared iOS runner daemon in CI
* fix: inline runner lease release cleanup
2026-06-09 14:12:57 +02:00
Michał Pierzchała
35f54a863c
fix: resolve Maestro taps from regular snapshots ( #709 )
...
* fix: resolve Maestro taps from regular snapshots
* fix: tighten Maestro snapshot compatibility
* test: align Maestro snapshot freshness fixtures
2026-06-08 18:12:09 +02:00
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
76cee982ba
fix: stabilize iOS runner navigation taps ( #702 )
...
* 0.16.14
* fix: stabilize iOS runner navigation taps
* fix: recover iOS runner after AX failures
* docs: clarify AX-unavailable snapshot recovery
* test: cover synthesized ios provider taps
* test: cover iOS runner AX failure paths
* fix: clarify sparse iOS AX recovery hint
2026-06-07 11:17:27 +02:00
Michał Pierzchała
aa5b07faa5
fix: keep iOS runner hot across app closes ( #700 )
...
* fix: keep iOS runner hot across app closes
* fix: keep iOS snapshots fast after relaunch
* fix: bound compact iOS snapshots on broken AX trees
* docs: clarify iOS snapshot backend strategy
* test: update Settings replay selectors
* fix: stabilize Settings replay selectors
* fix: fall back for selector interactions
* chore: simplify flat interactive snapshot query
2026-06-06 21:26:12 +02:00
Michał Pierzchała
f2424f9d3a
refactor: centralize daemon command registry ( #693 )
2026-06-05 18:34:01 +02:00
Michał Pierzchała
ad7b386444
feat: cache iOS runner artifacts during prepare ( #688 )
...
* feat: cache ios runner artifacts during prepare
* refactor: deepen ios runner lifecycle
* refactor: generalize apple runner prepare
* refactor: simplify apple runner lifecycle
* fix: clarify runner prepare recovery diagnostics
* refactor: trim apple runner provider surface
* test: simplify runner recovery diagnostics assertion
2026-06-04 15:37:05 -07:00
Michał Pierzchała
bf21540b9d
refactor: consolidate android gesture backend selection ( #689 )
2026-06-04 15:15:34 -07:00
Michał Pierzchała
7ab9998645
fix: stabilize Maestro post-gesture snapshots ( #681 )
...
* fix: stabilize maestro post-gesture snapshots
* fix: harden maestro ci diagnostics and ios prepare
* fix: preserve android freshness baseline for optimized taps
* fix: close ios runner host after sessionless commands
* fix: require tracked app for ios snapshots
* fix: keep in-page swipes on visible content
* test: align lock policy probes with ios snapshot guard
* fix: compose post-gesture snapshots with android freshness
* refactor: clarify post-action snapshot policies
* fix: avoid redundant swipe stabilization flag
* fix: route android swipes through gesture helper
* test: cover android swipe helper fallback
2026-06-04 14:44:33 -07:00
Michał Pierzchała
7400701857
perf: speed up iOS swipes and harden runner cache ( #676 )
...
* perf: speed up ios swipes and harden runner cache
* fix: harden maestro replay smoke tests
2026-06-03 04:59:13 -07:00
Michał Pierzchała
041b48222f
feat: add iOS runner prepare command ( #673 )
...
* feat: add ios runner prepare command
* fix: shorten snapshot request timeout
* fix: refine prepare and snapshot timeouts
* test: cover prepare ios runner provider scenario
2026-06-02 12:08:34 -07:00
Michał Pierzchała
3ae2472d44
fix: keep iOS runner status transport visible ( #663 )
2026-06-01 20:23:29 -07:00
Michał Pierzchała
3f65124ea4
refactor: add iOS runner lifecycle protocol ( #658 )
...
* refactor: add ios runner lifecycle protocol
* fix: avoid journaling ios runner status probes
* fix: cap ios runner journal responses
* perf: avoid snapshot journal serialization
* perf: skip ids for ios runner status probes
* refactor: keep ios runner status off main thread
2026-06-01 20:40:09 -05:00
Michał Pierzchała
66ec92f8b9
fix: retry no-op maestro taps ( #644 )
...
* fix: retry no-op maestro taps
* fix: dispatch no-op tap retries as press
* fix: preserve android freshness during outcome retry
2026-06-01 18:04:40 +02:00
Michał Pierzchała
ece193e76b
fix: improve React Navigation Maestro reliability ( #628 )
2026-05-30 22:52:45 +02:00
Michał Pierzchała
5d68483f1e
test: add Maestro provider integration guards ( #620 )
...
* test: add maestro provider integration guards
* test: cover maestro provider input coalescing
* test: align maestro input provider guard
2026-05-30 15:38:38 +02:00
Michał Pierzchała
0bbb06ebcf
refactor: vendor png codec ( #609 )
...
* refactor: vendor png codec
* fix: satisfy fallow audit
* fix: bound png inflate output
2026-05-28 17:54:07 +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
dcc7421892
fix: recover Android app-owned ANRs ( #592 )
...
* fix: recover Android app-owned ANRs
* refactor: tidy Android ANR recovery helpers
* fix: satisfy Android ANR fallow audit
2026-05-26 11:07:46 +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
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
840bef56ca
fix: tighten env var surface ( #560 )
2026-05-19 17:11:31 +02:00
Michał Pierzchała
094c290703
perf: speed up iOS replay runner ( #557 )
...
* perf: speed up iOS replay runner
* fix: harden ios replay fast paths
* fix: address ci validation failures
* refactor: trim unused ios replay surface
2026-05-19 11:36:48 +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