1.1.0
(feat): Add omitFernHeaders configuration option. When enabled, Fern platform headers
(X-Fern-Language, X-Fern-SDK-Name, X-Fern-SDK-Version, User-Agent) are omitted
from generated SDK requests.
1.0.9
(chore): Add concurrency configuration to generated CI workflow with cancel-in-progress: false
to prevent stacked runs from being cancelled when a newer run starts.
1.0.8
(fix): Re-throw errors after logging for README.md and reference.md generation failures.
Documentation generation errors now break the generation flow so they are treated
as important to fix.
1.0.7
(fix): Fix dynamic snippets to include global headers in generated code examples.
Previously, required global headers (e.g., X-Organization-ID) configured via
x-fern-global-headers were missing from dynamic snippet output. Also fixes
header value lookup to use wire values instead of a non-existent property.
1.0.6
(chore): Improve error logging for reference.md generation failures. The generator
now logs the actual error message and stack trace instead of a generic
“this is OK” message, making it easier to diagnose generation issues.
1.0.5
(chore): Parallelize endpoint snippet generation in populateSnippetsCache(). All
endpoints are now processed concurrently via Promise.all instead of
sequentially, reducing snippet generation time for large APIs.
1.0.4
(chore): Standardize WireMock configuration to use WIREMOCK_URL environment variable
(e.g., http://localhost:8080) instead of a hardcoded constant. Docker Compose
now uses dynamic port mapping (0:8080) to avoid port conflicts when running
multiple SDK tests in parallel. Falls back to http://localhost:8080 if the
variable is not set.
1.0.3
(chore): Use generator-cli JS API directly instead of subprocess spawning.
Remove generator-cli from Docker image since it is now bundled via esbuild.
1.0.2
(fix): Rename Union#member? to Union#type_member? to avoid rubocop-minitest’s
Minitest/AssertIncludes cop incorrectly autocorrecting assert obj.member?(x)
to assert_includes obj, x. The autocorrected form calls Module#include? which
raises TypeError: wrong argument type Class (expected Module) on union type tests.
1.0.1
(fix): Fix wire test generator to respect clientModuleName custom config instead of hardcoding Client.
1.0.0
(feat): 💎 The Ruby SDK generator v2 is officially stable! 🎉🥂 After 87 release candidates,
this ground-up rewrite ships with a modern AST-based architecture and full feature
parity. 🔒 Stable, production-ready, and 100% backward-compatible with the legacy
generator — existing configs, gem names, and modules just work. ✅
✨ Highlights
- 🔐 Bearer, API key, OAuth 2.0 & inferred auth with automatic token refresh
- 🌐 Exponential-backoff retries, per-request
base_urloverride, multipart uploads - 📄 Discriminated & undiscriminated unions, correct non-snake_case wire serialization
- 📦 Cursor & offset pagination with lazy iterators, custom pager support
- 🏗️ YARD docs, RuboCop-clean output, CI with RubyGems OIDC publishing, wire tests
- ⚙️ Rich config:
moduleName,requirePaths,extraDependencies,enableWireTests, and more - 🌍 Multiple named environments and multi-URL environment support
- 🚀 RubyGems OIDC publishing and self-hosted mode with
.fernignoresupport
1.0.0-rc87
(feat): Add support for useDefaultRequestParameterValues custom config option. When enabled,
query parameters and headers with IR-defined default values use Ruby’s params.fetch(:key, default)
idiom instead of conditional assignment, matching the behavior of other Fern generators.