# Contributor handoff — testing-library/react-testing-library

> Canonical page: https://codevetter.com/unpack/react-testing-library/agent-handoff

# Contributor handoff — testing-library/react-testing-library

Scanned commit 20ce75f2907ca0e5c5a8ae595c0e9a4e368c7800 (2026-08-27). Generated by codevetter codevetter 1.15.0 on 2026-10-02.

Source inspection; upstream code and tests were not executed.

Begin edits at the runtime/type boundary and read the focused behavioral suite before changing contracts. Existing scripts and workflow definitions describe intended validation, but tests and CI were inspected, not executed during this assignment. The investigation is bounded and supplies neither passing results nor exhaustive security or coverage conclusions.
- For lifecycle work, first read index.js, pure.js, and act-compat.js together: runner registration, root ownership, and React's global act flag cross module boundaries. — [src/index.js#L9-L38](https://github.com/testing-library/react-testing-library/blob/20ce75f2907ca0e5c5a8ae595c0e9a4e368c7800/src/index.js#L9-L38) [src/pure.js#L277-L328](https://github.com/testing-library/react-testing-library/blob/20ce75f2907ca0e5c5a8ae595c0e9a4e368c7800/src/pure.js#L277-L328) [src/act-compat.js#L36-L79](https://github.com/testing-library/react-testing-library/blob/20ce75f2907ca0e5c5a8ae595c0e9a4e368c7800/src/act-compat.js#L36-L79)
- Keep public API edits paired with types/index.d.ts and types/test.tsx; CONTRIBUTING identifies handwritten declarations as the API update location. — [CONTRIBUTING.md#L35-L43](https://github.com/testing-library/react-testing-library/blob/20ce75f2907ca0e5c5a8ae595c0e9a4e368c7800/CONTRIBUTING.md#L35-L43) [types/index.d.ts#L171-L182](https://github.com/testing-library/react-testing-library/blob/20ce75f2907ca0e5c5a8ae595c0e9a4e368c7800/types/index.d.ts#L171-L182) [types/test.tsx#L215-L263](https://github.com/testing-library/react-testing-library/blob/20ce75f2907ca0e5c5a8ae595c0e9a4e368c7800/types/test.tsx#L215-L263)
- For an authorized implementation, start with the relevant src/__tests__ suite through npm test, then use typecheck or validate as needed; those commands were only inspected here. — [package.json#L21-L24](https://github.com/testing-library/react-testing-library/blob/20ce75f2907ca0e5c5a8ae595c0e9a4e368c7800/package.json#L21-L24) [src/__tests__/render.js#L12-L32](https://github.com/testing-library/react-testing-library/blob/20ce75f2907ca0e5c5a8ae595c0e9a4e368c7800/src/__tests__/render.js#L12-L32) [src/__tests__/renderHook.js#L10-L22](https://github.com/testing-library/react-testing-library/blob/20ce75f2907ca0e5c5a8ae595c0e9a4e368c7800/src/__tests__/renderHook.js#L10-L22)
- Preserve React 18/19 branches and version-gated assertions; a successful latest-only run would not establish legacy-root compatibility. — [package.json#L65-L70](https://github.com/testing-library/react-testing-library/blob/20ce75f2907ca0e5c5a8ae595c0e9a4e368c7800/package.json#L65-L70) [src/__tests__/render.js#L6-L10](https://github.com/testing-library/react-testing-library/blob/20ce75f2907ca0e5c5a8ae595c0e9a4e368c7800/src/__tests__/render.js#L6-L10) [src/__tests__/render.js#L222-L263](https://github.com/testing-library/react-testing-library/blob/20ce75f2907ca0e5c5a8ae595c0e9a4e368c7800/src/__tests__/render.js#L222-L263)
- Tests changing global configuration capture and restore it; tests mocking console must respect the harness's unexpected-call and teardown checks. — [src/__tests__/config.js#L3-L17](https://github.com/testing-library/react-testing-library/blob/20ce75f2907ca0e5c5a8ae595c0e9a4e368c7800/src/__tests__/config.js#L3-L17) [tests/failOnUnexpectedConsoleCalls.js#L58-L93](https://github.com/testing-library/react-testing-library/blob/20ce75f2907ca0e5c5a8ae595c0e9a4e368c7800/tests/failOnUnexpectedConsoleCalls.js#L58-L93) [tests/failOnUnexpectedConsoleCalls.js#L124-L129](https://github.com/testing-library/react-testing-library/blob/20ce75f2907ca0e5c5a8ae595c0e9a4e368c7800/tests/failOnUnexpectedConsoleCalls.js#L124-L129)
- Use actual scripts as authority over older documentation: CONTRIBUTING mentions dtslint, while package.json's explicit typecheck invokes tsc and the root config includes types without emitting output. — [CONTRIBUTING.md#L35-L43](https://github.com/testing-library/react-testing-library/blob/20ce75f2907ca0e5c5a8ae595c0e9a4e368c7800/CONTRIBUTING.md#L35-L43) [package.json#L23-L24](https://github.com/testing-library/react-testing-library/blob/20ce75f2907ca0e5c5a8ae595c0e9a4e368c7800/package.json#L23-L24) [tsconfig.json#L41-L44](https://github.com/testing-library/react-testing-library/blob/20ce75f2907ca0e5c5a8ae595c0e9a4e368c7800/tsconfig.json#L41-L44)
- Inspect package-manager context before installing: package.json declares Yarn 1.22.22, while contribution setup and CI use npm, and CI explicitly disables lockfile use. — [package.json#L116-L116](https://github.com/testing-library/react-testing-library/blob/20ce75f2907ca0e5c5a8ae595c0e9a4e368c7800/package.json#L116-L116) [CONTRIBUTING.md#L8-L12](https://github.com/testing-library/react-testing-library/blob/20ce75f2907ca0e5c5a8ae595c0e9a4e368c7800/CONTRIBUTING.md#L8-L12) [.github/workflows/validate.yml#L33-L36](https://github.com/testing-library/react-testing-library/blob/20ce75f2907ca0e5c5a8ae595c0e9a4e368c7800/.github/workflows/validate.yml#L33-L36)
- Treat release automation as a separate authority boundary: configured branch pushes can trigger publication, and maintainer documentation warns that BREAKING CHANGE commit text drives major releases. — [.github/workflows/release.yml#L2-L13](https://github.com/testing-library/react-testing-library/blob/20ce75f2907ca0e5c5a8ae595c0e9a4e368c7800/.github/workflows/release.yml#L2-L13) [.github/workflows/release.yml#L81-L115](https://github.com/testing-library/react-testing-library/blob/20ce75f2907ca0e5c5a8ae595c0e9a4e368c7800/.github/workflows/release.yml#L81-L115) [other/MAINTAINING.md#L49-L63](https://github.com/testing-library/react-testing-library/blob/20ce75f2907ca0e5c5a8ae595c0e9a4e368c7800/other/MAINTAINING.md#L49-L63)

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)
