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.
1.22.8
(fix): Fix internal v1-side failure to pass alwaysSendRequiredProperties when visiting inlined request bodies.