5.4.3
(fix): Fix OpenAPI endpoints that declare only a 204 No Content success response
being dropped during OpenAPI -> IR conversion. The user-defined 204 status
code is now preserved on the endpoint response so docs display it correctly
instead of falling back to a default 200.
5.4.2
(fix): Fix broken-links false positives for absolute links on sites that configure a
basePath (e.g. https://docs.example.com/product). Page slugs are stored with
the basePath prepended (product/about), but authors commonly write site-relative
absolute links without it (/about, /v2/guide). The link validator now also
checks the basePath-prefixed form so both conventions resolve.
5.4.1
(fix): Fix OpenAPI parsing crash when specs contain non-standard additionalProperties: "true" (string instead of boolean).
The parser was attempting to use the in operator on a string value, causing a Cannot use 'in' operator to search for 'type' in true error.
(fix): Surface rule initialization errors in fern check instead of exiting silently.
Previously, when a validation rule (e.g. valid-markdown-links) failed to
initialize because its docs configuration could not be resolved — for
example, a navigation folder: entry pointing at a path that does not
exist — fern check would exit with code 1 and no visible error message.
Now the underlying failure (e.g. Folder not found: …) is reported as a
fatal violation on docs.yml.
5.4.0
(feat): Make auth optional at the service level in Fern Definition files.
When omitted, auth is inherited from the root API-level auth scheme.
This allows users to only specify auth: false when they explicitly want to disable auth.
5.3.0
(feat): Translation overlays can now override navbar links (CTAs) per locale. Set navbar-links:
inside translations/<locale>/docs.yml and the per-locale FDR upload will use those
instead of the docs-level navbar-links. Local icon files referenced from the overlay
are uploaded and resolved alongside the rest of the docs assets.
5.2.2
(fix): Translated docs.yml overlays are now read directly from translations/<locale>/docs.yml,
so an extra nested fern/ folder is no longer required. The legacy
translations/<locale>/fern/docs.yml location continues to work as a fallback.
5.2.1
(fix): Fix auth scheme descriptions being lost when using generators.yml auth-schemes.
When security schemes are overridden in generators.yml, Fern now preserves the
descriptions from the OpenAPI spec’s components.securitySchemes instead of using
generic placeholder text.
5.2.0
(feat): Add multi-source property to docs.yml instances configuration. When enabled, docs registration
uses a basepath-aware S3 key format, allowing multiple independent doc sites to be hosted under the
same custom domain with different basepaths. This replaces experimental.basepath-aware, which is now
deprecated but still supported. When multi-source: true, the CLI validates that the url and
custom-domain share the same basepath.
5.1.0
(internal): Introduce a simpler TtyAwareLogger local to cli-v2. The new logger drops
legacy behaviours that cli-v2 did not use (omitOnTTY, FERN_SPINNER_STATUS,
dynamic finish reassignment, ora dependency) and exposes a minimal
register / write / takeOverTerminal / finish surface against a
generic Paintable interface. Box-frame rendering moves into TaskGroup.
The legacy TtyAwareLogger in @fern-api/cli-logger is untouched.