feat(v9): restore main parity with upstream — port 4 missed monorepo features (caCert, connect-timeout+retry, origin-gate, a11y-browsers)#61
Open
AakashHotchandani wants to merge 1 commit into
Conversation
…t-timeout+retry SDK-6152, origin-gate, a11y-browsers) Ports the four main-only (v9) features that the standalone @main branch was behind the WebdriverIO monorepo @main on: - custom CA trust (SDK-5953, #15313): new src/caCert.ts + fetchWrapper/launcher/ service/types wiring for proxyCaCertificate / BROWSERSTACK_EXTRA_CA_CERTS. - connect-timeout + retry (SDK-6152, #15312): fetchWrapper connectTimeoutMs + cli/cliUtils CLI_CONNECT_TIMEOUT_MS + fetchWithRetry. - external-grid origin gate (#15311): config/launcher isBrowserStackInfra so external-grid runs are not reported as Automate. - accessibility browser expansion (#15208): Safari + Chrome for Testing support in constants + util validation. fetchWrapper.ts is the combined monorepo-main end-state carrying both the CA and connect-timeout changes (grpc-independent; grpc types unchanged, still from ./grpc/generated). Unit tests ported for all four features. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Ports 4 features that exist in
webdriverio/webdriverio@main(packages/wdio-browserstack-service) but were missing from this repo'smain, restoring true v9 parity. All four merged upstream on 2026-06-08/09.caCert.ts,configureCaCertificate,getMergedCa,proxyCaCertificatefetchWrapperconnectTimeoutMs/getDispatcher,CLI_CONNECT_TIMEOUT_MS,CLI_FETCH_MAX_ATTEMPTS,CLI_FETCH_RETRY_BASE_DELAY_MS,fetchWithRetryisBrowserStackInfrawiring inconfig.ts/launcher.tsSUPPORTED_BROWSERS_FOR_ACCESSIBILITY,MIN_BROWSER_VERSIONS_A11Y(_NON_BSTACK), rewrittenvalidateCapsWithA11y/validateCapsWithNonBstackA11yEach carried body is byte-identical to upstream
main(verified by diff — no stubs), adapted only where this repo's structure differs (gRPC types import from local./grpc/index.js, not the@browserstack/wdio-browserstack-servicepackage).fetchWrapper.tsis the combined CA + connect-timeout end-state (both features share it).Why they were missing (root cause — not ordinary drift)
The original standalone snapshot was taken from a working monorepo checkout (~June 1–7) but hand-stamped
version: 9.28.0. These 4 PRs merged June 8–9, before the v9.28.0 tag (June 10) — so they're in the realv9.28.0release but not in the mislabeled snapshot. Every later catch-up sync computeddiff(v9.28.0-tag → 9.29.x), which structurally excludes commits already inside 9.28.0 → permanent blind spot.#58(v8) was unaffected because these features aremain-only.Prevention (follow-ups): extract from an immutable SHA (record it), freeze the monorepo via the removal PR, sync by tree-diff against the recorded SHA (not version-range), and add a CI drift-check diffing
src/against upstream (would have caught the whole missingcaCert.tson day one).Verification
npm run build(buf generate + esbuild + tsc) — green, 0 errors (Node 20).src(grep > 0);caCert.tsrestored.config.test.ts+cli/cliUtils.test.ts49/49 pass;util.test.tsa11y 21/21 pass. (Unrelated 11 failures are pre-existing network/auth artifacts — reproduce identically on pristinemain.)🤖 Generated with Claude Code