1.1.2

(fix): Fix pagination query parameter key mismatch. Query parameters were initialized with string keys but pagination iterator blocks used symbol keys, causing duplicate parameters to be sent (e.g., page=0&page=0) which resulted in 400 errors.

(fix): URI-encode path parameters before interpolation into URL paths. Resource IDs containing reserved URI characters (e.g., pipes, spaces) now work correctly instead of raising URI::InvalidURIError.


1.1.1

(fix): Strip zero-millisecond datetime values from WireMock stub query parameters. Ruby’s DateTime/Time ISO 8601 serialization omits zero fractional seconds (e.g., 2024-09-08T12:00:00Z), but mock-utils generates values with .000Z (e.g., 2024-09-08T12:00:00.000Z). WireMock’s equalTo matcher is exact-match, so the stubs never fired for datetime query parameters. This follows the same pattern used by the Python and PHP generators.


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.