v0.7.1
v0.7.1 — generator coverage for real FastAPI surfaces
v0.7.1 widens the generator's coverage of real FastAPI/OpenAPI surfaces and
brings the CI and release workflows off the deprecated GitHub Actions Node 20
runtime. The generator changes are additive — they only accept shapes that
v0.7.0 hard-rejected — so any bundle that builds today is byte-identical.
-
Non-object components lower inline. A component that is an enum, typed
dict, union, or open object — referenced by a field, the way FastAPI emits a
str, Enum(e.g. JobPolicyMode) — now lowers the same as the inline form
(scalar, map, google.protobuf.Value, google.protobuf.Struct) instead of being
rejected with "must be an object with properties". A scalar enum lowers to its
underlying scalar (string/int32), never a proto3 enum: protojson rejects
unknown enum names, so typing the enum would let an old contract reject a value
a newer backend added — the version skew wavefront exists to remove. A
non-object component bound directly as a body stays a hard error (#133). -
Bare {"type":"object"} lowers to Struct. A bare object with no properties
and no additionalProperties — the shape FastAPI emits for ValidationError.ctx
— lowers to google.protobuf.Struct like any open object, singular and as an
array item (#134). -
Illegal proto-identifier names are sanitized. A field key or component
name with a character outside [A-Za-z0-9_] (a dotted Pydantic alias, or
Pydantic v2's -Input/-Output schema split) no longer aborts descriptor
validation: the proto identifier is sanitized while the original wire key is
preserved via json_name (no wire-shape change), and collisions are
disambiguated so two distinct names never fuse (#135). -
CI and release workflows on Node 24. Every actions/* and docker/* action
in the CI and release workflows is bumped off the deprecated Node 20 runtime
to its current Node 24 major, and the release workflow's force-node24 stopgap
is removed (#136). -
feat: sanitize illegal proto-identifier names in the generator (#138)
-
feat: lower bare {"type":"object"} to google.protobuf.Struct (#139)
-
feat: lower non-object components inline like the equivalent inline schema (#140)
-
ci: migrate GitHub Actions off the deprecated Node 20 runtime (#141)