refactor: simplify Android helper, fill, and scroll contracts

Merged
TH
19h ago
+327-223

Summary

Simplify the helper, fill, and verified-scroll code left after the Android performance sweep:

  • Encode helper inspection states and action-specific requests/replies.
  • Parse each fill capture once and emit unconfirmed warnings only at completion.
  • Decode platform/provider scroll evidence at the shared runtime binding, preserving the plugin API and public response fields.
  • Derive each verified scroll decision and fingerprint from one analysis.

Six commits; 27 files. Production +270/-186, existing tests/fixtures +57/-37; no new test cases. Scope includes shared scroll contracts and incomplete-reply rejection for gesture/viewport sessions. Scoped retries, cancellation ordering, and uncertain-mutation refusal remain intact. No latency improvement is claimed.

Validation

At 98af5c3d848ba884371b29d7e36d4a671ad5ac14:

  • pnpm check:affected --run --full --head 98af5c3d848ba884371b29d7e36d4a671ad5ac14 passed: exactCommit=true, checkoutChanged=false.
  • 1,789 test files, 15,427 tests passed; smoke: 73 passed. Optional live lanes were skipped locally.
  • Pixel 7 CI, Android 16/API 36, built helper 0.21.29-dev: test-app fill/clear, screenshot, warm launch, catalog target/edge/zero-pass scrolling passed.
  • Live TCP fault probes: missing screenshot payload fell back to screencap; truncated input reply disclosed unknown after one mutation; fresh-helper recovery passed.
  • Claude Opus reviewed the design and complete diff: no blocking findings.

CI owns full coverage, provider integration, and native/device lanes. Detailed device evidence is in the PR comment.