Skip to content

v0.7.0

Choose a tag to compare

@github-actions github-actions released this 04 Sep 12:59
· 49 commits to master since this release
adfa8b4
  • Requires rasuvaeff/openapi-contract ^0.5 (was ^0.4), which closes the
    same review's ten warnings. The oracle is correspondingly stricter and more
    accurate: header list values lose the whitespace around their separator, a
    boolean schema: false rejects instead of accepting everything, multipart
    honours encoding.explode, an OAS 3.1 type union is read as the shape it
    declares, and parameter diagnostics point at the declaration that carries
    them. Body values are redacted from rendered diagnostics, which CheckFailed
    passes through — a CheckFailed message no longer shows a body's actual.

  • The negative const witness never collides with the const it contradicts.
    constMismatch() used a fixed literal, so a parameter declaring that literal
    as its const got an "invalid" value that was in fact valid. enumMismatch()
    already walked away from the collision; the const side now agrees.

  • An unsupported media type no longer hides the request-body examples declared
    after it. content is a map, and giving up on the first entry this phase
    cannot encode lost every JSON example a document happened to list after a
    multipart body.

  • A decimal multipleOf no longer accumulates float error: 3 * 0.1 was
    emitted as 0.30000000000000004. Our own oracle tolerates that, but a server
    checking fmod without a tolerance does not, and the resulting failure lands
    on the user's API rather than on the generator. The product is rounded back to
    the precision the multiple itself carries.

  • A pattern that cannot satisfy its length window fails closed at compile
    time, naming both constraints, instead of exhausting Gen::filter() mid-run.
    The package's own rules call a run-time GenerationExhausted a defect; the
    probe is deterministic and twice the retry budget the filter would have had,
    so a window it cannot hit is one the filter would have exhausted anyway.