fix: keep iOS runner hot across app closes#700
Open
thymikee wants to merge 6 commits into
Open
Conversation
Size Report
Startup median (7 runs, lower is better):
Top changed chunks:
|
857f409 to
8f9f7fc
Compare
58aebf3 to
767eb2b
Compare
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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
Keep the iOS simulator XCTest runner reusable across idle gaps, Maestro-style app closes, app relaunches, and local runner source/cache changes.
open --relaunchfrom stopping the iOS simulator runner, so stopApp/relaunch does not force the next command to relaunch XCTestdocs/adr/0004-ios-snapshot-backend-strategy.md: full recursive XCTest snapshots remain the rich diagnostic path, compact interactive snapshots are the bounded agent-facing path, and Bluesky-class semantic coverage needs a future simulator AX-service backend rather than more XCTest retriesRoot Cause
The slow/empty
snapshot -i -cbehavior came from two separate issues:kAXErrorIllegalArgument.This PR now treats compact interactive snapshots as their own bounded strategy. It does not pretend XCTest can semantically inspect every app. When XCTest typed queries cannot enumerate controls either, the CLI returns a fast sparse snapshot with a warning. A complete semantic fix for those apps should be a simulator AX-service backend normalized into the existing
SnapshotNodemodel.Validation
pnpm exec vitest run src/platforms/ios/__tests__/runner-session.test.tspnpm exec vitest run src/__tests__/runtime-snapshot.test.tspnpm check:fallowpnpm check:quickpnpm buildpnpm build:xcuitest:iosprepare ios-runner4.7s from fresh state;snapshot -i -c1.46s with visible Settings refs.kAXErrorIllegalArgumentsparse-tree behavior; optimizedsnapshot -i -creturns bounded sparse output in 0.64s instead of spending ~10-60s on root/window/app probes and runner restarts.