3.66.0
(feat): Use auth scheme placeholder values in SDK client snippets when configured via
placeholder field on auth schemes.
3.65.5
(fix): Stop emitting the legacy queryParameters object at endpoint call sites. Query parameters
are now passed exclusively via queryString (produced by core.url.queryBuilder()).
The runtime Fetcher.Args.queryParameters field is retained (marked deprecated) for
custom-fetcher back-compat, and both queryParameters and queryString receive equivalent
log metadata and redaction of sensitive keys.
3.65.4
(chore): Bump @fern-api/generator-cli to 0.9.13, which fixes the publish of 0.9.12
(autoversion pipeline + @fern-api/replay 0.12.0) by marking @boundaryml/baml
as external in the generator-cli CLI bundle so esbuild no longer tries to
statically resolve baml’s platform-specific native bindings.
3.65.3
(chore): Bump @fern-api/generator-cli to 0.9.12, which ships the FER-9980 autoversion
pipeline (AutoVersionStep runs between the [fern-generated] commit and replay
apply, diffing pure generator output across runs to drive a semver bump and
changelog entry via FAI) and pins @fern-api/replay to 0.12.0.
3.65.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.
3.65.1
(chore): Wire the generator runtime into Sentry so internal generator errors are
reported with full context. User-facing failures (config, validation, auth,
network, environment) remain unreported. No change to generated output.
3.65.0
(feat): Add clientDefault support for headers, query parameters, and path
parameters. When a parameter has a clientDefault value (set via the
x-fern-default OpenAPI extension), the generated SDK uses that value
as a fallback when the caller does not provide one. Parameters with
clientDefault become optional in the client constructor and endpoint
signatures.
3.64.2
(fix): Read the SDK version and package name from the IR’s publishConfig when
available, not just for self-hosted orgs. This lets --version flow through
to the generated package.json and X-Fern-SDK-Version header when the
generator is invoked with output.location: local-file-system (where the
generator exec output mode is downloadFiles and does not itself carry a
version).
3.64.1
(chore): Bump @fern-api/generator-cli to 0.9.10 which upgrades @fern-api/replay to 0.11.0
and only pushes the fern-generation-base tag when replay has unresolved conflicts.
3.64.0
(feat): Add queryBuilder() for query parameter serialization with per-parameter format control.
The generator now emits a fluent builder pattern (core.url.queryBuilder()) for query string
construction, where each parameter’s serialization format is decided at code-gen time via
.add(key, value, { style: "comma" }). OpenAPI query parameters with explode: false use
the comma style to produce comma-separated values (e.g., tags=a,b,c).
3.63.8
(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.
3.63.7
(fix): Fix per-endpoint server overrides being ignored when top-level servers
define multiple base URLs with x-fern-server-name. Endpoints now correctly
resolve to their specified server URL instead of always using the default.
3.63.6
(fix): Fix OAuth token request to include literal custom properties (e.g., grant_type)
from the token endpoint request. Previously, only client_id and client_secret
were passed, causing TypeScript compilation errors for APIs that require
additional literal properties like grant_type on the token request.
3.63.5
(fix): Support inferred OAuth auth with form-encoded (application/x-www-form-urlencoded) token endpoints.
Previously, the generator crashed with “Cannot get exported name for request wrapper” when the
token endpoint used a justRequestBody shape instead of a wrapper shape.
3.63.4
(fix): Propagate license config to the license field in generated
package.json when publishing to npm registries.
3.63.3
(fix): Fix undiscriminated union variant matching in dynamic snippets selecting
incorrect variants when errors are added during conversion. The matcher
now checks whether errors were added (via errors.size() > errorsBefore)
alongside the existing isNop check, preventing empty objects from being
returned for union fields like options in generated code snippets.
3.63.1
(fix): Fix wire test expected response mismatch when noSerdeLayer is enabled and
the IR example shape contains fewer properties than the JSON example (e.g. for
inline types). The mock server sends the full raw JSON body, but the expected
assertion was built from the typed example which only included a subset of
properties. The test generator now uses the raw response body as the expected
value when noSerdeLayer is enabled, matching the SDK’s pass-through behavior.