0.35.4

(chore): Bump generator container Node.js base image to node:22.22-alpine3.23 and apply latest Alpine package security updates at build time.


0.35.3

(fix): Fix Swift wire-test runtime equality failures when a response body contains a map (Dictionary<String, T>) whose value is an explicit-null nullable, or an Optional<Nullable<T>> field whose example is explicit-null. Previously the generator embedded the IR’s jsonExample for the response body, which silently dropped keys whose value resolved to JS undefined (e.g. an unresolved nullable<T>), and the expected-struct generator filtered optional properties using the same jsonExample === undefined check, which matched both “truly absent” and “explicit-null nullable” examples. The wire- test JSON body is now built by walking the typed example shape directly, and the expected-struct generator skips a property only when the typed optional container is genuinely empty — so an explicit-null nullable inside an optional now renders as Optional(.null) in both the embedded JSON body and the expected struct.

0.35.2

(chore): Update the Swift SDK generator container base image from node:22.12-alpine3.20 to node:22.22-alpine3.22 to address 92 container vulnerabilities (3 Critical, 48 High, 30 Medium, 11 Low) reported by Grype. The bump pulls in newer Alpine packages (libcrypto3/libssl3, musl, busybox, zlib), Node.js 22.22.x, and the bundled npm transitive dependencies (cross-spawn, minimatch, glob, tar, brace-expansion, ip-address, diff).


0.35.1

(fix): Apply canonical “all user-specified examples, else first autogenerated” selection in the Swift SDK snippet output path. README examples now use the user-specified example value (when one exists) instead of the autogenerated placeholder, matching TS-v1 / Python-v1 behavior.

0.35.0

(feat): Generate CONTRIBUTING.md for Swift SDKs.


0.34.2

(fix): Emit wire-test response bodies as Swift raw multi-line string literals (#"""..."""#) so that JSON escape sequences such as \n survive verbatim into the runtime String and reach JSONDecoder as valid JSON. The previous regular triple-quoted literal caused Swift to unescape \n into real newline characters at runtime, which produced invalid JSON (RFC 8259 disallows raw control characters inside JSON string values) and made JSONDecoder reject the body with dataCorrupted("The given data was not valid JSON.").


0.34.1

(fix): Properly escape control characters, real newlines, real backslashes, and real double quotes when emitting Swift string literals that wrap raw user data (example values, dynamic snippet inputs, JSON wire test fixtures). Previously, an example value containing a real newline (e.g. a multi-line iCalendar string) caused the generated SDK to fail Swift compilation with error: unterminated string literal.


0.34.0

(feat): Add retryStatusCodes configuration option ("legacy" | "recommended"). Legacy (default) preserves existing behavior (408, 429, >= 500). Recommended retries only transient codes (408, 429, 502, 503, 504), excluding 500 Internal Server Error to avoid retrying non-idempotent failures.


0.33.1

(fix): Fix dynamic snippet generation for endpoints whose body $refs a top-level schema. The snippet now passes the referenced type directly instead of wrapping it in a non-existent .init(body:) on the request wrapper struct.


0.33.0

(feat): Show explicit auth parameters in README snippets (errors, custom networking, environments sections) instead of eliding with (...). Uses IR placeholder fields when configured, with sensible defaults.


0.32.2

(chore): Bump @fern-api/generator-cli to 0.9.11. The GitHub pipeline step now creates signed commits via the GitHub REST API (matching fiddle’s legacy InMemoryGitRepo push path), restoring verified fern-api[bot] commits on replay-enabled orgs.

0.32.1

(chore): Add crash reporting via Sentry to the generator runtime, and classify thrown errors using the new shared GeneratorError taxonomy so user-facing failures (config, validation, auth, network, environment) are kept distinct from internal Fern bugs — only the latter are forwarded to Sentry. No change to generated output.


0.32.0

(chore): Bump @fern-api/generator-cli to 0.9.8. Changelog URLs in generated PRs now use the commit SHA instead of the PR branch name, keeping the link valid after the branch is deleted or squash-merged.