callstack / callstack/agent-device
WebDriver endpoint-plan lowering has never been executed by a real driver
- 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
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