Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

refactor(provider-webdriver): ship BrowserStack as the `@agent-device/browserstack` plugin

Abierto
#3,309 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
35/100
Tipo de issue
Refactorización
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
node.js, typescript
Área
devtools

Línea de trabajo

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.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

needs-triage refactor

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-browserstack publishing @agent-device/browserstack, versioned with core, built with tsdown like TestMu. Its default export is (host: ProviderPluginHost) => { webDriver, connection }; the manifest declares provider: "browserstack", the connection capabilities and credentialVariables: ["BROWSERSTACK_USERNAME", "BROWSERSTACK_ACCESS_KEY"] exactly as CLOUD_WEBDRIVER_PROVIDER_DECLARATIONS does 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 the bs:// helpers from providers.ts). provider-webdriver keeps the shared engine and the ./plugin surface only.
  • Core drops browserstack from BUNDLED_CLOUD_WEBDRIVER_PROVIDERS and from RESERVED_PLUGIN_PROVIDERS; the connect route, credential fingerprint, and daemon composition keep working through the plugin manifest with no provider-name branch left in src/.
  • agent-device connect browserstack without the plugin fails with the existing unknown-provider error naming plugins 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-browserstack passes (packed install, host-recognized errors, CLI connect).
  • Provider-scenario integration tests that today build the BrowserStack runtime through createBundledCloudWebDriverRuntimes run the plugin factory through createCloudWebDriverRuntime the way the TestMu scenarios do.
  • pnpm check:affected --run passes; 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).

Lenguaje dominante
TypeScript
Estrellas
4.9k
Forks
328
Merge medio
12 h 18 min
PR fusionados (30 d)
561

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de callstack/agent-device

Todos los issues de callstack/agent-device

Issues similares

Más issues de TypeScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.