Skip to content

v0.6.1

Choose a tag to compare

@github-actions github-actions released this 30 May 04:13
· 17 commits to trunk since this release
e881623

v0.6.1 — OpenAPI 3.1 surface tolerance

wavefront-bundle add now accepts three OpenAPI 3.1 shapes that v0.6.0 rejected,
without loosening the fail-loud contract for genuinely unsupported constructs.
These are the shapes a real FastAPI surface emits: in the reference consumer's
schema they account for nearly every anyOf, additionalProperties, and empty
inline-schema occurrence. Generator-only — the proxy data plane is unchanged.

  • Nullable anyOf lowers to proto3 optional. The OpenAPI 3.1 nullable idiom
    anyOf: [T, {type: null}] — where T is a scalar or a $ref — now lowers to a
    proto3 optional field, the same result as 3.0's nullable: true. A genuine
    non-nullable union (anyOf of two distinct types) is still a hard error
    directing you to a $ref with a discriminator field (#112 closed).

  • additionalProperties: false is a no-op. An explicit
    additionalProperties: false matches proto3's closed-message default and is now
    accepted as a no-op, producing byte-identical descriptors to omitting it. The
    unsupported forms — additionalProperties: true and the typed-dict
    additionalProperties: {schema} — remain hard errors (#113 closed).

  • Empty inline schema is bodyless. An empty inline schema: {} carries no
    shape, so it is treated as semantically bodyless and binds the synthetic
    wavefront.gen.v.Empty message (the path introduced in v0.6.0) instead
    of being rejected as an unsupported inline schema. A non-empty inline schema is
    still a hard error (#114 closed).

  • fix: lower the OpenAPI 3.1 nullable anyOf shape to proto3 optional (#117)

  • fix: tolerate additionalProperties: false as a no-op (#116)

  • fix: bind synthetic Empty for an empty inline schema {} (#115)