> 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.144.1 **`(fix):`** Resolve generators.yml `latest` to an exact generator version before preparing and submitting SDK Gen API runtime bundles. ## 5.144.0 **`(feat):`** C/C++ library docs now render pages for documented preprocessor macros (`#define`), listed under a `macros/` folder and in group pages. Set `config.include-undocumented-macros: true` on a `lang: cpp` library to also render macros without a doc comment (include guards are never emitted, Doxygen drops them). **`(fix):`** C/C++ library docs: function-pointer typedef pages now list their documented parameters, `@param[in]`/`[out]`/`[in,out]` directions are shown on parameter fields, Doxygen `@verbatim` blocks render as preformatted code, and plain-C libraries use `typedef` declaration syntax instead of C++ `using`. Regenerating replaces the previous C/C++ page tree so pages for removed entities no longer linger. **`(fix):`** C/C++ library docs: `\ref`, `@see`, `@return` and auto-linked references to functions, typedefs and enums documented inside a Doxygen `\defgroup` now render as links to the generated pages. Previously these group-scoped references were emitted as plain text because their `group__*` refids could not be decoded. **`(fix):`** C/C++ library docs: unqualified member references inside a namespace now resolve against the enclosing scopes; function-pointer parameters of callback typedefs are documented; and libraries with C++-only root members (`constexpr`, scoped enums, `noexcept`) keep `using` typedef syntax. **`(fix):`** C/C++ library docs: typedef and enum names referenced inside function, typedef and variable signature code blocks now link to their generated pages (previously only class/struct references and the parameter list were linked). ## 5.143.7 **`(fix):`** Stop auto-uppercasing "Map" in generated titles. API Reference navigation subpackages without an explicit display-name (e.g. groups created via `x-fern-sdk-group-name`), webhook ids, GraphQL namespace titles, and tag-description-page headings now render "Map"/"Map Test" instead of "MAP"/"MAP Test". ## 5.143.6 **`(fix):`** Docs `snippets:` entries and SDK dynamic IR uploads now resolve a generator's package name from its generator config (`config.package_name`, `config.packageName`, `config["package-name"]`, `config.module.path`) when there is no registry publish target, so github-only SDKs (`github: mode: pull-request` with no `output: pypi/npm` block) are matched instead of being reported as an unknown package. The config lookup previously only read the raw YAML, which is not populated on the normal loader path; it now reads the resolved config first. This also makes `--local`, `sdk-preview` and the "version already exists" check see config-only package names they previously missed. Docs snippet matching now also considers generators from the other API workspaces in the fern folder when the referenced API workspace has no SDK generators (e.g. docs point at a docs-only `api-name` while SDKs are generated from a sibling workspace). Docs snippet version lookup selects the generator whose package matches the `snippets:` entry instead of the first generator for the language. Skip paths log the reason at debug level. ## 5.143.5 **`(fix):`** Preserve distinct PyPI usernames and passwords when configuring generator publishing credentials.