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.


3.44.1

(fix): Add air-gapped environment detection for AI example enhancement. The CLI now detects network availability before attempting AI enhancement by checking connectivity to Venus. In air-gapped environments, AI enhancement is automatically skipped to prevent network errors. This follows the same pattern used for protobuf generation air-gap detection.

3.44.0

(feat): Map OpenAPI validation fields from IR to FDR format. This includes exclusiveMinimum, exclusiveMaximum, and multipleOf for numeric types (integer, double, long, uint, uint64), as well as minItems/maxItems for list and set types, and minProperties/maxProperties for map types.

3.43.0

(feat): Add —indent flag to ‘fern api update’ to allow specification of indent size in spaces.

(feat): Add —indent flag to ‘fern export’ to allow specification of indent size in spaces.

3.42.4

(feat): Update experimental flag options to support exclude-apis

3.42.3

(fix): Downgrade OpenAPI reference validation to warning severity. Previously, invalid references were treated as errors.

3.42.2

(fix): Fix webhook audience filtering in OpenAPI v3 importer. Webhooks with x-fern-audiences are now correctly included when generating for matching audiences.


3.42.1

(fix): Rename java-model generator to fern-java-model.

3.42.0

(feat): Add placeholder page for python-docs in fern docs dev. When running local development, a helpful placeholder page is shown explaining that Python library documentation requires fern generate --docs or fern generate --docs --preview to generate.

3.41.1

(chore): Support ai-examples and ai-example-style-instructions configuration options from experimental with the new enabled and style, under ai-examples in the top-level docs.yml configuration.

3.41.0

(feat): Add support for x-fern-property-name extension on OpenAPI discriminators. This allows specifying a code-generation-friendly name for discriminant properties that have non-alphanumeric wire values (e.g., @type). The extension can be applied directly in the OpenAPI spec or via an overrides file.

3.40.1

(fix): Speed up AI example generation and reduce number of retries on failure.

3.39.4

(fix): Optimize air-gapped environment detection for protobuf generation. The CLI now detects network availability once at startup using a 30-second timeout instead of having multiple timeouts for each buf command. Both ProtobufIRGenerator and ProtobufOpenAPIGenerator now use a shared detectAirGappedMode() utility function that sets an isAirGapped flag to skip network calls after initial detection. This significantly improves performance in air-gapped environments.