refactor(provider-webdriver): ship BrowserStack as the `@agent-device/browserstack` plugin
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 35/100
- Tipo di issue
- Refactoring
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- node.js, typescript
- Ambito
- devtools
Direzione di ricerca
First confirm #3312 has landed on main, then read the existing BrowserStack implementation in packages/provider-webdriver and the packaging template in packages/provider-testmu. Move the named modules and tests into packages/provider-browserstack, update core, docs, and provider-scenario tests as specified, and run the listed checks plus a live session. Done when the package check and affected checks pass, the default install shrinks without budget exceptions, and the live session is recorded in the PR.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Purpose and evidence
0.22 stops bundling hosted device providers with the default installation. BrowserStack already presents the plugin factory shape inside core: packages/provider-webdriver/src/browserstack-provider.ts returns { webDriver, connection } next to a manifest-shaped declaration (CLOUD_WEBDRIVER_PROVIDER_DECLARATIONS in providers.ts), composed through the same route an installed WebDriver plugin uses (PR #3312). TestMu (packages/provider-testmu, #3118) is the packaging template: bundled ESM, agentDevicePlugin manifest, ./connection-verification subpath, test/package-smoke.mjs, release through scripts/release-workspace.mjs.
Required behavior and boundary
- New workspace package
packages/provider-browserstackpublishing@agent-device/browserstack, versioned with core, built with tsdown like TestMu. Its default export is(host: ProviderPluginHost) => { webDriver, connection }; the manifest declaresprovider: "browserstack", theconnectioncapabilities andcredentialVariables: ["BROWSERSTACK_USERNAME", "BROWSERSTACK_ACCESS_KEY"]exactly asCLOUD_WEBDRIVER_PROVIDER_DECLARATIONSdoes today. - Move the BrowserStack modules out of
provider-webdriver(browserstack.ts,browserstack-provider.ts,browserstack-connection.ts,browserstack-connection-verification.ts,browserstack-device-features.ts, their tests, and thebs://helpers fromproviders.ts).provider-webdriverkeeps the shared engine and the./pluginsurface only. - Core drops
browserstackfromBUNDLED_CLOUD_WEBDRIVER_PROVIDERSand fromRESERVED_PLUGIN_PROVIDERS; the connect route, credential fingerprint, and daemon composition keep working through the plugin manifest with no provider-name branch left insrc/. agent-device connect browserstackwithout the plugin fails with the existing unknown-provider error namingplugins add @agent-device/browserstack; help,website/docs/docs/browserstack.md,device-clouds.md,plugins.md("remain bundled"), and the README move the provider to the plugin install flow.
agent-device plugins add @agent-device/browserstack
export BROWSERSTACK_USERNAME=... BROWSERSTACK_ACCESS_KEY=...
agent-device connect browserstack --platform android --device "Google Pixel 8" --provider-os-version 14.0 --provider-app bs://app-id
Completion and validation
node scripts/check-provider-plugin.mjs packages/provider-browserstackpasses (packed install, host-recognized errors, CLI connect).- Provider-scenario integration tests that today build the BrowserStack runtime through
createBundledCloudWebDriverRuntimesrun the plugin factory throughcreateCloudWebDriverRuntimethe way the TestMu scenarios do. pnpm check:affected --runpasses; the Size report shows the default install shrinking by the BrowserStack modules; eager-closure budgets need no approval row.- One live BrowserStack session (connect, open, snapshot, close, artifacts) with the packed plugin, recorded in the PR.
Dependencies and readiness
Blocked by: #3312 landing on main. Sibling: the AWS Device Farm and Limrun extractions in this milestone; land this one first, it needs no plugin-host change.
Effort: M. Risk: low (shape already proven by TestMu; user-visible change is the install step).
- Lingua principale
- TypeScript
- Stelle
- 4.9k
- Fork
- 328
- Merge medio
- 12h 18m
- PR unite (30g)
- 538
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di callstack/agent-device
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
callstack/agent-device#3353 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
callstack/agent-device#1869 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 45/100
callstack/agent-device#3392 ·
I maintainer di solito rispondono entro 1 giorno
-
settings permission --app writes a display name as the bundle id instead of resolving itForse già presa @thymikee l’ha presa oggi. Aperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 22/100
callstack/agent-device#3384 ·
I maintainer di solito rispondono entro 1 giorno
-
iOS: a canceled request releases the session lock while its runner command still runs on the deviceForse già presa @thymikee l’ha presa oggi. Aperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 22/100
callstack/agent-device#3383 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di callstack/agent-device
Issue simili
-
effort:S priority:P2
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
cameri/nostream#811 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
dam-agents/dam#4562 ·
I maintainer di solito rispondono entro 1 giorno
-
bug p3 triaged
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
I maintainer di solito rispondono entro 1 giorno
-
bug javascript P2-medium python release:v3.1
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
adrirubio/claude-deck#546 ·
I maintainer di solito rispondono entro 1 giorno