4.15.0

(feat): Add C++ library documentation generation. Users can now configure lang: cpp libraries in docs.yml with an optional Doxyfile path, and fern docs md generate will produce structured MDX pages for classes, structs, functions, enums, typedefs, and variables with template parameters, method overload tabs, and hierarchical namespace navigation.

4.14.0

(feat): Merge behavioral analysis into the unified AnalyzeSdkDiff prompt. The AI now classifies both public API surface changes AND behavioral changes (HTTP status handling, default parameter values, serialization behavior, retry/backoff configuration) in a single call — producing the version bump, commit message, and changelog entry in one pass. This replaces the previous two-call approach where a separate Tier 3 analysis ran after Tier 2 returned PATCH.

4.13.0

(feat): Include the last 3 prior changelog entries from the SDK’s CHANGELOG.md in the AI prompt for AUTO versioning. This gives the AI context on the SDK’s versioning cadence and commit message style, producing more consistent and appropriately-toned commit messages. The changelog is read case-insensitively, capped at 2 KB, and gracefully skipped if the file is missing or unreadable.

4.12.0

(feat): Pass the API spec repo commit message to the AI prompt during AUTO versioning. When fern generate runs, the CLI now reads the most recent git commit message that touched the .fern/ directory and includes it in the AnalyzeSdkDiff prompt as spec_commit_message. This gives the AI ground-truth context about why the API changed, producing more accurate version bumps and commit messages. Merge commits, empty messages, and messages shorter than 5 characters are filtered out. Messages longer than 500 characters are truncated.

4.11.0

(feat): Add language-specific breaking change rules to the AnalyzeSdkDiff BAML prompt. The prompt now uses Jinja conditionals to include only the rules for the SDK language being analyzed (typescript, python, java, go, ruby, csharp, php, swift, rust, kotlin), keeping the prompt focused and improving version bump accuracy. A new extractLanguageFromGeneratorName utility maps generator names (e.g. fernapi/fern-typescript-node-sdk) to normalized language identifiers as a fallback when generatorInvocation.language is not set.

4.10.0

(feat): Separate commit message from changelog entry during AUTO versioning. The AI now produces a developer-facing git commit message and a separate user-facing changelog entry for CHANGELOG.md and GitHub Releases. PATCH changes produce an empty changelog entry. MINOR/MAJOR changes produce user-facing prose describing the impact on SDK consumers. The PR body uses the changelog entry when available, falling back to the commit message body when absent.