0.26.3
(fix): Skip the Sec-WebSocket-Protocol header in WebSocket connections. This header is
reserved for RFC 6455 subprotocol negotiation and is handled internally by tungstenite.
Previously, including it as a regular HTTP header caused tungstenite to fail the
handshake when the server didn’t echo it back.
0.26.2
(chore): Include all optional fields as Option<T> parameters in convenience constructors.
Previously, {variant}_with_{field} constructors only accepted the promoted field and
defaulted all other optional fields to None. Now they accept all other optional fields
as Option<T> parameters, giving callers full control over all fields. For example,
assistant_with_tool_calls now accepts (content: Option<Content>, ..., tool_calls: Vec<ToolCall>)
instead of just (tool_calls: Vec<ToolCall>).
0.26.1
(fix): Fix convenience constructors for union variants whose optional fields have nested
optional/nullable IR wrappers (e.g. optional<nullable<string>> from OpenAPI).
Previously only one layer was unwrapped, leaving the parameter as Option<T> instead
of T, which caused E0308 mismatched types compilation errors. Now all
optional/nullable layers are stripped to produce the correct bare type.
0.26.0
(feat): Generate convenience constructors for discriminated union variants with optional fields.
For each optional field in an inlined variant, a {variant}_with_{field} constructor is
generated that accepts the field as a required parameter (unwrapped from Option<T>) while
defaulting all other optional fields to None. For example, an Assistant variant with
optional tool_calls now gets an assistant_with_tool_calls(tool_calls: Vec<ToolCall>)
constructor.
0.25.1
(fix): Stop generating empty HTTP client stubs for WebSocket-only subpackages. When an AsyncAPI
channel creates a subpackage with no HTTP endpoints (e.g., realtime, tts), the generator
no longer emits redundant empty client structs in resources/. The actual WebSocket
functionality remains in src/api/websocket/ via the WebSocketChannelGenerator. This
removes confusing name collisions between the empty HTTP-based RealtimeClient in resources
and the functional WebSocket-based RealtimeClient in the websocket module.
(fix): WebSocket connector now always auto-injects the Authorization header from the stored
client token, matching the TypeScript SDK experience where client.realtime.connect()
works without manually passing auth. Previously, channels with an explicit Authorization
header in the AsyncAPI spec required users to pass the token themselves.
0.25.0
(feat): Improve undiscriminated union design with snake_case method names, better variant naming,
deduplicating type references, and more.
0.24.1
(fix): Fix mod.rs module declarations not being removed for types inlined into discriminated
union variants. The generator was deleting the struct files for inlined types but still
emitting pub mod and pub use declarations for them, causing error[E0583]: file not found for module compilation errors in generated SDKs.