Skip to content

fix: improve Maestro test suite replay#601

Merged
thymikee merged 1 commit into
mainfrom
codex/fix-maestro-test-suite
May 28, 2026
Merged

fix: improve Maestro test suite replay#601
thymikee merged 1 commit into
mainfrom
codex/fix-maestro-test-suite

Conversation

@thymikee
Copy link
Copy Markdown
Member

@thymikee thymikee commented May 28, 2026

Summary

  • Propagate Maestro backend through the structured test command so test --maestro e2e/maestro discovers .yml / .yaml flows instead of filtering as normal .ad replay tests.
  • Improve Maestro compatibility for React Navigation-style suites by promoting child text/id tap targets to bounded actionable ancestors and using the Android content lane for horizontal screen swipes.
  • Preserve original Maestro flow filenames in attempt artifacts, keep normalized diagnostic metadata for replay failures, include failure metadata in JUnit system output, and stop retrying/scheduling the suite after infrastructure startup failures.

Root Cause

React Navigation's Android and iOS jobs both fail before any flow starts:

  • Android: Error (INVALID_ARGS): No replay tests matched for --platform android.
  • iOS: Error (INVALID_ARGS): No replay tests matched for --platform ios.

That points at suite discovery/filtering, not app startup, Metro, install, selectors, emulator, or simulator state. In agent-device@0.16.0, test --maestro parses the CLI flag, but the structured test command input did not include backend / maestro, so command invocation dropped the Maestro backend before daemon suite discovery. Discovery then only considered normal .ad replay tests and platform filtering produced the no-match error.

Validation

  • pnpm exec vitest run src/__tests__/client.test.ts src/daemon/handlers/__tests__/session-replay-vars.test.ts src/daemon/handlers/__tests__/session-test-artifacts.test.ts src/daemon/handlers/__tests__/session.test.ts src/__tests__/cli-network.test.ts
  • pnpm check:quick
  • pnpm build

Known local gap: pnpm check:unit is blocked in this sandbox by local listener permissions (listen EPERM), the child HTTP server used by the Maestro http.post fixture, and Swift script typecheck subprocess failures.

CI Notes

Daemon startup failures can still happen before suite code emits JUnit or attempt artifacts. CI jobs should keep uploading ~/.agent-device/**/*.log alongside --artifacts-dir outputs so daemon/runner startup diagnostics are preserved.

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 28, 2026

PR Preview Action v1.8.1

QR code for preview link

🚀 View preview at
https://callstackincubator.github.io/agent-device/pr-preview/pr-601/

Built to branch gh-pages at 2026-05-28 13:34 UTC.
Preview will be ready when the GitHub Pages deployment is complete.

@thymikee thymikee force-pushed the codex/fix-maestro-test-suite branch 3 times, most recently from 1876c8e to 2274d76 Compare May 28, 2026 13:17
@thymikee thymikee force-pushed the codex/fix-maestro-test-suite branch from 2274d76 to 31f61ad Compare May 28, 2026 13:34
@thymikee thymikee merged commit ee57e1b into main May 28, 2026
19 checks passed
@thymikee thymikee deleted the codex/fix-maestro-test-suite branch May 28, 2026 13:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant