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.