4.46.10
(fix): Fix wire test generation to use endpoint ID for lookup instead of path matching.
This fixes a bug where wire tests would call the wrong client methods when multiple
namespaces have endpoints with the same HTTP method and path pattern (e.g., POST /v2/Services).
4.46.9
(fix): Fix wire test generation to filter out nop values when generating method arguments.
This prevents invalid Python syntax like param= without a value when an example
contains an invalid enum value or undefined property.
4.46.8
(fix): Bump version to remove rc from version tag.
4.46.7-rc3
(fix): Fix wire test generation for streaming endpoints. Streaming methods return lazy iterators
(Iterator[bytes] or AsyncIterator[bytes]) that don’t execute the HTTP request until iterated.
Wire tests now wrap streaming endpoint calls in ‘for _ in …: pass’ loops to ensure the
HTTP request is actually made. This applies to streaming, streamParameter, and fileDownload
response types.
4.46.7-rc2
(fix): Fixed Python SDK generation to use native Pydantic field aliases and improved core parsing so wire-key and nested/union validation works correctly across Pydantic v1/v2.
4.46.7-rc1
(chore): Update Dockerfile CVE patches to work with newer generator-cli package structures.
4.46.7-rc0
(chore): Skip installation of generator-cli in Python SDK generator as it is already installed in the base image.
4.46.6
(fix): Support custom x-fern-sdk-method-name on AsyncAPI operations.
4.46.5
(chore): Update to support IR version 62.6.0 with new WebSocketMessage.methodName field,
webhook response descriptions, and OpenAPI explode parameter support.
4.46.4-rc2
(chore): Add sdkVersion as a top-level field in the generated metadata.json file.
4.46.4-rc0
(fix): Fix wire test generation to use config.client.exported_class_name for the client class name
instead of deriving it from the organization and workspace names. This ensures wire tests
import and instantiate the correct client class when a custom exported class name is configured.
4.46.3
(fix): Fix empty request body issue where endpoints with all-optional fields would send an empty
body instead of {}. When an endpoint has a request body type but all fields are optional,
the SDK now correctly sends {} as valid JSON rather than omitting the body entirely.
4.46.4-rc1
(fix): Fix URL path stripping when base URL contains path prefixes.
4.46.2
(fix): Fix handling of newlines in default values for strings when using config.pydantic_config.use_provided_defaults.
4.46.1
(fix): Fix OAuth token handling for optional expires_in field with default fallback.
4.46.0
(feat): FastAPI Python codegen now emits parameter markers via typing.Annotated[...] with standard Python defaults for better FastAPI/Pydantic compatibility.
4.45.10
(fix): Fix retry logic “off-by-two” error. The internal retries counter now starts at 0
instead of 2, and max_retries defaults to 2 when not specified. This ensures users
get the expected number of retries (2 by default, or the configured max_retries value).
4.45.9
(fix): Fix empty query params stripping existing URL query strings. When params and
additional_query_parameters are both empty, httpx now receives params=None instead
of params=[], preserving any query parameters already present in the URL (e.g.,
pagination cursors like ?after=123).
4.45.8
(fix): Ensures the root client always exposes a headers parameter and forwards it to the underlying ClientWrapper.
4.45.7
(fix): Fix client wrapper instantiation to use the correct bearer token parameter name, preventing incorrect token= references when custom auth parameter names are configured.