4.65.0
(feat): Add --output flag to fern sdk preview that accepts filesystem paths
and/or registry URLs. Omit to publish to the default preview registry and
write to a temp directory. Use --output <path> for disk-only output, or
--output <path> --output <url> to write to disk and publish to a custom registry.
4.64.0
(feat): Support default on discriminant properties in OpenAPI discriminated unions. When a variant’s
discriminant property has a default value matching its const value, the default variant is
threaded through the IR so generators can fall back to it when the discriminant field is omitted.
The x-fern-default extension takes priority over default if both are set.
4.63.5
(fix): Fix union variant display names showing “object” instead of proper
schema names in documentation.
4.63.4
(fix): Add no-conflicting-parameter-names OSS validation rule to fern check.
Detects when header parameters and query/path parameters on the same endpoint
normalize to the same camelCase name, which causes broken generated SDK code
(Python SyntaxError from duplicate keyword arguments, TypeScript duplicate
interface properties). The rule reports an error at validation time so the
collision is caught before code generation.
4.63.3
(fix): Fix coerce-enums-to-literals: false not being respected for boolean
single-value enums (type: boolean, enum: [true]). Previously, boolean
enums were always coerced to literals regardless of the setting. Now
getSingleBooleanEnumValue checks coerceEnumsToLiterals consistently
with the string enum path.
4.63.2
(fix): Add log rotation for fern docs dev debug logs in ~/.fern/logs/.
Old log files are automatically deleted when the directory exceeds
100 MB, keeping the most recent logs.
4.63.1
(fix): Fix Go dynamic snippets not being generated during docs publish.
The Go package name comparison between snippet configuration and
generator output was failing due to an https:// prefix mismatch,
causing docs to fall back to raw net/http code instead of
SDK-idiomatic snippets.