feat(xctest): disable quiescence waits by default - #10
Merged
Merged
Conversation
Benchmarks on the pressAndDragWithVelocity endpoint showed the idle waits are the dominant gesture latency: an identical 0.8s drag takes 1.2s with quiescence off versus 2.8-2.9s with upstream defaults. Flip the two places that default the flag to YES: the process-level fallback for unconfigured apps (covers session-less usage and fb_activeApplication) and the missing-capability branch when a session launches an app. Sessions opt back in per app via the existing shouldWaitForQuiescence capability, in which case waitForIdleTimeout (10s) and animationCoolOffTimeout (2s) keep governing the waits, both still adjustable through /appium/settings. The forced stability wait in fb_waitUntilStableWithTimeout (post-W3C-actions cool-off) is unaffected. Measured: default session 1.2-1.5s per gesture with zero configuration; with shouldWaitForQuiescence=true the waits return (2.6-3.2s). Co-Authored-By: Claude Fable 5 <[email protected]>
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
fb_shouldWaitForQuiescencenow defaults to NO in both places that previously defaulted to YES — the process-level fallback inXCUIApplicationProcess+FBQuiescence.m(covers session-less usage /fb_activeApplication) and the missing-capability branch inFBSessionCommands.launchApplication:. This removes the pre/post-gesture idle waits that benchmarked as the dominant latency (identical 0.8 s drag: ~1.2 s vs 2.8–2.9 s).waitForIdleTimeoutstays 10 s andanimationCoolOffTimeoutstays 2 s: they govern the waits whenever quiescence is enabled (via theshouldWaitForQuiescencecapability) and remain adjustable through/appium/settings. The forced post-W3C-actions stability wait (fb_waitUntilStableWithTimeout) is unaffected by the new default.testQuiescenceWaitsAreDisabledByDefault(TDD'd: red on upstream default, green after).Test Plan
XCUIApplicationHelperTests,FBW3CTouchActionsIntegrationTests, andFBMobilerunActionsIntegrationTestsclasses pass (iPhone 17 Pro / iOS 26.4 sim).shouldWaitForQuiescence: truerestores the waits (2.6–3.2 s).🤖 Generated with Claude Code