770 Commits

Author SHA1 Message Date
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
Michał Pierzchała cb28f6862e fix: align web snapshot and capability support (#828)
* fix: align web snapshot and capability support

* test: cover desktop snapshot presentation
2026-06-19 16:00:31 +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 188715b409 feat: add web platform vocabulary (#824)
* feat: add web platform vocabulary

* fix: tighten web platform admission
2026-06-19 11:56:45 +02:00
Michał Pierzchała f9a9662f05 0.17.6 v0.17.6 2026-06-16 16:52:40 +01:00
Michał Pierzchała afd413021a feat: improve maestro test reporter (#811) 2026-06-16 16:51:47 +01:00
Michał Pierzchała d29b86d7b8 fix: report maestro ios runner setup failures (#809) 2026-06-16 16:28:28 +01:00
Hanno J. Gödecke d14dfab41c fix(ios): support no-op xctest runner startup (#807) 2026-06-16 15:54:25 +01:00
Michał Pierzchała feb5309e38 fix: classify external xctest runner flags (#810) 2026-06-16 15:54:00 +01:00
Hanno J. Gödecke 350cd0c1cb feat(ios): support external xctest runner artifact (#806)
* feat(ios): support external xctest runner artifact

* fix(ios): pass derived data path to xctest runner

* fix(ios): reuse external xctest runner sessions
2026-06-16 15:44:41 +01:00
Michał Pierzchała 0b499f22db chore: update stale callstackincubator references 2026-06-15 20:12:03 +01:00
Michał Pierzchała 204be34dec 0.17.5 2026-06-15 20:08:26 +01:00
Michał Pierzchała 9e165114c0 perf: optimize rslib startup build (#803) 2026-06-15 08:51:47 +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
Yoni Samlan 93a6998188 fix: rotate synthesized iOS taps into native screen space (#804)
* fix: rotate synthesized iOS taps into native screen space

* fix: rotate synthesized iOS transform gestures

---------

Co-authored-by: Michał Pierzchała <thymikee@gmail.com>
2026-06-14 11:24:31 +02:00
Michał Pierzchała 71db11b744 0.17.4 v0.17.4 2026-06-13 20:49:01 +02:00
Michał Pierzchała 991f4c708b fix: match Maestro directory test order (#802)
* fix: match Maestro directory test order

* test: cover Maestro nested directory discovery
2026-06-13 20:48:34 +02:00
Michał Pierzchała 778349a991 fix: stabilize Android Maestro replay reliability (#799)
* docs: clarify Android snapshot helper idle waits

* fix: stabilize Android Maestro replay context
2026-06-13 19:08:57 +02:00
Michał Pierzchała 0034a7672a fix: align Maestro test discovery order (#801) 2026-06-13 13:29:24 +02:00
pupuking723 98376b93d5 fix: report snapshot timing diagnostics (#798)
* fix: report snapshot timing diagnostics

* fix: refine snapshot diagnostics reporting

* fix: preserve replay snapshot diagnostics on failure

* refactor: simplify snapshot diagnostics plumbing

---------

Co-authored-by: Michał Pierzchała <thymikee@gmail.com>
2026-06-13 12:17:25 +02:00
Kenichi Saito c4950a945c fix: detect disabled Developer Tools mode for iOS runner (#792)
* fix: terminate simulator runner apps during cleanup

* fix: detect disabled developer mode before iOS runner startup
2026-06-13 11:59:37 +02:00
Michał Pierzchała 1ce2e97175 0.17.3 2026-06-13 11:48:03 +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 8de4dddd54 fix: tighten ios runner crash classification (#797) 2026-06-13 07:43:41 +02:00
Michał Pierzchała 4f0886d110 fix: improve iOS runner crash diagnostics (#793)
* fix: improve ios runner crash diagnostics

* fix: keep runner failure helpers internal
2026-06-12 20:51:57 +02:00
Michał Pierzchała 96534e860b fix: stream replay suite progress (#795)
* fix: stream replay suite progress

* fix: tighten replay progress cancellation
2026-06-12 20:51:40 +02:00
Michał Pierzchała dd5c0be0ed fix: relax Android snapshot helper session timeout (#796)
* fix: relax Android snapshot helper session timeout

* test: cover Android helper session timeout cap
2026-06-12 20:50:57 +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 4142daa0c3 docs: update internal agent guidance (#789) 2026-06-12 14:58:18 +02:00
Michał Pierzchała c925563959 fix: avoid focusing booted iOS simulators (#790) 2026-06-12 14:57:58 +02:00
Michał Pierzchała 1da6fd5180 refactor: split debug symbols workflow modules (#787)
* refactor: split debug symbols workflow modules

* refactor: simplify debug symbols module dependencies

* refactor: align debug symbols with command families

* refactor: move Apple debug symbols under ios platform
2026-06-12 14:44:50 +02:00
Michał Pierzchała c7c9db7439 refactor: split Android native perf collector (#788)
* refactor: split Android native perf collector

* fix: keep android perf hint helper local

* refactor: simplify android perf artifact polling
2026-06-12 14:28:03 +02:00
Michał Pierzchała fa1c1d55da refactor: localize command surface modules (#772)
* refactor: localize command surface modules

* refactor: localize command runtime modules

* refactor: tighten localized command exports

* refactor: address command localization review

* refactor: deepen batch command policy

* refactor: split provider progress model

* refactor: collapse command client facets

* refactor: run progress metrics as TypeScript

* refactor: remove obsolete command shims

* fix: update localized snapshot output import

* fix: preserve debug command localization
2026-06-12 14:02:04 +02:00
Michał Pierzchała 48c121d5e6 feat: add debug symbols workflow (#756) 2026-06-12 13:14:14 +02:00
Michał Pierzchała f0d1674cdf feat: add Android native perf profiling (#757)
* feat: add Android native perf profiling

* fix: satisfy fallow for Android perf profiling

* fix: harden Android native perf lifecycle

* test: reduce native perf mock complexity

* docs: show compact native perf evidence example

* fix: align perf rebase validation

* fix: summarize Android perfetto artifacts

* fix: clean up Android native perf on session close
2026-06-12 13:12:41 +02:00
Michał Pierzchała 385c1dd655 fix(daemon): use snapshot quality for sparse handling (#779)
* fix(daemon): use snapshot quality for sparse handling

* fix(daemon): preserve sparse snapshot verdict state

* fix(daemon): route sparse verdicts through selector reads
2026-06-12 13:04:39 +02:00