# Contributor handoff — webdriverio/webdriverio

> Canonical page: https://codevetter.com/unpack/webdriverio/agent-handoff

# Contributor handoff — webdriverio/webdriverio

Scanned commit dbf0f497130676040ce4212d9cf6459adfe16c42 (2026-10-01). Generated by codevetter codevetter 1.15.0 on 2026-10-02.

Source inspection; upstream code and tests were not executed.

Begin with the owning package and the smallest relevant lifecycle chain; the inventory and investigation are bounded. Tests and CI were inspected, not executed, and no passing status is asserted. Preserve the distinctions between Node/browser exports, launcher/worker hooks, stub/real sessions, and Classic/BiDi behavior. Proposed validation should remain read-only here and become executable only under appropriate task authorization.
- Use package.json and pnpm-workspace.yaml as the dependency/build authority; tsconfig selects strict NodeNext/ES2022 compilation, and public webdriverio exports require awareness of Node, browser, ESM, and CommonJS surfaces. — [package.json#L1-L5](https://github.com/webdriverio/webdriverio/blob/dbf0f497130676040ce4212d9cf6459adfe16c42/package.json#L1-L5) [pnpm-workspace.yaml#L1-L17](https://github.com/webdriverio/webdriverio/blob/dbf0f497130676040ce4212d9cf6459adfe16c42/pnpm-workspace.yaml#L1-L17) [tsconfig.json#L2-L21](https://github.com/webdriverio/webdriverio/blob/dbf0f497130676040ce4212d9cf6459adfe16c42/tsconfig.json#L2-L21) [packages/webdriverio/package.json#L46-L64](https://github.com/webdriverio/webdriverio/blob/dbf0f497130676040ce4212d9cf6459adfe16c42/packages/webdriverio/package.json#L46-L64)
- For CLI lifecycle changes, read commands/run.ts, Launcher.run/_runSpecs/_endHandler, and Runner.run first; preserve hook order and the retry-budget message sent before requesting a real session. — [packages/wdio-cli/src/commands/run.ts#L193-L268](https://github.com/webdriverio/webdriverio/blob/dbf0f497130676040ce4212d9cf6459adfe16c42/packages/wdio-cli/src/commands/run.ts#L193-L268) [packages/wdio-cli/src/launcher.ts#L103-L149](https://github.com/webdriverio/webdriverio/blob/dbf0f497130676040ce4212d9cf6459adfe16c42/packages/wdio-cli/src/launcher.ts#L103-L149) [packages/wdio-cli/src/launcher.ts#L647-L680](https://github.com/webdriverio/webdriverio/blob/dbf0f497130676040ce4212d9cf6459adfe16c42/packages/wdio-cli/src/launcher.ts#L647-L680) [packages/wdio-runner/src/index.ts#L145-L158](https://github.com/webdriverio/webdriverio/blob/dbf0f497130676040ce4212d9cf6459adfe16c42/packages/wdio-runner/src/index.ts#L145-L158)
- For element behavior, keep changes within the command and relevant lookup/middleware chain; selector, parent, elementId, and BiDi locator fields are functional recovery state rather than incidental metadata. — [packages/webdriverio/src/utils/getElementObject.ts#L66-L101](https://github.com/webdriverio/webdriverio/blob/dbf0f497130676040ce4212d9cf6459adfe16c42/packages/webdriverio/src/utils/getElementObject.ts#L66-L101) [packages/webdriverio/src/middlewares.ts#L23-L73](https://github.com/webdriverio/webdriverio/blob/dbf0f497130676040ce4212d9cf6459adfe16c42/packages/webdriverio/src/middlewares.ts#L23-L73)
- Treat Classic and BiDi as explicit branches: findElement excludes iframe/deep-selector cases from its BiDi path, and screenshot options are rejected in Classic but validated and supported in BiDi. — [packages/webdriverio/src/utils/index.ts#L828-L854](https://github.com/webdriverio/webdriverio/blob/dbf0f497130676040ce4212d9cf6459adfe16c42/packages/webdriverio/src/utils/index.ts#L828-L854) [packages/webdriverio/src/node/saveScreenshot.ts#L64-L109](https://github.com/webdriverio/webdriverio/blob/dbf0f497130676040ce4212d9cf6459adfe16c42/packages/webdriverio/src/node/saveScreenshot.ts#L64-L109)
- Do not interpret root build/setup as passive checks: scripts clean artifacts and generate BiDi sources, whose generator can download specification input and overwrite generated TypeScript files. — [package.json#L9-L29](https://github.com/webdriverio/webdriverio/blob/dbf0f497130676040ce4212d9cf6459adfe16c42/package.json#L9-L29) [scripts/bidi/index.ts#L22-L50](https://github.com/webdriverio/webdriverio/blob/dbf0f497130676040ce4212d9cf6459adfe16c42/scripts/bidi/index.ts#L22-L50)
- If execution is later authorized, select the owning test through the configured Vitest runner first; relevant inspected examples include request.test.ts, launcher.test.ts, and node/saveScreenshot.test.ts. Broader typing, smoke, component, and e2e scripts have distinct prerequisites. — [package.json#L42-L61](https://github.com/webdriverio/webdriverio/blob/dbf0f497130676040ce4212d9cf6459adfe16c42/package.json#L42-L61) [vitest.config.ts#L6-L19](https://github.com/webdriverio/webdriverio/blob/dbf0f497130676040ce4212d9cf6459adfe16c42/vitest.config.ts#L6-L19) [packages/webdriver/tests/request.test.ts#L1-L24](https://github.com/webdriverio/webdriverio/blob/dbf0f497130676040ce4212d9cf6459adfe16c42/packages/webdriver/tests/request.test.ts#L1-L24) [packages/wdio-cli/tests/launcher.test.ts#L1-L25](https://github.com/webdriverio/webdriverio/blob/dbf0f497130676040ce4212d9cf6459adfe16c42/packages/wdio-cli/tests/launcher.test.ts#L1-L25) [packages/webdriverio/tests/node/saveScreenshot.test.ts#L1-L33](https://github.com/webdriverio/webdriverio/blob/dbf0f497130676040ce4212d9cf6459adfe16c42/packages/webdriverio/tests/node/saveScreenshot.test.ts#L1-L33)
- Tests and CI were inspected, not executed: carry forward the limitations that driver setup is skipped in unit tests, coverage is disabled by default, Preact/misc component commands are bypassed, and cloud CI is main-only. — [vitest.config.ts#L17-L32](https://github.com/webdriverio/webdriverio/blob/dbf0f497130676040ce4212d9cf6459adfe16c42/vitest.config.ts#L17-L32) [e2e/package.json#L11-L13](https://github.com/webdriverio/webdriverio/blob/dbf0f497130676040ce4212d9cf6459adfe16c42/e2e/package.json#L11-L13) [e2e/package.json#L29-L29](https://github.com/webdriverio/webdriverio/blob/dbf0f497130676040ce4212d9cf6459adfe16c42/e2e/package.json#L29-L29) [.github/workflows/test.yml#L146-L151](https://github.com/webdriverio/webdriverio/blob/dbf0f497130676040ce4212d9cf6459adfe16c42/.github/workflows/test.yml#L146-L151)
- Keep publication and deployment outside ordinary edits: npm publishing is manually dispatched and depends on publisher-team authorization, whereas documentation deployment is a separate manually dispatched workflow with cloud credential references. — [.github/workflows/publish.yml#L3-L34](https://github.com/webdriverio/webdriverio/blob/dbf0f497130676040ce4212d9cf6459adfe16c42/.github/workflows/publish.yml#L3-L34) [.github/workflows/authorize-publisher.yml#L13-L19](https://github.com/webdriverio/webdriverio/blob/dbf0f497130676040ce4212d9cf6459adfe16c42/.github/workflows/authorize-publisher.yml#L13-L19) [.github/workflows/deploy.yml#L5-L28](https://github.com/webdriverio/webdriverio/blob/dbf0f497130676040ce4212d9cf6459adfe16c42/.github/workflows/deploy.yml#L5-L28)

Every claim links to its cited files at the pinned commit. Citations identify source evidence; they do not establish runtime correctness. Independent CodeVetter scan — not reviewed by upstream maintainers.

## Public product links

- [CodeVetter](https://codevetter.com/)
- [Download](https://codevetter.com/download)
- [Documentation](https://codevetter.com/docs/)
- [Source](https://github.com/Codevetter/codevetter)
