0.40.5
(fix): Fix error.rs failing to compile when an error body has a property whose type is
a named (non-primitive) type or a non-string/non-u64 primitive (e.g. i64). Error
body fields are now deserialized with serde_json::from_value into their actual Rust
type (instead of always reading as_str()/as_u64()), and the crate prelude is
imported when a field references a generated type so it resolves in scope. Also fixes
a latent bug where errors sharing a status code all reused the first error’s body
fields; each variant is now constructed with its own fields.
0.40.4
(fix): Always wrap IR-derived error fields in Option to match constructor code
that assigns None for missing fields, preventing struct/constructor type
mismatches. Fix thiserror format strings: {{message}} → {message} so
field values are actually interpolated.
(fix): Register synthesized request-envelope types for endpoints with a
referenced request body AND query parameters in the model generator’s
types/mod.rs. Previously these types were generated but never
declared as modules, causing unresolved-type errors in the SDK crate.
0.40.3
(fix): Fix error field parsing to use camelCase JSON wire names matching REST conventions
(e.g. resourceId, authType, errorId) and derive error fields from the IR type
definition when available. Fix empty-body response handling: parse_response and
parse_response_raw now return Ok for empty 2xx bodies (unit/HEAD/204 responses)
and Err for empty 4xx/5xx bodies, preventing auth failures from being silently
swallowed on the with_executor path.
0.40.2
(fix): Change RequestExecutor::execute return type from Result<Response, reqwest::Error>
to Result<Response, Box<dyn std::error::Error + Send + Sync>> and add ApiError::Executor
variant. This allows downstream crates (e.g. CLI glue) to inject custom executor errors
without a backwards dependency on reqwest.