You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Fix the full fixture-backed iOS nightly assertion to target automation-press, matching the fixture app and the healthy post-app-switcher snapshot captured by the failed run.
Add a host-side coverage guard that verifies literal identifiers used by live iOS scenarios exist as fixture-screen testID values. Future selector drift now fails the regular Node integration lane instead of waiting for nightly device CI.
Root cause: the newly added full-tier scenario used the nonexistent identifier automation-press-canary; agent-device correctly returned automation-press with the app inactive and all buttons non-hittable. No runtime behavior, retries, timeouts, or workflows changed.
Scope stayed within the iOS E2E test family: 2 files touched.
Validation
Reproduced the exact failure with the new guard before the fix: automation-press-canary was the sole missing fixture identifier.
pnpm check:affected --run passed formatting, lint, typecheck, fallow, related-test selection, and the Node integration lane (28 passed, 7 skipped).
The daemon-clean integration test passed in isolation after one contention-shaped failure during the first aggregate attempt.
Exact head d96938a is not ready. The selector fix itself matches the healthy fixture (automation-press), but the new drift guard does not enforce its stated contract: /id=\\"([^"$]+)\\"/g requires literal backslashes and therefore misses ordinary source selectors such as \x27id="automation-last-nonactive"\x27. It currently catches only the identifier === \x27automation-press\x27 form, and it omits live-runner.ts, where live form selectors are owned. All PR checks are green, but the PR iOS job runs the smoke tier; the changed lifecycle assertion runs only in the nightly full tier. Correct the guard so a direct-selector typo makes it fail, include all owned live scenario sources, and provide a fresh exact-head full-tier iOS run before readiness.
Clean re-review at 7253f36. The guard now matches ordinary single- and double-quoted literal id=… selectors and snapshot identifier === … checks, with a focused counterfactual proving typos fail. It scans every live-*.ts iOS E2E source, closing the prior ownership gap. All exact-head PR checks are green, and manually dispatched Replay Nightly run 30530012666 succeeded on this exact SHA, including the full fixture-backed iOS simulator tier that exercises the repaired lifecycle assertion. No remaining findings; ready for human merge.
Preview removed because the pull request was closed.
2026-07-30 10:15 UTC
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
ready-for-humanValid work that needs human implementation, judgment, or maintainer merge
1 participant
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fix the full fixture-backed iOS nightly assertion to target
automation-press, matching the fixture app and the healthy post-app-switcher snapshot captured by the failed run.Add a host-side coverage guard that verifies literal identifiers used by live iOS scenarios exist as fixture-screen
testIDvalues. Future selector drift now fails the regular Node integration lane instead of waiting for nightly device CI.Root cause: the newly added full-tier scenario used the nonexistent identifier
automation-press-canary; agent-device correctly returnedautomation-presswith the app inactive and all buttons non-hittable. No runtime behavior, retries, timeouts, or workflows changed.Scope stayed within the iOS E2E test family: 2 files touched.
Validation
automation-press-canarywas the sole missing fixture identifier.pnpm check:affected --runpassed formatting, lint, typecheck, fallow, related-test selection, and the Node integration lane (28 passed, 7 skipped).