4.106.0

(feat): Add support for translating navigation labels (tabs, products, versions, sections, pages, announcements) via YAML overlay files in translations/<lang>/fern/. The overlay files use the same format as write-translation output and are deep-merged over the source navigation configuration.

4.105.0

(fix): Fix branch creation during signed commit push in generator-cli. GitHub’s updateRef API returns 422 (not 404) when the target branch does not exist, so the createRef fallback was unreachable.

(feat): fern docs dev now exits with a hard error on Windows when long path support is not enabled, instead of printing a warning.

4.104.0

(chore): Improved translation logging by moving verbose page array output to debug level and formatting as a concise count instead of raw JSON array.

(feat): Support simplified string syntax for translations field in docs.yml. You can now use translations: [en, ja, fr] instead of requiring translations: [{lang: en}, {lang: ja}, {lang: fr}]. The verbose object syntax remains supported for specifying default: true.

4.103.1

(fix): Fix translation directory check to treat the first locale as the default when no explicit default: true is set, matching the behavior of the rest of the CLI.

4.103.0

(feat): Support BCP 47 locale tags (e.g. ja-JP, pt-BR, zh-Hans-CN) in the translations and languages fields of docs.yml. Previously only two-letter language codes were accepted.

4.102.0

(feat): Add validation to fern check / fern docs check that verifies all configured translation locales have a corresponding directory under fern/translations/. If a directory is missing, a clear error message is printed showing the expected directory structure.

4.101.0

(feat): Add websocket-oneof-display setting to docs.yml. When set to grouped, WebSocket messages with oneOf bodies are rendered as a single parent entry with nested variants instead of flattened separate entries (default: flat).

4.100.3

(fix): Fix fern generate --docs --preview to register translations for preview URLs. Previously, translation registration was skipped entirely in preview mode, causing translated docs to not appear in preview deployments.