callstack / callstack/agent-device

WebDriver endpoint-plan lowering has never been executed by a real driver

Open
#1,585 0 comments 0 reactions 0 assignees View on GitHub
needs-triage
Dominant language
TypeScript
Stars
4.6k
Forks
299
Avg merge
10h 14m
Merged PRs (30d)
537

Description

Follow-up to #1572.

#1572 changed what WebDriver sends for a one-contact gesture. Before, `pointerActions()` emitted one `pointerMove` per 16 ms planned sample; now the canonical plan carries only its endpoints, so it emits:

```
pointerMove duration=0 -> start
pointerDown
pointerMove duration= -> end
pointerUp
```

ADR 0013 records the reasoning: "the driver owns interpolation across that W3C tick". That is a fair reading of the W3C Actions algorithm, and for a conforming driver the result should be equivalent or smoother than the old stream.

## The gap

No real driver has run it.

- `packages/provider-webdriver/src/webdriver-interactor.test.ts` (added in #1572) pins the action sequence against a stub `WebDriverClient`.
- The `cloud-webdriver-*` provider scenarios in `test/integration/provider-scenarios/` run against a fake server.
- No workflow in `.github/workflows/` touches a real grid.

So the behavior change shipped for the web and cloud paths on specification reasoning alone. The failure mode if the assumption is wrong is not an error — it is a gesture that lands as a jump, or does nothing, with a successful response.

## Suggested resolution

One live pan against a reachable grid, checking that content actually moved and roughly honored the requested duration. Record the result in ADR 0013 next to the interpolation claim, so the assumption is either backed by evidence or replaced with an explicit endpoint-expansion lowering on the WebDriver side (mirroring what Android does in `src/platforms/android/touch-plan.ts`).

Contributor guide

Open the contributing guide

Research direction

Start with packages/provider-webdriver/src/webdriver-interactor.test.ts, the cloud provider scenarios in test/integration/provider-scenarios/, .github/workflows/, and ADR 0013; compare the WebDriver lowering with src/platforms/android/touch-plan.ts. Run one live pan against a reachable grid and verify that content moves for roughly the requested duration. Done means the result is recorded in ADR 0013, or the WebDriver path explicitly expands endpoints if the assumption fails.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
testing-qa
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.