1.25.0-rc3

(fix): Fix dynamic snippet and wire test generation for endpoints with bytes body and path parameters. Previously, the generator produced nil for the io.Reader body argument instead of a valid bytes.NewReader([]byte(...)) call, causing wire test failures. Also fixed the nop request branch to include option arguments (e.g. test ID headers) in the method invocation, fixed path parameter resolution to use associateByWireValueOrDefault so missing path parameter values are synthesized, and fixed WireMock stub response generation to return an empty JSON object {} instead of a JSON string "" when the example response body is null but the endpoint declares a named (struct) response type.


1.25.0-rc2

(fix): Fix literal property doc comments leaking into the next field’s comments in generated Go structs. When a property has a literal type (e.g. stream boolean) and is excluded from the struct, its documentation was still being written, causing it to appear as part of the next field’s comments.


1.25.0-rc1

(fix): Fix non-deterministic ordering of generated test functions. The test generation for JSON marshaling, String methods, enum validation, and extra properties tests now sorts type names before iterating, ensuring consistent output across runs.


1.25.0-rc0

(feat): Add automated test generation for all Go SDK types. The generator now creates test files alongside generated code, covering getter and setter methods, JSON marshaling, String methods, enum validation, extra properties, and pointer helper functions. Generated tests include comprehensive scenarios for nil handling and edge cases. Also includes performance optimizations for regex compilation, slice allocation, and improved API design with struct-based configuration.


1.24.0

(feat): Add support for protocol-level SSE discrimination via the new discriminatorContext IR field. When a streaming endpoint returns a discriminated union with discriminatorContext: "protocol", the SSE event: field value is injected into the JSON data payload as the discriminant key before unmarshaling, so the union’s existing UnmarshalJSON works unchanged. If the data already contains the discriminant key, injection is skipped. Existing SSE endpoints using data-level discrimination (the default) are unaffected.

1.23.8

(feat): Add omitEmptyRequestWrappers configuration flag to skip generating empty request structs for endpoints where the SDK request wrapper has no user-facing fields. When enabled, endpoints whose wrapper was created (e.g., due to service headers) but where all fields are handled globally via RequestOptions will no longer produce an empty struct parameter in the method signature. The flag defaults to false for backward compatibility.


1.23.7

(fix): Fix MarshalJSON not being generated for inlined request types that have properties but no literals, dates, reference types, or extra properties. This caused the explicitFields tracking (used for explicit null serialization via setter methods) to be ineffective for simple request types.


1.23.6

(fix): Fix multipart file uploads to support in-memory readers (bytes.Reader, strings.Reader, etc.) by ensuring the filename attribute is always present in the Content-Disposition header. When no filename is provided, the field name is used as the default filename.

1.23.5

(fix): Fix wire tests to use configured clientConstructorName instead of hardcoded NewClient.


1.23.4

(fix): Fix unsafe pointer dereference in cycle.go.

1.23.3

(fix): Fix wire test generation for exhaustive fixture. This includes several fixes:

  • Fix int vs int64 type mismatch for long types by explicitly casting to int64
  • Fix enum values to use .Ptr() method for pointer types
  • Fix field names to use Go exported names (e.g., FieldString instead of String)
  • Add Bytes helper function for []byte pointer types
  • Skip endpoints returning primitive date types in wire tests (workaround for Go SDK date parsing issue where time.Time expects RFC3339 datetime format)

1.23.2

(fix): Fix undiscriminated union type matching in dynamic snippets and wire tests. Previously, when converting example values to undiscriminated union types, the generator would accept the first type that didn’t throw an error, even if the conversion resulted in a nop (no-op). This caused empty struct literals to be generated instead of properly initialized union variants. The fix now skips types that result in nop conversions and continues to the next type in the union.


1.23.1

(fix): Fix non-deterministic import ordering in generated Go files. Imports are now sorted alphabetically by alias, preventing unnecessary churn in automated seed updates.

1.23.0

(feat): Add RecvRaw method to stream API and improve SSE terminator handling for more robust server-sent event processing