> This page is for Fern CLI.

> For clean Markdown content of this page, append .md to this URL. For the complete documentation index, see https://buildwithfern.com/learn/llms.txt.

## 5.5.1

**`(chore):`** Bump `@fern-api/fdr-sdk` to `1.2.0-1d73d2e141` to pick up the first-class
`Alpha`, `Preview`, and `Legacy` availability values published from the
`fdr@1.2.0` tag.

## 5.5.0

**`(feat):`** Add `alpha`, `beta`, `preview`, and `legacy` as supported values for the
`x-fern-availability` OpenAPI extension and the `availability` field
in Fern Definitions. These flow through the IR to generators and docs.

**`(feat):`** Use first-class FDR Availability values (Alpha, Preview, Legacy) when
converting IR to FDR, replacing the previous fallback mappings to Beta /
Deprecated. Bumps @fern-api/fdr-sdk to a release that includes the new
enum values.

## 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.