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.