Skip to content

feat: add cloud WebDriver artifact support#948

Open
thymikee wants to merge 3 commits into
mainfrom
codex/cloud-webdriver-provider-runtime
Open

feat: add cloud WebDriver artifact support#948
thymikee wants to merge 3 commits into
mainfrom
codex/cloud-webdriver-provider-runtime

Conversation

@thymikee

@thymikee thymikee commented Jun 30, 2026

Copy link
Copy Markdown
Member

Summary

Adds a reusable agent-device/cloud-webdriver provider-runtime module for BrowserStack, AWS Device Farm, and custom Appium/WebDriver clouds. The module keeps provider-specific WebDriver session setup, capabilities, upload/release behavior, snapshot conversion, gestures, and artifact mapping out of daemon routing.

Adds a shared CloudArtifact surface with CLI and typed-client access through artifacts [provider-session-id] --provider <name> / client.sessions.artifacts(...), plus provider release payloads from close --json and disconnect --json when a runtime returns final artifacts. artifacts now also infers the active cloud provider session from the stored lease before disconnect, while historical lookup still supports BrowserStack credentials and the AWS CLI credential chain.

Hardens the user-facing artifact UX: ready provider URLs are printed directly by the explicit artifacts command, pending/unavailable results include an exact retry command, canonical built-in provider names are exported from agent-device/cloud-webdriver, and the provider undefined vs unavailable contract is documented.

Updates docs and domain vocabulary for cloud artifacts, the new cloud-webdriver subpath, sensitive provider URLs, and the provider workflow. Scope: 52 touched files, mostly the new isolated module plus focused docs and provider tests.

Validation

Static and packaging checks passed: tsc -p tsconfig.json, oxlint . --deny-warnings, scoped oxfmt --check, rslib build, package export tests, MCP metadata sync, fallow audit --base origin/main, and git diff --check.

Focused tests passed: CLI/help plus default cloud artifact provider tests; daemon lifecycle, command registry, request handler catalog, provider runtime, CLI client commands, management output, command descriptor parity, and package exports.

Integration checks passed: full unit suite with local server/process permissions, provider-backed integration progress check, Node integration smoke suite, provider integration suite, cloud WebDriver runtime scenario, BrowserStack adapter scenario, and AWS Device Farm adapter scenario.

Hardening checks from this pass passed: active-session artifacts inference after open, handled-unavailable artifact lookup behavior, plain text artifact URL output, exact retry command output, and provider adapter artifact mapping.

Live verification passed without opening new cloud device minutes: agent-device artifacts returned ready BrowserStack artifacts for an existing session (video, Appium log, device log, dashboard links) and ready AWS Device Farm artifacts for an existing remote access session (video, Appium log, device logs, automation logs, raw files). Temporary local daemon state from verification was cleaned up.

@github-actions

github-actions Bot commented Jun 30, 2026

Copy link
Copy Markdown
PR Preview Action v1.8.1

QR code for preview link

🚀 View preview at
https://callstack.github.io/agent-device/pr-preview/pr-948/

Built to branch gh-pages at 2026-06-30 08:08 UTC.
Preview will be ready when the GitHub Pages deployment is complete.

Comment thread src/cloud-webdriver/browserstack.ts Fixed
@github-actions

github-actions Bot commented Jun 30, 2026

Copy link
Copy Markdown

Size Report

Metric Base Current Diff
JS raw 1.4 MB 1.4 MB +29.4 kB
JS gzip 455.7 kB 465.2 kB +9.5 kB
npm tarball 561.2 kB 573.7 kB +12.5 kB
npm unpacked 2.0 MB 2.0 MB +52.9 kB

Startup median (7 runs, lower is better):

Scenario Base Current Diff
CLI --version 28.7 ms 28.5 ms -0.2 ms
CLI --help 49.8 ms 50.0 ms +0.2 ms

Top changed chunks:

Chunk Raw diff Gzip diff
dist/src/2659.js +25.4 kB +7.8 kB
dist/src/9722.js +1.3 kB +507 B
dist/src/2948.js +1.6 kB +450 B
dist/src/session.js +166 B +66 B
dist/src/cli.js +70 B +37 B

@thymikee thymikee force-pushed the codex/cloud-webdriver-provider-runtime branch 4 times, most recently from 20b420e to 99d3f75 Compare June 30, 2026 07:26
@thymikee thymikee force-pushed the codex/cloud-webdriver-provider-runtime branch from 99d3f75 to 83a8298 Compare June 30, 2026 07:30
@thymikee thymikee force-pushed the codex/cloud-webdriver-provider-runtime branch from ad75be7 to b7ec3e3 Compare June 30, 2026 08:07
@thymikee

Copy link
Copy Markdown
Member Author

Reviewed the cloud WebDriver artifact support path.

I traced the shipped command route from CLI/typed client input through command projection, daemon lease routing, active-session lease inference, provider runtime artifact lookup, and close/disconnect release payloads. The important paths are covered by tests: active-session artifacts before release, handled-unavailable artifact lookup, provider release payloads, BrowserStack/AWS artifact mapping, CLI text/JSON output, command descriptor routing, and package exports.

Checks are green, and the PR body includes live verification for existing BrowserStack and AWS Device Farm sessions without opening new cloud minutes. I do not see remaining actionable blockers; ready for human review/merge judgment.

@thymikee thymikee added the ready-for-human Valid work that needs human implementation, judgment, or maintainer merge label Jun 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ready-for-human Valid work that needs human implementation, judgment, or maintainer merge

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants