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., UserConfigUserConfigRead), 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.