5.112.0
(fix): Supply resolved API source archives when fern sdk preview routes generation through sdk-gen-api,
and accept the empty default OpenAPI audience filter during SDK Config source validation.
(internal): Select sdk-gen-api payload routes before generation work, preserve legacy Fern runtime bundles for pre-cutover targets, and require SDK Config v1 at or after each generator’s cutover version. Reject incompatible legacy configuration with an actionable fern sdk migrate instruction before source preparation or remote mutations, while preparing deterministic, deduplicated source archives for compatible targets.
5.111.0
(feat): Add the any-of-sibling-properties-as-object OpenAPI setting. When enabled, a
schema that declares properties alongside an anyOf whose branches only
re-declare some of those same properties as required is converted as the object
it declares, rather than as an undiscriminated union. Per JSON Schema such an
anyOf is an “at least one of” constraint over sibling properties, not a set of
variants, so converting it to a union discards the declared properties and
makes the fields mutually exclusive — a request body setting two of them
silently sent only one.
A branch that introduces a property, that narrows one to a different value, or that is a reference, is a real variant and continues to produce a union even with the setting enabled. The setting defaults to false, so conversion output is unchanged unless you opt in.
5.110.1
(fix): The warning for auth-schemes declared without api.auth now fires on
fern generate and fern check, not only fern check --from-openapi. It
was emitted from OSSWorkspace.getIntermediateRepresentation, a branch
reached only when --from-openapi is passed; fern generate and plain
fern check go through toFernWorkspace and saw nothing. Since the whole
point is that this misconfiguration is otherwise silent — valid YAML, clean
check, successful generation, and a client reading an environment variable
the user never configured — the warning was unreachable on exactly the paths
where it was needed. Both entry points now emit it, at most once per
workspace.