refactor: extract WebDriver provider package - #1504
Conversation
Size Report
Startup median (7 runs, lower is better):
Top changed chunks:
|
|
|
Reviewed at What's right
1. The XML fork — sequencing, given
|
|
Reviewed Not ready: the exact-head Coverage gate is genuinely red at 2/5 changed lines (40% vs 70%). The uncovered lines are Keep this draft/unlabeled as well until applicable live BrowserStack and AWS session evidence is attached; deterministic transcripts do not replace the repository’s device/provider readiness evidence. Residual risk: no separately authorized cross-vendor review was performed. |
21f6b3c to
efb54db
Compare
|
Implemented the full review on head Named regression mapping
Provider definitions auditThe former static definition table is now a facade-owned factory solely so XML consolidation
Validation
|
|
Independent follow-up review at |
|
Exact-head CI follow-up for |
|
Reviewed This remains draft and not ready to merge: GitHub currently reports a merge conflict with |
efb54db to
e1a540a
Compare
|
Reconciliation follow-up: the merge-conflict requirement from this review is resolved. The branch is rebased onto merged #1506 at exact head The PR remains draft because the independent live BrowserStack + AWS Device Farm evidence requested here is still outstanding; the available Limrun credential does not substitute for either vendor. |
|
Live AWS Device Farm validation completed on exact head Validated through the source-built CLI with an isolated state directory:
This closes the AWS Device Farm live-evidence gap for #1504: real allocation, launch, accessibility retrieval, interaction, release, and artifact retrieval all pass on the current head. BrowserStack live validation remains outstanding. |
|
Follow-up at The exact-head CI run is currently not green: Android and iOS smoke both failed with structured Residual risk: no separately authorized cross-vendor review was performed. |
|
Live BrowserStack validation completed on exact head To conserve device minutes, I reused today's CI-built public test-app APK and ran one minimal session:
This closes the BrowserStack live-evidence gap. Together with the AWS Device Farm run above, both provider paths now have exact-head evidence for real allocation, launch, source parsing, interaction, release, and artifact retrieval. The remaining red native CI checks are separate and still need rerun/green status before merge. |
|
[P1] Reconcile the governing package decision before merge. #1490 explicitly caps the internal package set through W2 at seven named packages and defines W1b as importing only kernel/contracts/npm/node. This head introduces The single XML facade is technically preferable to the prior parser fork, and I found no additional runtime defect. AWS Device Farm and BrowserStack now both have credible exact-head allocation → launch → snapshot → interaction → release → artifact evidence. But the package graph and accepted W1b scope changed without amending #1490. Update that decision with the XML package rationale, allowed consumers, and revised package ceiling (or split it into an approved follow-up), then let the currently running iOS smoke/Android release jobs finish cleanly. Do not apply Residual risk: no separately authorized cross-vendor review was performed. |
|
Addressed the governing-decision mismatch in #1490. The issue now records:
The W1b Done criterion and success metric were updated consistently. No production change was required. Exact head remains |
|
Clean re-review at The XML parser/entity/escaping implementation is singular with no legacy/deep production imports. The CLI → root composition → provider facade → daemon/artifact route has substantive regression coverage, including the real Residual risk: no separately authorized cross-vendor review was performed. |
Summary
Extract BrowserStack and AWS Device Farm behind the private
@agent-device/provider-webdriversingle-root facade, with client version and one narrow host-command capability supplied by root composition.Consolidate generic XML parsing, entity decoding, and escaping in the private
@agent-device/xmlsingle-root facade. Root Apple, provider-webdriver, Android attribute decoding, runtime hints, usbmux, and JUnit now consume that facade; Android streaming node scanning and Apple plist traversal stay local.Restore explicit provider regression coverage for all behaviors named in review while preserving static provider loading and public/cloud behavior. Links #1490.
Validation
VITEST_MAX_WORKERS=4 pnpm check:affected --runpnpm check:coverage-changed --base origin/main— 4/4 changed executable lines, 100%webdriver-xmldeclarationsLive BrowserStack and AWS credential checks were not run locally; deterministic facade/provider transcripts cover their HTTP and host-command contracts.