3.53.2

(fix): Reduce memory usage when generating docs for customers with many API versions by processing versions in batches of 5 instead of all in parallel.


3.53.1

(chore): Fix primitive example generation to handle zero-length strings correctly.

3.53.0

(feat): Add internal support for ListType/SetType/MapType validation into IR.

3.52.1

(fix): Fix OpenAPI oneOf with discriminator to be parsed as discriminated union. Previously, when the discriminant property was defined in each variant schema (which is the standard OpenAPI pattern), the union was incorrectly parsed as an undiscriminated union. Now, any oneOf with a discriminator is correctly parsed as a discriminated union, and the discriminant property is filtered out from variant schemas to avoid duplication.


3.52.0

(feat): Add support for branch property in pull-request GitHub mode. When specified, the PR will target this branch instead of the repository’s default branch.

3.51.3

(fix): Fix fern check incorrectly reporting “Invalid OpenAPI reference” errors for AsyncAPI JSON files. The validation rule now detects both YAML format (asyncapi:) and JSON format ("asyncapi":) when skipping AsyncAPI files.


3.51.2

(fix): Fix air-gapped environment support for fern generate --docs. Added airgapped detection to skip external services that don’t have local equivalents (Python docs generation, Venus organization lookup). Fixed protobuf air-gapped detection to use detectAirGappedModeForProtobuf() instead of detectAirGappedMode(). Added Venus-specific connectivity check for AI example enhancement that doesn’t rely on the global cache.

3.51.1

(fix): Fix fern docs dev --broken-links failing with “Failed to load API Definition” error for valid API configurations. The broken links validator now properly handles OpenAPI-only workspaces.

3.51.0

(feat): Add support for OAS 3.2’s itemSchema standard for SSE endpoints. When text/event-stream content type uses itemSchema instead of schema, it is now automatically treated as an SSE streaming endpoint with x-fern-streaming: format: sse.

3.50.3

(fix): Fix Python library docs placeholder page appearing on published sites. The placeholder page is now only created during fern docs dev (local development), not during fern generate --docs (publishing).

3.50.2

(fix): Fix python-docs configuration not being detected when placed inside product or version files. Previously, python-docs only worked when placed in the top-level docs.yml navigation. Now it correctly searches through product files and version files referenced via config.products and config.versions.


3.50.1

(fix): Fix tag-description-pages not matching OpenAPI tags with spaces or hyphens. The tag ID lookup now normalizes tag names to camelCase to match how subpackage names are derived from OpenAPI tags.

3.50.0

(feat): Add --output option to fern generate command. This allows users to specify a custom output directory for preview generation when using the --preview flag for SDK generation, instead of the default .preview directory.

3.49.8

(fix): Fix OpenAPI error response example names not using the summary field. Error examples now use the OpenAPI summary field as the example name (similar to success response examples), enabling proper display names like “Validation Error” instead of generic keys like “validationError”. Falls back to the original key if summary is undefined or empty.

3.49.7

(fix): Fix group-multi-api-environments URL name extraction for hyphenated subdomains (e.g., ip-messaging.twilio.com now extracts as ip-messaging instead of colliding with other URLs).

3.49.6

(fix): Fix group-multi-api-environments to properly accumulate all URLs when merging many OpenAPI specs. Previously only the first two URLs were preserved.

(fix): Fix group-multi-api-environments setting to be inherited from global api.settings.

3.49.5

(fix): Fix docs API registration to use folder name when api-name is not set. When registering APIs with FDR for docs, the folder name (workspace name) is now used as the API identifier when api-name is not explicitly set in docs.yml. This enables users to reference APIs by folder name in docs components like <Schema api="latest" />.


3.49.4

(fix): Fix ANY auth conversion to FDR multiAuth format. When the IR has AuthSchemesRequirement.ANY, the converter now properly represents this as multiple auth options (OR semantics) with each scheme in its own array element, rather than all schemes grouped together (AND semantics).

3.49.3

(fix): Fix per-generator API overrides incorrectly falling back to workspace name for namespace. The namespace field in per-generator specs configuration now correctly uses the provided value (or undefined if not set) instead of falling back to the workspace folder name.

3.49.2

(feat): Add support for omit field in basic auth configuration. This allows omitting the username or password from the SDK when defining basic authentication, useful for APIs that only require one of the two credentials.

3.48.3

(fix): Upgrade FDR and fix webhook example names not appearing in API reference docs. The name field is now included in webhook example FDR conversion, enabling the frontend to display user-specified example names instead of generic “Example 1”, “Example 2” labels.


3.48.2

(fix): Fix OpenAPI example summary not appearing as tab titles in API reference docs. The displayName (derived from OpenAPI summary field) is now always preserved in FDR output, even when there’s only one example per status code. Previously, example names were only shown when multiple examples had the same status code.

3.48.1

(fix): Fix x-fern-basic, x-fern-bearer, and x-fern-header OpenAPI extensions not being read in the OpenAPI to IR converter. Custom field names and environment variables specified in these extensions are now correctly propagated to the IR and FDR output, enabling custom labels in the API explorer.

3.48.0

(feat): Add support for extracting examples from multipart/form-data webhook payloads. Webhooks using multipart content type now properly display example names from the OpenAPI summary field instead of generic “Example 1”, “Example 2” labels. Also fixes webhook and WebSocket example names in FDR conversion to properly use the name field.

3.47.9

(fix): Fix Go package name normalization in dynamic IR generation. The CLI now normalizes Go package names by stripping the https:// prefix to match how upload keys are generated.

3.47.8

(fix): Support auth schemes Bearer and Basic with a capital B.

3.47.7

(fix): Fix duplicate summary collision in OpenAPI examples. When multiple examples have the same summary, the second example is now disambiguated as ${summary} (${key}) instead of silently overwriting the first.

3.47.6

(fix): Fix OpenAPI example summary field propagation. The summary field from OpenAPI examples is now correctly propagated to the IR displayName field and FDR name field. Previously, when examples were referenced via $ref, the summary field was lost because the reference was not resolved before checking for the summary. Also adds support for recursive $ref resolution in examples.


3.47.5

(fix): Fix AsyncAPI query parameters with $ref types being incorrectly marked as required.

3.47.4

(fix): Fix AI examples headers/path/query params not appearing in docs immediately after generation.

3.47.3

(fix): Improve error messages for authentication errors when publishing docs.

3.47.2

(fix): Skip loading AI examples during SDK generation. AI examples are now only loaded for docs generation (fern generate --docs), not for SDK generation (fern generate).


3.47.1

(fix): Fix AI example generation to filter path/query/header parameters from request bodies and omit empty request/response bodies. The AI model sometimes incorrectly includes these parameters in the request body, which causes SDK validation errors.


3.47.0

(feat): Add edit this page launch target

3.46.0

(feat): Propagate webhook multipart form data payloads to FDR conversion. The fileUploadPayload field on webhooks is now converted to the FDR FormDataRequest type, enabling proper rendering of file upload fields and body properties in documentation.

3.45.0

(feat): Add support for webhook multipart form data payloads. Webhooks with multipart/form-data content type are now properly parsed and include a fileUploadPayload field in the IR containing file and body property information.