5.171.2
(chore): Internal cleanup: shared helpers for ENOENT checks, http(s) URL checks, delays,
asyncPool and convertNumberToSnakeCase now live in core-utils instead of being
copied across packages. No behavior change.
5.171.1
(fix): The custom-domain Vercel check now recognizes apex domains on all of Vercel’s
IPv4 networks (per ARIN), not just a subset.
5.171.0
(feat): fern generate --docs (including --preview) now checks the DNS of each configured
custom-domain. If a domain still points to Vercel instead of cname.ferndocs.com
(or your own reverse proxy), the CLI prints a warning with migration steps. Starting
December 1, 2026 this becomes an error and publishing fails until the DNS is switched.
5.170.8
(fix): The dynamic IR now reports hasResponseBody: false for endpoints that have no response body
(previously every endpoint was reported as response: json). This lets dynamic snippet generators
distinguish (response, error) methods from error-only methods (e.g. Go deletes).
5.170.7
(fix): error-responses configured on api.settings (shared by every spec of the API) now declares
the error body type and the status-code errors once in the root package instead of duplicating
them under each namespaced spec. SDKs expose one BadRequestError, NotFoundError, … that
every namespace throws. error-responses set on an individual spec is unchanged.
5.170.6
(fix): Fix fern generate --docs failing with ENOENT on Markdown images whose quoted title contains
an unbalanced ), e.g.  Input, 2) Output"). The scanner
ended the destination at the first ) inside the title and tried to upload a file named
diagram.png "Flow: 1. Page links with such titles are resolved the same way.