Repository navigation
fix(mobile): keep locator polling through unreadable android snapshots - #1166
Conversation
There was a problem hiding this comment.
All reported issues were addressed across 5 files
Reply with feedback, questions, or to request a fix.
View guided diff | Turn on auto-fix | Re-trigger cubic
🟢 e2e android agent: 20 passed24 agent steps · 15 replayed from cache · 35 model calls · 175.5k tokens (87% cached) · $0.0100 All 20 tests in 1 file
e2e 0.21.1 · 8m 8s · android-emulator · run artifacts |
🟢 e2e ios: 53 passed, 1 skippedAll 54 tests in 7 files
e2e 0.21.1 · 6m 52s · ios-simulator · run artifacts |
🟢 e2e android: 55 passed, 1 skippedAll 56 tests in 7 files
e2e 0.21.1 · 9m 56s · android-emulator · run artifacts |
🟢 e2e ios agent: 1 flaky, 20 passed, 1 skipped25 agent steps · 9 replayed from cache · 68 model calls · 486.4k tokens (83% cached) · $0.0329
|
| Test | Agent | Time | |
|---|---|---|---|
| tests-agent/scenarios.e2e.ts · 1 flaky, 20 passed, 1 skipped | 25 steps · 68 calls | 16m 11s | |
| 🟢 | act completes Login Form | 1 step · 7 calls | 1m 24s |
| 🟢 | act completes Infinite Scroll List | 1 step | 1m 2s |
| 🟢 | act completes Modal Flow | 1 step | 17.8s |
| 🟢 | act completes Bottom Tabs | 1 step | 11.9s |
| 🟢 | act completes Text Input Variations | 1 step | 21.1s |
| 🟢 | act completes Broken Accessibility | 2 steps · 5 calls | 54.7s |
| 🟢 | act completes Vision Only | 2 steps · 6 calls | 1m 0s |
| act completes Gestures (1 failed attempt first) | 1 step · 8 calls | 1m 11s | |
| 🟢 | act completes Async States | 1 step · 6 calls | 39.2s |
| 🟢 | act completes Debounced Search | 1 step · 3 calls | 20.6s |
| 🟢 | act completes Flattened Registration Form | 2 steps · 1 call | 38.9s |
| 🟢 | act completes Flattened Login | 2 steps · 13 calls | 2m 33s |
| 🟢 | act completes Sticky Chrome Target | 1 step | 27.3s |
| 🟢 | act completes WebView Accessibility | 1 step | 21.2s |
| 🟢 | act completes Permission Prompt | 1 step · 2 calls | 45.3s |
| 🟢 | act completes Photo Picker | 1 step · 2 calls | 40.9s |
| 🟢 | act completes Product Catalog | 1 step | 17.5s |
| 🟢 | act completes Error Recovery | 1 step · 1 call | 28.4s |
| 🟢 | act completes Choice Controls | 1 step · 7 calls | 1m 17s |
| 🟢 | act completes Stripe PaymentSheet | 1 step · 7 calls | 1m 1s |
| 🟢 | act completes Apple Pay | 1 step | 18.3s |
| ⏭️ | act completes Apple Pay Billing Address (skipped: the CI simulator's Apple Pay sheet skips the billing-address step, so the scenario cannot be completed there) |
e2e 0.21.1 · 17m 38s · ios-simulator · run artifacts
What and why
COMMAND_FAILEDwithdetails.androidSnapshotHelperFailureReason(empty-helper-output,content-poor-app-window,system-window-only) when an Android snapshot has no usable app content, e.g. while the app is still loading.translateErrormapped it to non-retryableENGINE_FAILURE, soresolveOncestopped polling andtoBeVisiblefailed immediately instead of waiting out its timeout.locate()now treats an unreadable capture as zero matches and keeps polling. If the capture overruns the time budget, the original error is rethrown.not.toBeVisible(),count()andisVisible()see 0 matches. Alternative is a retryableNODE_STALE; open to switching.Verified
Ran it locally: yes - unit tests and
pnpm checkonly, not on a real emulator.packages/mobile/tests/unit/engine.test.ts.Checklist
pnpm changeset) for any change to a published package, or the change is testbed, docs, or CI only.!, the changeset body names what breaks and what replaces it, and the deprecation warning landed a window earlier (stability policy in CONTRIBUTING.md).docs/**/*.mdxpage for the behavior, andskills/e2e/if the skill describes it..d.tsreviewed,tests/types/sdk-types.tsupdated; wire change edits the schema and both fixtures.e2e/engine): changesets fore2e,@e2e-dev/web, and@e2e-dev/mobile.