> This page is for CLI 参考.

> For clean Markdown content of this page, append .md to this URL. For the complete documentation index, see https://buildwithfern.com/learn/llms.txt.

## 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.