> For clean Markdown content of this page, append .md to this URL. For the complete documentation index, see https://buildwithfern.com/learn/llms.txt. ## 1.49.0 **`(feat):`** Add automatic idempotency-key generation, driven by the centralized `idempotencyKeyGeneration` config in the IR. When enabled, the generated SDK attaches a UUIDv4 idempotency-key header (default `Idempotency-Key`) to requests whose HTTP method is listed in the IR (default `POST`/`PUT`). A caller-supplied key in request options still takes precedence. ## 1.48.0 **`(feat):`** Support server URL variables (region/edge routing). When an API's environments declare URL templates with variables (e.g. `https://api.{region}.example.com`), the generated client now exposes each variable as an optional functional option (`WithRegion`, etc.). A variable whose name collides with a reserved client option is prefixed with `ServerURL` (e.g. `environment` becomes `WithServerURLEnvironment`). Setting any variable rebuilds the base URL(s) at construction time by interpolating the templates, falling back to each variable's default when unset. ## 1.47.4 **`(fix):`** Fix smart-casing snake\_case names dropping the word boundary after a number. Names like `ConversationsV2Configuration` now produce the snake\_case `conversations_v2_configuration` instead of `conversations_v2configuration`, matching the camelCase and pascalCase variants. ## 1.47.3 **`(fix):`** Decompress gzip-encoded error responses before decoding them when retry attempts are exhausted.