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
{{ message }}
Repository navigation
feat(scroll): support explicit budgets for long target searches - #3837
Long lists exceed the default 12-gesture budget and force costly per-page scroll/snapshot requests. Add explicit maxPasses (1–200) to the existing verified search loop through CLI/Node/MCP and recorded .ad scripts. Canceled requests stop before another capture or gesture.
agent-device scroll down --until 'id="row-512"' --max-passes 90
The policy is shared by local and provider bindings with scroll/capture capabilities; each backend retains its gesture timing and reliability checks. Adapter adoption must preserve container scope, momentum and deadlines. Only Android gains are measured.
25 files: production +128/-56; tests +197/-12; docs +430/-1; gate +1. Scope includes request-signal construction and gesture-help extraction. Context: tester-army/e2e#1234.
Hosted Coverage failed the eager-import budget: flag metadata loaded execution helpers (31 vs 30 modules). Type-only metadata linkage fixes it while compile-time checking the shared maximum. No tests added in this correction. Existing eager-import check: published head 1 failed/852 passed; fix 853 passed.
Full Coverage command passed (16,444 main-suite tests and 11 fuzz-worker tests). Changed-line and changed-branch coverage 100%; coverage/complexity gate passed.
Android ABBA: 55 gestures each; median 44.510 → 27.581 s (38.0% faster), exact target verified. Recording/replay: 6 steps, zero healing. Our app: correct product and one-pass refusal verified.
This PR is ready at 89ccdad. The code looks right, and the shared scroll loop applies the pass budget and cancellation as intended. CI is green (19 checks, none failing), and the earlier Coverage failure is fixed at this head by the type-only import. There are no conflicts, and nothing else blocks merge.
On evidence: I did not re-run the tests or the Android benchmark, and the live numbers and replay run come from the PR's evidence doc. Live coverage is the local Android helper only. Apple, Appium, HarmonyOS, web and provider bindings are covered by the shared-loop source trace and the provider-scenarios integration test. I did not check the new context.signal consumers, such as the macOS native interactor and limrun allocation, for cleanup on cancel.
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
Long lists exceed the default 12-gesture budget and force costly per-page scroll/snapshot requests. Add explicit
maxPasses(1–200) to the existing verified search loop through CLI/Node/MCP and recorded.adscripts. Canceled requests stop before another capture or gesture.agent-device scroll down --until 'id="row-512"' --max-passes 90The policy is shared by local and provider bindings with scroll/capture capabilities; each backend retains its gesture timing and reliability checks. Adapter adoption must preserve container scope, momentum and deadlines. Only Android gains are measured.
25 files: production +128/-56; tests +197/-12; docs +430/-1; gate +1. Scope includes request-signal construction and gesture-help extraction. Context: tester-army/e2e#1234.
Validation
89ccdad99b11c648e3f98e1833e851ab6e69cc1a:pnpm check:affected --run --head 89ccdad99bpassed: 36 checks,exactCommit=true,checkoutChanged=false(receiptrun-g3cFRI).