> This page is for Fern 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.

## 3.91.5

**`(fix):`** Fix anyOf/oneOf response examples always using the first variant's values.
When an OpenAPI spec defines multiple anyOf variants with discriminating enum
fields (e.g., status: "waiting", "progress", "success"), the example converter
would short-circuit on the first valid variant even when the user's explicit
example matched a different variant. Each named example now correctly preserves
its distinct field values.

## 3.91.0

**`(feat):`** Add support for nested generics in Fern Definition. Generic type properties
that reference other generic types (e.g., `data: list<Data<T>>`) now correctly
substitute generic parameters throughout the type reference string, not just
when the entire property value matches a parameter name. This enables patterns
like reusable request/response wrappers with nested generic attributes.

## 3.90.9

**`(fix):`** Propagate `explode` field from OpenAPI query parameters through the old importer pipeline
(OpenAPI IR → Fern Definition → Fern IR). Previously, `explode: false` on array query
parameters was silently dropped, causing generated SDKs to use repeated keys instead of
comma-separated values.

## 3.90.8

**`(fix):`** Treat JSON Schema `const` values as literal types in the IR regardless of the
`coerceEnumsToLiterals` setting. Previously, `const` was converted to a single-value
enum, which meant generated SDKs (e.g. Python Pydantic models) did not auto-populate
a default value for fields that can only ever be one value. Now `const` always produces
a literal type, so generators can automatically set the default.

## 3.90.7

**`(fix):`** Resolve .mdx/.md file path links in OpenAPI descriptions at CLI build time. Previously,
markdown links like `[Order](/docs/pages/objects/Order.mdx)` in OpenAPI endpoint and parameter
descriptions passed through as raw file paths. Now these links are resolved to proper URL slugs,
consistent with how they are already resolved in user-authored markdown pages.

## 3.90.6

**`(fix):`** Fix schema reference resolution when `respect-readonly-schemas: true` is enabled.
Previously, when schemas containing readonly properties were renamed with "Read"
suffixes (e.g., `UserConfig` → `UserConfigRead`), other schemas that referenced
them would still point to the original names, causing validation failures.

## 3.90.5

**`(fix):`** Fix per-spec settings being ignored in multi-spec API configurations.
When `respect-nullable-schemas` (or other boolean settings) was set on
only a subset of specs, the setting was incorrectly collapsed to `false`
because `specs.every()` treated unset (`undefined`) the same as
explicitly disabled (`false`). Now, specs that don't define a setting
are treated as neutral ("don't care") so enabling a setting on a subset
of specs works correctly without affecting specs that don't set it.

## 3.90.4

**`(fix):`** Pass CLI-computed semantic version to Fiddle when creating remote generation
jobs. Previously the CLI computed the version via the FDR API but passed the
raw user-provided version (typically undefined for AUTO mode) to Fiddle,
causing Fiddle to independently re-resolve the version and fall back to an
internal counter that produced incorrect low version numbers.

## 3.90.3

**`(fix):`** Fix AUTO versioning missing namespace changes in the git diff. When
generated SDK files are copied without `.fernignore` (the
`copyGeneratedFilesNoFernIgnorePreservingGit` path), new files created
by namespace renames were untracked and invisible to `git diff HEAD`.
The diff generator now runs `git add -N .` (intent-to-add) before
diffing so that newly created files appear in the diff and are
correctly analyzed by the AI as breaking changes.

## 3.90.2

**`(fix):`** Fix v3 OpenAPI importer to recognize `format: date-time-rfc-2822` regardless
of `typeDatesAsStrings` setting. Previously the check was inside a guard that
defaults to `undefined`, so RFC 2822 date fields silently fell through to string.

**`(fix):`** Fix example validation for `DATE_TIME_RFC_2822` fields to accept RFC 2822
formatted timestamps (e.g. "Wed, 02 Oct 2002 13:00:00 +0000") instead of
rejecting them as invalid ISO 8601.

## 3.90.1

**`(fix):`** Fix v2 OpenAPI importer support for `format: date-time-rfc-2822` so the CLI
emits `DATE_TIME_RFC_2822` instead of falling back to `string`.

## 3.90.0

**`(feat):`** Add `DATE_TIME_RFC_2822` primitive type to the IR. OpenAPI specs using
`format: date-time-rfc-2822` (e.g. Twilio) now produce typed date-time
fields instead of plain strings. Generators that do not yet handle the
new variant gracefully fall back to `DATE_TIME` behaviour.

## 3.89.2

**`(fix):`** Fix AI example enhancement for multi-spec API definitions. All OpenAPI sources are now combined into a single merged spec, with overrides applied per-spec, so endpoints from any spec are correctly matched during AI enhancement.