🚀 Added
- Capture path-parameter values from successful 2xx requests for reuse during fuzzing.
- Capture request-body field values from successful 2xx requests for reuse during fuzzing.
- Coverage phase records request identifiers into the runtime resource pool for reuse in later phases.
- Use identifiers from the runtime resource pool for resource-bound parameters and body fields during the coverage phase.
- Use captured body-field values to fill resource-bound fields in the examples phase.
- Enable the runtime resource pool for producers that return empty response bodies.
- Chain
st fuzzscenarios via inferred and schema Links, biased 80% toward link-driven steps. - Pick correlated identifiers for nested-resource operations during the coverage phase.
- Dependency inference recognizes
<resource>Name-style body fields on collection paths (e.g.POST /products {productName: ...}). - Dependency inference recognizes more identifier-style path parameters (e.g.
username,containerGroupName). - Dependency inference treats
POST /resource/{name}as a producer when the response has no body. - Dependency inference treats
POST /collection {idField: ...}as a producer when the response has no body. - Dependency inference recognizes
GET /collectionreturning an array of identifier strings. - Dependency inference recognizes plural
{ids}path parameters (e.g.GET /persons/{ids}). - Seed the runtime resource pool with identifier values from a Bearer JWT or HTTP Basic username.
🐛 Fixed
- False positive
negative_data_rejectionfor body-level type mutations onmultipart/form-dataendpoints. #3801 - False positive
negative_data_rejectionfor body fields withformat: binaryorformat: byte. - Crash on schemas with non-schema values inside
properties(e.g. an integer where a sub-schema is expected). - Cascading generation failures after one schema corrupted shared
hypothesis-jsonschemaconstants in the same process. - Crash on
$refwith sibling keywords when exploring the Python API outside the pytest runner. HypothesisRefResolutionErrorwhen a$refand its target both have distinctanyOflists.- Report malformed sub-schemas (e.g.
description: null) as a clean schema error. Unsatisfiablefor arrays withallOfof multiplecontainsrequiring distinctconstvalues.- Operation scheduling respects RESTful method priority even when all operations collapse into one layer.
- Draft-03 schemas surface as a clean
InvalidSchemainstead of a genericInvalidArgumentfrom the strategy generator. - False
InfiniteRecursiveReferenceon cycles breakable throughpatternProperties. - False
InfiniteRecursiveReferenceon cycles breakable throughoneOf/anyOf, top-levelallOf, or unuseddefinitions. - False positives from
\p{X}Unicode property escapes inside character classes (e.g.[\p{Alnum}_]+). - Translate POSIX character classes (e.g.
[[:alnum:]_]) to Python equivalents instead of misparsing them. - Silent character-set widening when
\p{X}patterns combine with PCRE class-set operators (||,&&) or nested classes. - Runtime Error in negative generation for OpenAPI 3.1 schemas with
prefixItems. #3842 - Honor
discriminatorpin inoneOf/anyOfvalidation under Draft 4 (OpenAPI 2.0/3.0). - Spurious
FlakyStrategyDefinitionfromst fuzzwhen the time limit trips mid-scenario. - Crash in the examples phase when a body example contained
format: binarydata alongside captured pool values. - Resource-pool variants for path/query/header parameters skip values that violate the destination schema.
- Bodies missing required fields when a captured value is overlaid on a schema without
type: object. - Boolean path parameters rewritten to integer
1when the path also contains an integer parameter. - Examples violating their own schema surfacing as POSITIVE generation cases.
- Duplicate required header entries when a spec parameter and a security scheme share a header name.
- NDJSON reports truncated after the first event from a threaded
requestsimport race in the writer.
🔧 Changed
- Include
metain NDJSON reports. - Probe each path with undeclared HTTP methods once per path instead of once per declared operation.