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

**`(feat):`** Support generating from a composed workspace. A workspace that declares no specs of its own and
composes sibling workspaces through dependencies.yml now exposes those dependencies' specs,
namespaced by the directory of the package marker that exports them, so it can produce a source
archive instead of failing with "workspace type fern does not expose source specs".

## 5.139.4

**`(fix):`** `fern export` now emits `anyOf` (instead of `oneOf`) for undiscriminated unions. Undiscriminated
union members can overlap (e.g. a set of string literals alongside `string`), so `oneOf` caused
strict JSON Schema validators to reject values that matched more than one member.

## 5.139.3

**`(fix):`** Allow replay to be enabled for SDK generators routed through sdk-gen-api.
Previously, generators with both sdkGenApiRoute and replay.enabled: true failed
with a configuration error.

## 5.139.2

**`(fix):`** `fern generate --docs` now fails when a rule configured as `error` in `docs.yml` `check.rules`
(e.g. `broken-links: error`) reports a violation, matching the behavior of `fern check`.
Previously the violation was logged but docs were still published.

## 5.139.1

**`(fix):`** Propagate AsyncAPI message `description`/`summary` to WebSocket channel message docs so they appear in the API reference and generated SDK docstrings. Previously only the payload schema's description survived import.