4.37.6

(fix): Fix Go SDK auto-versioning producing malformed code with duplicate imports and mixed module paths during major version bumps (e.g. v1 to v2). The magic placeholder version now uses major version 0, which avoids polluting generated code with artificial /vN suffixes. After auto-versioning computes the real version, the correct /vN suffix is added to go.mod and all import paths when the major version is 2 or higher. Also filters Go module path suffix changes from the AI diff analysis to prevent version-bump noise.

4.37.1

(fix): Optimize protobuf buf generate to reuse a single working directory across all proto files. Instead of creating a new temp dir, copying the proto root, checking binaries, and resolving deps for every file, setup is done once and only buf generate <target> runs per file. The two buf generate passes (protoc-gen-openapi and protoc-gen-fern) also now run concurrently.

4.37.0

(feat): Auto-download buf CLI binary from GitHub Releases when it is not found on PATH. This eliminates the need for users to pre-install buf before running proto-based SDK generation. The binary is cached at ~/.fern/bin/ with versioning, filesystem locking, and atomic file operations.

4.36.1

(fix): Fix getLatestRelease returning semver prerelease tags (e.g. 0.0.0-dev-babaf54d) as the latest release. When GitHub’s “latest release” API returns a tag that is a semver prerelease, the CLI now falls back to scanning recent releases for the first stable (non-prerelease, non-draft) version. This prevents computeSemanticVersion from computing incorrect next versions.

4.36.0

(feat): Auto-download protoc-gen-openapi binary from GitHub Releases when it is not found on PATH. This eliminates the need to install Go and compile protoc-gen-openapi from source on every CI run, reducing proto-based SDK generation setup time by ~40 seconds.

4.34.1

(fix): Include available group names in the error message when no group is specified and no default-group is set. The error now lists all groups defined in generators.yml so users can quickly pick the right --group value.