3.95.0
(feat): Add support for multiple override files in spec configuration. The overrides
field now accepts either a single path or an array of paths for OpenAPI, AsyncAPI,
OpenRPC, and Protobuf specs. When multiple paths are provided, overrides are applied
sequentially in order.
3.94.0
(feat): Add package registry version lookups for all supported SDK languages during
AUTO version resolution with private registry authentication support.
Previously only npm (TypeScript) and PyPI (Python) were supported. Now also
queries Maven Central (Java), NuGet Gallery (C#), RubyGems.org (Ruby), Go
Module Proxy (Go), and Crates.io (Rust). PHP and Swift continue to use GitHub
tags as fallback. Additionally supports authenticated access to private package
registries and GitHub repositories via environment variables: GITHUB_TOKEN for
private repos and NPM_TOKEN for private npm packages.
3.93.4
(fix): Fix getExplodeForQueryParameter to treat deepObject style as having
a default explode of true per the OpenAPI spec. Previously,
deepObject was grouped with spaceDelimited and pipeDelimited
(default explode: false), causing explode: true to be incorrectly
preserved as non-default for deepObject parameters. The OpenAPI spec
only defines deepObject with explode: true, so it should be treated
as the default.
3.93.3
(fix): Move Fern definition validation into the per-generator generation loop so that
it validates the exact definition used for generation (with generator-specific
settings like detectGlobalHeaders and auth overrides applied).
(fix): Fix path-level servers with x-fern-server-name being ignored in OpenAPI 3.0 specs.
3.93.2
(chore): Update AI example enhancement to use fdr-lambda endpoint.
3.93.1
(fix): Revert cff292e8937b3c3ac66b1b6ebc6071b81860bbfd to resolve errors introduced
3.93.0
(feat): Add a —json flag to fern check that outputs structured validation results
as JSON to stdout, with all other output redirected to stderr. This enables
programmatic consumption of check results by CI pipelines, editor integrations,
and other tooling.
(fix): Fix API naming in multi-API workspaces: both the JSON output and fern check
now use the workspace directory name (e.g. atoms, unified, waves).
3.92.1
(fix): prefer default version slug when multiple versions share the same MDX file.
3.92.0
(feat): Add support for multiple override files in OpenAPI spec configuration. The
overrides field now accepts either a single path or an array of paths. When
multiple paths are provided, overrides are applied sequentially in order, allowing
for layered customization of OpenAPI specs.
3.91.6
(fix): Treat all text/* content types (e.g. text/csv, text/xml, text/html) as text
responses in the v1 OpenAPI parser, not just text/plain. Previously, endpoints
returning content types like text/csv had their response silently dropped, causing
generated SDK methods to return None.
3.91.4
(fix): Fix GET webhooks without a request body being skipped during OpenAPI parsing.
Previously, webhooks using the GET method with query parameters instead of a
request body were silently dropped with “Missing a request body”. The parser
now synthesizes a payload from the query parameters for GET webhooks that lack
a request body.
3.91.3
(chore): Remove noisy debug logs from IR version compatibility checking.
3.91.2
(fix): Fix x-fern-server-name extension being ignored on AsyncAPI server definitions.
When an AsyncAPI spec uses x-fern-server-name to override a server’s name
(e.g. renaming uat to market_data to avoid naming conflicts with another API),
both the environment ID and channel base URL now use the overridden name. This
fixes SDK generation errors like “Expected environment UAT to contain url for uat”
when the generators.yml environment URLs reference the overridden server name.
3.91.1
(fix): Fix coerce-optional-schemas-to-nullable incorrectly making header parameters
nullable. HTTP headers don’t have a “null” concept — they’re either present with
a value or absent. The coerceOptionalSchemasToNullable option now only affects
request/response body properties, not header parameters. Explicitly nullable header
schemas (via nullable: true in the OpenAPI spec) are still respected.