# Contributor handoff — actix/actix-web

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

# Contributor handoff — actix/actix-web

Scanned commit 30c831fce5328ccf916bea77e59ce6419b457e39 (2026-10-02). Generated by codevetter codevetter 1.15.0 on 2026-10-02.

Source inspection; upstream code and tests were not executed.

Start at the affected crate's manifest and follow the service or protocol boundary implicated by the task. Preserve worker-local ownership, shared-data registration, middleware order, and feature-disabled compilation when making future changes. Tests and CI were inspected, not executed, and this brief is bounded rather than exhaustive. The commands below describe available future validation; none were run during this read-only investigation.
- Read Cargo.toml, the affected package manifest, and justfile first: workspace patches ensure cross-crate edits use local implementations, and root lint/MSRV settings apply to member crates. — [Cargo.toml#L16-L21](https://github.com/actix/actix-web/blob/30c831fce5328ccf916bea77e59ce6419b457e39/Cargo.toml#L16-L21) [Cargo.toml#L32-L60](https://github.com/actix/actix-web/blob/30c831fce5328ccf916bea77e59ce6419b457e39/Cargo.toml#L32-L60) [actix-files/Cargo.toml#L16-L20](https://github.com/actix/actix-web/blob/30c831fce5328ccf916bea77e59ce6419b457e39/actix-files/Cargo.toml#L16-L20) [actix-files/Cargo.toml#L42-L43](https://github.com/actix/actix-web/blob/30c831fce5328ccf916bea77e59ce6419b457e39/actix-files/Cargo.toml#L42-L43) [justfile#L32-L68](https://github.com/actix/actix-web/blob/30c831fce5328ccf916bea77e59ce6419b457e39/justfile#L32-L68)
- For request dispatch changes, inspect AppInitService::call, AppRouting::call, ResourceService::call, and handler_service together; guard selection, request reuse, extraction failure, and response conversion span these boundaries. — [actix-web/src/app_service.rs#L221-L249](https://github.com/actix/actix-web/blob/30c831fce5328ccf916bea77e59ce6419b457e39/actix-web/src/app_service.rs#L221-L249) [actix-web/src/app_service.rs#L331-L348](https://github.com/actix/actix-web/blob/30c831fce5328ccf916bea77e59ce6419b457e39/actix-web/src/app_service.rs#L331-L348) [actix-web/src/resource.rs#L562-L569](https://github.com/actix/actix-web/blob/30c831fce5328ccf916bea77e59ce6419b457e39/actix-web/src/resource.rs#L562-L569) [actix-web/src/handler.rs#L102-L118](https://github.com/actix/actix-web/blob/30c831fce5328ccf916bea77e59ce6419b457e39/actix-web/src/handler.rs#L102-L118)
- Construct shared Data outside HttpServer::new and clone it into apps; preserve nearest-layer lookup. Tokio block_in_place is incompatible with worker runtimes, and rt::spawn requires an Actix runtime or manually configured LocalSet. — [actix-web/src/data.rs#L23-L41](https://github.com/actix/actix-web/blob/30c831fce5328ccf916bea77e59ce6419b457e39/actix-web/src/data.rs#L23-L41) [actix-web/src/rt.rs#L34-L39](https://github.com/actix/actix-web/blob/30c831fce5328ccf916bea77e59ce6419b457e39/actix-web/src/rt.rs#L34-L39) [actix-web/src/rt.rs#L61-L62](https://github.com/actix/actix-web/blob/30c831fce5328ccf916bea77e59ce6419b457e39/actix-web/src/rt.rs#L61-L62)
- Preserve optional-feature boundaries: defaults include macros, compression, cookies, HTTP/2, unicode, compatibility, and WebSockets; secure cookies and TLS are separate, and __tls/__compress are private feature markers. — [actix-web/Cargo.toml#L60-L107](https://github.com/actix/actix-web/blob/30c831fce5328ccf916bea77e59ce6419b457e39/actix-web/Cargo.toml#L60-L107) [actix-web/Cargo.toml#L112-L124](https://github.com/actix/actix-web/blob/30c831fce5328ccf916bea77e59ce6419b457e39/actix-web/Cargo.toml#L112-L124) [justfile#L112-L120](https://github.com/actix/actix-web/blob/30c831fce5328ccf916bea77e59ce6419b457e39/justfile#L112-L120)
- For separately authorized validation, start with the affected crate/test filter, then use just test and just test-docs; consult just check-min/check-default/clippy for feature and lint checks. Existing scripts separate Cargo macro suites from nextest and include a named test exclusion. — [justfile#L32-L68](https://github.com/actix/actix-web/blob/30c831fce5328ccf916bea77e59ce6419b457e39/justfile#L32-L68) [.github/workflows/ci.yml#L79-L87](https://github.com/actix/actix-web/blob/30c831fce5328ccf916bea77e59ce6419b457e39/.github/workflows/ci.yml#L79-L87)
- Macro edits need runtime registration tests plus compiler fixtures: trybuild suites are MSRV-gated, and routing fixtures cover malformed paths, methods, scope attributes, and runtime macros. — [actix-web-codegen/tests/trybuild.rs#L1-L29](https://github.com/actix/actix-web/blob/30c831fce5328ccf916bea77e59ce6419b457e39/actix-web-codegen/tests/trybuild.rs#L1-L29) [actix-web-codegen/src/route.rs#L456-L464](https://github.com/actix/actix-web/blob/30c831fce5328ccf916bea77e59ce6419b457e39/actix-web-codegen/src/route.rs#L456-L464) [actix-web-codegen/src/lib.rs#L249-L272](https://github.com/actix/actix-web/blob/30c831fce5328ccf916bea77e59ce6419b457e39/actix-web-codegen/src/lib.rs#L249-L272)
- Check compatibility before changing public signatures or macro visibility: compat-routing-macros-force-pub forces generated handler structs public, semver CI currently reports rather than fails, and actix-web-actors is deprecated and omitted from the root member list. — [actix-web-codegen/src/route.rs#L420-L422](https://github.com/actix/actix-web/blob/30c831fce5328ccf916bea77e59ce6419b457e39/actix-web-codegen/src/route.rs#L420-L422) [.github/workflows/semver-checks.yml#L38-L60](https://github.com/actix/actix-web/blob/30c831fce5328ccf916bea77e59ce6419b457e39/.github/workflows/semver-checks.yml#L38-L60) [actix-web-actors/src/lib.rs#L1-L3](https://github.com/actix/actix-web/blob/30c831fce5328ccf916bea77e59ce6419b457e39/actix-web-actors/src/lib.rs#L1-L3) [Cargo.toml#L3-L14](https://github.com/actix/actix-web/blob/30c831fce5328ccf916bea77e59ce6419b457e39/Cargo.toml#L3-L14)
- Choose tests matching the actual boundary: init_service omits wire codecs, traversal tests exercise lexical paths, multipart tests exercise discarded-byte accounting, and shutdown tests exercise application-data lifetime during incomplete bodies. — [actix-test/src/lib.rs#L1-L5](https://github.com/actix/actix-web/blob/30c831fce5328ccf916bea77e59ce6419b457e39/actix-test/src/lib.rs#L1-L5) [actix-files/tests/traversal.rs#L8-L25](https://github.com/actix/actix-web/blob/30c831fce5328ccf916bea77e59ce6419b457e39/actix-files/tests/traversal.rs#L8-L25) [actix-multipart/src/form/mod.rs#L834-L856](https://github.com/actix/actix-web/blob/30c831fce5328ccf916bea77e59ce6419b457e39/actix-multipart/src/form/mod.rs#L834-L856) [actix-web/tests/test_httpserver.rs#L140-L176](https://github.com/actix/actix-web/blob/30c831fce5328ccf916bea77e59ce6419b457e39/actix-web/tests/test_httpserver.rs#L140-L176)

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)
