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


1.22.9

(chore): Update IR version to 61 to support Generation Metadata feature and maintain consistency with seed configuration.