# Contributor handoff — sindresorhus/got

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

# Contributor handoff — sindresorhus/got

Scanned commit e1d87d2ced01d5b7d855a7dc8b091bf7b014a1e4 (2026-09-20). Generated by codevetter codevetter 1.15.0 on 2026-10-02.

Source inspection; upstream code and tests were not executed.

Begin at the factory, normalized options, shared Request engine, and Promise adapter before editing public behavior. Tests and CI were inspected, not executed, and this brief does not establish exhaustive coverage or passing checks. Focus changes on the owning layer while checking the corresponding Promise, stream, and follow-up paths. Preserve public typing, generated-header distinctions, and resource cleanup contracts.
- Read source/index.ts and create.ts for public dispatch, Options for normalization, Request.flush() for lifecycle entry, and asPromise() for buffered completion before changing request semantics. — [source/index.ts#L1-L27](https://github.com/sindresorhus/got/blob/e1d87d2ced01d5b7d855a7dc8b091bf7b014a1e4/source/index.ts#L1-L27) [source/create.ts#L85-L118](https://github.com/sindresorhus/got/blob/e1d87d2ced01d5b7d855a7dc8b091bf7b014a1e4/source/create.ts#L85-L118) [source/core/index.ts#L451-L490](https://github.com/sindresorhus/got/blob/e1d87d2ced01d5b7d855a7dc8b091bf7b014a1e4/source/core/index.ts#L451-L490) [source/as-promise/index.ts#L38-L55](https://github.com/sindresorhus/got/blob/e1d87d2ced01d5b7d855a7dc8b091bf7b014a1e4/source/as-promise/index.ts#L38-L55)
- Public API changes must account for source/types.ts, RequestPromise types, exports, and compile-time assertions; RequestPromise is intentionally a type alias and does not support interface-merging augmentation. — [source/types.ts#L42-L72](https://github.com/sindresorhus/got/blob/e1d87d2ced01d5b7d855a7dc8b091bf7b014a1e4/source/types.ts#L42-L72) [source/as-promise/types.ts#L4-L30](https://github.com/sindresorhus/got/blob/e1d87d2ced01d5b7d855a7dc8b091bf7b014a1e4/source/as-promise/types.ts#L4-L30) [source/index.ts#L15-L27](https://github.com/sindresorhus/got/blob/e1d87d2ced01d5b7d855a7dc8b091bf7b014a1e4/source/index.ts#L15-L27) [test/extend.types.ts#L20-L49](https://github.com/sindresorhus/got/blob/e1d87d2ced01d5b7d855a7dc8b091bf7b014a1e4/test/extend.types.ts#L20-L49)
- Preserve the public URL call contract and explicit-header semantics: url inside options objects is rejected, while sensitive follow-up headers explicitly supplied by callers are handled differently from inherited/generated headers. — [source/create.ts#L40-L68](https://github.com/sindresorhus/got/blob/e1d87d2ced01d5b7d855a7dc8b091bf7b014a1e4/source/create.ts#L40-L68) [source/core/options.ts#L2850-L2884](https://github.com/sindresorhus/got/blob/e1d87d2ced01d5b7d855a7dc8b091bf7b014a1e4/source/core/options.ts#L2850-L2884) [source/core/index.ts#L2468-L2474](https://github.com/sindresorhus/got/blob/e1d87d2ced01d5b7d855a7dc8b091bf7b014a1e4/source/core/index.ts#L2468-L2474)
- For later authorized validation, select relevant AVA files such as retry.ts, redirects.ts, pagination.ts, request-timeout.ts, cache.ts, or https.ts under the tsx import hook; npm run test is the repository's combined lint/type/runtime check and coverage has its own script. — [package.json#L17-L19](https://github.com/sindresorhus/got/blob/e1d87d2ced01d5b7d855a7dc8b091bf7b014a1e4/package.json#L17-L19) [test/retry.ts#L1863-L1892](https://github.com/sindresorhus/got/blob/e1d87d2ced01d5b7d855a7dc8b091bf7b014a1e4/test/retry.ts#L1863-L1892) [test/pagination.ts#L1453-L1495](https://github.com/sindresorhus/got/blob/e1d87d2ced01d5b7d855a7dc8b091bf7b014a1e4/test/pagination.ts#L1453-L1495) [test/request-timeout.ts#L15-L29](https://github.com/sindresorhus/got/blob/e1d87d2ced01d5b7d855a7dc8b091bf7b014a1e4/test/request-timeout.ts#L15-L29)
- Use withServer/withServer.exec and real local test servers for regressions; maintainer.md identifies nock's process-wide interception as a test isolation trap. — [maintainer.md#L3-L5](https://github.com/sindresorhus/got/blob/e1d87d2ced01d5b7d855a7dc8b091bf7b014a1e4/maintainer.md#L3-L5) [test/helpers/with-server.ts#L22-L31](https://github.com/sindresorhus/got/blob/e1d87d2ced01d5b7d855a7dc8b091bf7b014a1e4/test/helpers/with-server.ts#L22-L31) [test/helpers/with-server.ts#L67-L73](https://github.com/sindresorhus/got/blob/e1d87d2ced01d5b7d855a7dc8b091bf7b014a1e4/test/helpers/with-server.ts#L67-L73) [test/redirects.ts#L910-L915](https://github.com/sindresorhus/got/blob/e1d87d2ced01d5b7d855a7dc8b091bf7b014a1e4/test/redirects.ts#L910-L915)
- Preserve tab indentation, LF endings, ESM .js import suffixes, and npm's package-lock=false configuration; generated dist is ignored, and npm run build deletes it before compilation. — [.editorconfig#L1-L12](https://github.com/sindresorhus/got/blob/e1d87d2ced01d5b7d855a7dc8b091bf7b014a1e4/.editorconfig#L1-L12) [.npmrc#L1-L1](https://github.com/sindresorhus/got/blob/e1d87d2ced01d5b7d855a7dc8b091bf7b014a1e4/.npmrc#L1-L1) [.gitignore#L1-L5](https://github.com/sindresorhus/got/blob/e1d87d2ced01d5b7d855a7dc8b091bf7b014a1e4/.gitignore#L1-L5) [source/index.ts#L1-L3](https://github.com/sindresorhus/got/blob/e1d87d2ced01d5b7d855a7dc8b091bf7b014a1e4/source/index.ts#L1-L3) [package.json#L21-L25](https://github.com/sindresorhus/got/blob/e1d87d2ced01d5b7d855a7dc8b091bf7b014a1e4/package.json#L21-L25)
- Treat retry/body cleanup, cross-origin follow-up merges, and HTTP/2 pool identity as coupled edit boundaries; shared helpers are used by both afterResponse retry callbacks and pagination. — [source/core/index.ts#L625-L660](https://github.com/sindresorhus/got/blob/e1d87d2ced01d5b7d855a7dc8b091bf7b014a1e4/source/core/index.ts#L625-L660) [source/core/options.ts#L2887-L2921](https://github.com/sindresorhus/got/blob/e1d87d2ced01d5b7d855a7dc8b091bf7b014a1e4/source/core/options.ts#L2887-L2921) [source/as-promise/index.ts#L125-L131](https://github.com/sindresorhus/got/blob/e1d87d2ced01d5b7d855a7dc8b091bf7b014a1e4/source/as-promise/index.ts#L125-L131) [source/create.ts#L310-L315](https://github.com/sindresorhus/got/blob/e1d87d2ced01d5b7d855a7dc8b091bf7b014a1e4/source/create.ts#L310-L315) [source/core/utils/http2-client.ts#L209-L233](https://github.com/sindresorhus/got/blob/e1d87d2ced01d5b7d855a7dc8b091bf7b014a1e4/source/core/utils/http2-client.ts#L209-L233)
- Tests and CI in this brief were inspected, not executed; the Ubuntu-only workflow, skipped body-error test, and expected-failing 304 metadata test define concrete limits on evidence, so future agents must report actual runtime results separately. — [.github/workflows/main.yml#L13-L26](https://github.com/sindresorhus/got/blob/e1d87d2ced01d5b7d855a7dc8b091bf7b014a1e4/.github/workflows/main.yml#L13-L26) [test/stream.ts#L929-L939](https://github.com/sindresorhus/got/blob/e1d87d2ced01d5b7d855a7dc8b091bf7b014a1e4/test/stream.ts#L929-L939) [test/cache.ts#L1082-L1100](https://github.com/sindresorhus/got/blob/e1d87d2ced01d5b7d855a7dc8b091bf7b014a1e4/test/cache.ts#L1082-L1100)

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)
