Skip to content

fix: dismiss RN overlays in Maestro compat#650

Merged
thymikee merged 1 commit into
mainfrom
codex/rn-overlay-dismiss-maestro
Jun 1, 2026
Merged

fix: dismiss RN overlays in Maestro compat#650
thymikee merged 1 commit into
mainfrom
codex/rn-overlay-dismiss-maestro

Conversation

@thymikee

@thymikee thymikee commented Jun 1, 2026

Copy link
Copy Markdown
Member

Summary

Stop preferring React Native RedBox Minimize when dismissing overlays.

Make Maestro compat stop auto-running react-native dismiss-overlay during assertions and tap resolution. Explicit Maestro tapOn: Dismiss now clicks the resolved Dismiss control directly, so test failures remain visible and authored flows keep their intended behavior.

Update overlay tests and SkillGym guidance to match the new policy.

Validation

  • pnpm vitest run src/daemon/handlers/__tests__/react-native.test.ts src/compat/maestro/__tests__/runtime-assertions.test.ts src/compat/maestro/__tests__/runtime-interactions.test.ts src/__tests__/runtime-snapshot.test.ts
  • pnpm check:quick

@thymikee thymikee marked this pull request as ready for review June 1, 2026 18:31
@github-actions

github-actions Bot commented Jun 1, 2026

Copy link
Copy Markdown

Size Report

Metric Base Current Diff
JS raw 1.1 MB 1.1 MB -2.2 kB
JS gzip 361.1 kB 360.5 kB -586 B
npm tarball 462.0 kB 461.4 kB -618 B
npm unpacked 1.5 MB 1.5 MB -2.2 kB

Startup median (7 runs, lower is better):

Scenario Base Current Diff
CLI --version 30.5 ms 28.7 ms -1.8 ms
CLI --help 47.3 ms 43.7 ms -3.6 ms

Top changed chunks:

Chunk Raw diff Gzip diff
dist/src/session.js -1.3 kB -366 B
dist/src/9533.js -309 B -82 B

@thymikee thymikee merged commit 2546ca3 into main Jun 1, 2026
18 checks passed
@thymikee thymikee deleted the codex/rn-overlay-dismiss-maestro branch June 1, 2026 18:34
@github-actions

github-actions Bot commented Jun 1, 2026

Copy link
Copy Markdown
PR Preview Action v1.8.1
Preview removed because the pull request was closed.
2026-06-01 18:34 UTC

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: a590d95fe8

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

return await resolveMaestroSnapshotTarget(params, selector, options, 'tapOn', {
promoteTapTarget: true,
});
if (!target.ok) return { response: target.response, targetResolved: false };

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Fail fast when RN overlays block Maestro taps

When a Maestro tapOn targets app content while a React Native RedBox is detected, resolveMaestroSnapshotTarget returns the "React Native overlay is covering app content" failure, but this path now reports targetResolved: false, so attemptMaestroTapOn treats it as retryable and invokeMaestroTapOn keeps re-snapshotting until the full tap timeout (30s, or 3s for optional taps). Since this commit removed the auto-dismiss retry, these overlay-blocked failures are no longer recoverable by waiting; they should return the overlay error immediately like the assertion path does, otherwise authored flows hang for the entire timeout before surfacing the actionable overlay message.

Useful? React with 👍 / 👎.

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