Skip to content

chore: release v0.42.0 - #2221

Merged
gold-silver-copper merged 1 commit into
mainfrom
release-plz-2026-07-28T10-35-22Z
Aug 17, 2026
Merged

chore: release v0.42.0#2221
gold-silver-copper merged 1 commit into
mainfrom
release-plz-2026-07-28T10-35-22Z

Conversation

@github-actions

@github-actions github-actions Bot commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

🤖 New release

  • rig-derive: 0.41.0 -> 0.42.0
  • rig-core: 0.41.0 -> 0.42.0 (⚠ API breaking changes)
  • rig-agent: 0.41.0 -> 0.42.0 (⚠ API breaking changes)
  • rig-bedrock: 0.41.0 -> 0.42.0 (✓ API compatible changes)
  • rig-candle: 0.41.0 -> 0.42.0 (⚠ API breaking changes)
  • rig-fastembed: 0.41.0 -> 0.42.0 (✓ API compatible changes)
  • rig-gemini-grpc: 0.41.0 -> 0.42.0 (✓ API compatible changes)
  • rig-helixdb: 0.41.0 -> 0.42.0 (✓ API compatible changes)
  • rig-lancedb: 0.41.0 -> 0.42.0 (✓ API compatible changes)
  • rig-memory: 0.41.0 -> 0.42.0 (✓ API compatible changes)
  • rig-milvus: 0.41.0 -> 0.42.0 (✓ API compatible changes)
  • rig-mongodb: 0.41.0 -> 0.42.0 (✓ API compatible changes)
  • rig-neo4j: 0.41.0 -> 0.42.0 (⚠ API breaking changes)
  • rig-postgres: 0.41.0 -> 0.42.0 (✓ API compatible changes)
  • rig-qdrant: 0.41.0 -> 0.42.0 (✓ API compatible changes)
  • rig-s3vectors: 0.41.0 -> 0.42.0 (✓ API compatible changes)
  • rig-scylladb: 0.41.0 -> 0.42.0 (✓ API compatible changes)
  • rig-sqlite: 0.41.0 -> 0.42.0 (✓ API compatible changes)
  • rig-surrealdb: 0.41.0 -> 0.42.0 (✓ API compatible changes)
  • rig-vectorize: 0.41.0 -> 0.42.0 (✓ API compatible changes)
  • rig-vertexai: 0.41.0 -> 0.42.0 (⚠ API breaking changes)
  • rig: 0.41.0 -> 0.42.0 (✓ API compatible changes)

rig-core breaking changes

--- failure constructible_struct_adds_field: externally-constructible struct adds field ---

Description:
A pub struct constructible with a struct literal has a new pub field. Existing struct literals must be updated to include the new field.
        ref: https://doc.rust-lang.org/reference/expressions/struct-expr.html
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.48.0/src/lints/constructible_struct_adds_field.ron

Failed in:
  field PartialUsage.cache_creation in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/anthropic/streaming.rs:246
  field PartialUsage.output_tokens_details in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/anthropic/streaming.rs:254
  field Usage.cached_tokens in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/cohere/completion.rs:123
  field CompletionResponse.provider_request_id in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/openai/responses_api/mod.rs:1678
  field CompletionResponse.created_at in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/openai/responses_api/mod.rs:1658
  field CompletionResponse.error in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/openai/responses_api/mod.rs:1662
  field CompletionResponse.incomplete_details in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/openai/responses_api/mod.rs:1664
  field CompletionResponse.instructions in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/openai/responses_api/mod.rs:1666
  field CompletionResponse.max_output_tokens in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/openai/responses_api/mod.rs:1668
  field CompletionResponse.provider_reasoning in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/openai/responses_api/mod.rs:1673
  field CompletionResponse.provider_request_id in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/openai/responses_api/mod.rs:1678
  field CompletionResponse.reasoning_metadata in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/openai/responses_api/mod.rs:1687
  field CompletionResponse.reasoning_context in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/openai/responses_api/mod.rs:1693
  field CompletionResponse.tools in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/openai/responses_api/mod.rs:1699
  field CompletionResponse.additional_parameters in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/openai/responses_api/mod.rs:1701
  field CompletionResponse.created_at in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/openai/responses_api/mod.rs:1658
  field CompletionResponse.error in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/openai/responses_api/mod.rs:1662
  field CompletionResponse.incomplete_details in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/openai/responses_api/mod.rs:1664
  field CompletionResponse.instructions in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/openai/responses_api/mod.rs:1666
  field CompletionResponse.max_output_tokens in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/openai/responses_api/mod.rs:1668
  field CompletionResponse.provider_reasoning in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/openai/responses_api/mod.rs:1673
  field CompletionResponse.provider_request_id in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/openai/responses_api/mod.rs:1678
  field CompletionResponse.reasoning_metadata in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/openai/responses_api/mod.rs:1687
  field CompletionResponse.reasoning_context in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/openai/responses_api/mod.rs:1693
  field CompletionResponse.tools in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/openai/responses_api/mod.rs:1699
  field CompletionResponse.additional_parameters in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/openai/responses_api/mod.rs:1701
  field StreamingCompletionResponse.status in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/openai/responses_api/streaming.rs:60
  field StreamingCompletionResponse.incomplete_details in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/openai/responses_api/streaming.rs:63
  field StreamingCompletionResponse.message_id in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/openai/responses_api/streaming.rs:70
  field StreamingCompletionResponse.response_id in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/openai/responses_api/streaming.rs:74
  field StreamingCompletionResponse.model in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/openai/responses_api/streaming.rs:77
  field StreamingCompletionResponse.provider_request_id in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/openai/responses_api/streaming.rs:82
  field StreamingCompletionResponse.finish_reason in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/cohere/streaming.rs:111
  field StreamingCompletionResponse.message_id in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/cohere/streaming.rs:114
  field ToolResult.call in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/completion/message.rs:278
  field ToolResult.provider in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/completion/message.rs:282
  field ToolResult.name in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/completion/message.rs:291
  field ToolResult.call in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/completion/message.rs:278
  field ToolResult.provider in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/completion/message.rs:282
  field ToolResult.name in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/completion/message.rs:291
  field CompletionResponse.response_id in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/completion/request.rs:323
  field CompletionResponse.provider_request_id in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/completion/request.rs:333
  field CompletionResponse.provider in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/completion/request.rs:347
  field CompletionResponse.model in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/completion/request.rs:353
  field CompletionResponse.response_id in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/completion/request.rs:323
  field CompletionResponse.provider_request_id in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/completion/request.rs:333
  field CompletionResponse.provider in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/completion/request.rs:347
  field CompletionResponse.model in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/completion/request.rs:353
  field RawStreamingToolCall.tool_id in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/streaming/mod.rs:674
  field ToolCall.id in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/ollama.rs:1075
  field Model.max_output_tokens in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/model/listing.rs:91
  field Model.max_output_tokens in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/model/listing.rs:91
  field ToolCall.provider in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/completion/message.rs:580
  field ToolCall.provider in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/completion/message.rs:580
  field ProviderResponseError.provider_request_id in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/provider_response.rs:26
  field ProviderResponseError.headers in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/provider_response.rs:32
  field Usage.completion_tokens_details in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/openrouter/client.rs:68
  field Usage.completion_tokens_details in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/openrouter/client.rs:68
  field ToolDefinition.strict in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/anthropic/completion.rs:266
  field BilledUnits.images in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/cohere/embeddings.rs:56
  field StreamingCompletionResponse.finish_reason in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/openai/completion/streaming.rs:200
  field StreamingCompletionResponse.response_id in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/openai/completion/streaming.rs:203
  field StreamingCompletionResponse.model in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/openai/completion/streaming.rs:206
  field StreamingCompletionResponse.provider_request_id in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/openai/completion/streaming.rs:211
  field StreamingCompletionResponse.finish_reason in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/openai/completion/streaming.rs:200
  field StreamingCompletionResponse.response_id in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/openai/completion/streaming.rs:203
  field StreamingCompletionResponse.model in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/openai/completion/streaming.rs:206
  field StreamingCompletionResponse.provider_request_id in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/openai/completion/streaming.rs:211
  field StreamingCompletionResponse.finish_reason in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/openai/completion/streaming.rs:200
  field StreamingCompletionResponse.response_id in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/openai/completion/streaming.rs:203
  field StreamingCompletionResponse.model in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/openai/completion/streaming.rs:206
  field StreamingCompletionResponse.provider_request_id in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/openai/completion/streaming.rs:211
  field StreamingCompletionResponse.response_id in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/gemini/streaming.rs:103
  field AnthropicRequestParams.static_prefix_cache_ttl in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/anthropic/completion.rs:2813
  field TranscriptionResponse.usage in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/openai/transcription.rs:25
  field TranscriptionResponse.usage in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/openai/transcription.rs:25
  field TranscriptionResponse.usage in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/openai/transcription.rs:25
  field StreamingCompletionResponse.model in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/ollama.rs:626
  field CompletionResponse.provider_request_id in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/anthropic/completion.rs:88
  field PromptTokensDetails.audio_tokens in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/mistral/client.rs:180
  field PromptTokensDetails.audio_tokens in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/mistral/client.rs:180
  field StreamingCompletionResponse.stop_reason in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/anthropic/streaming.rs:510
  field StreamingCompletionResponse.stop_sequence in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/anthropic/streaming.rs:522
  field StreamingCompletionResponse.message_id in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/anthropic/streaming.rs:525
  field StreamingCompletionResponse.model in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/anthropic/streaming.rs:528
  field StreamingCompletionResponse.provider_request_id in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/anthropic/streaming.rs:533
  field Usage.cache_creation in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/anthropic/completion.rs:151
  field Usage.output_tokens_details in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/anthropic/completion.rs:156

--- failure constructible_struct_adds_private_field: struct no longer constructible due to new private field ---

Description:
A struct constructible with a struct literal has a new non-public field. It can no longer be constructed using a struct literal outside of its crate.
        ref: https://doc.rust-lang.org/reference/expressions/struct-expr.html
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.48.0/src/lints/constructible_struct_adds_private_field.ron

Failed in:
  field CompletionResponse.finish_reason in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/completion/request.rs:343
  field CompletionResponse.finish_reason in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/completion/request.rs:343

--- failure enum_discriminants_undefined_non_unit_variant: enum's variants no longer have defined discriminants due to non-unit variant ---

Description:
An enum's variants no longer have well-defined discriminant values due to a tuple or struct variant in the enum. This breaks downstream code that accesses discriminants via a numeric cast like `as isize`.
        ref: https://doc.rust-lang.org/reference/items/enumerations.html#assigning-discriminant-values
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.48.0/src/lints/enum_discriminants_undefined_non_unit_variant.ron

Failed in:
  enum ResponseStatus in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/openai/responses_api/mod.rs:1111
  enum BlockReason in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/gemini/completion.rs:1494
  enum FinishReason in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/gemini/completion.rs:1514
  enum InteractionStatus in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/gemini/interactions_api/mod.rs:1113
  enum InteractionStatus in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/gemini/interactions_api/mod.rs:1113
  enum FinishReason in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/cohere/completion.rs:88

--- failure enum_missing: pub enum removed or renamed ---

Description:
A publicly-visible enum cannot be imported by its prior path. A `pub use` may have been removed, or the enum itself may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.48.0/src/lints/enum_missing.ron

Failed in:
  enum rig_core::providers::mira::MiraError, previously in file /tmp/.tmpNbF798/rig-core/src/providers/mira.rs:136
  enum rig_core::providers::ollama::UserContent, previously in file /tmp/.tmpNbF798/rig-core/src/providers/ollama.rs:1287
  enum rig_core::providers::ollama::SystemContentType, previously in file /tmp/.tmpNbF798/rig-core/src/providers/ollama.rs:1249
  enum rig_core::providers::doubleword::client::doubleword_api_types::ApiResponse, previously in file /tmp/.tmpNbF798/rig-core/src/providers/doubleword/client.rs:123

--- failure enum_no_repr_variant_discriminant_changed: enum variant had its discriminant change value ---

Description:
The enum's variant had its discriminant value change. This breaks downstream code that used its value via a numeric cast like `as isize`.
        ref: https://doc.rust-lang.org/reference/items/enumerations.html#assigning-discriminant-values
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.48.0/src/lints/enum_no_repr_variant_discriminant_changed.ron

Failed in:
  variant Message::Assistant 2 -> 0 in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/deepseek.rs:271

--- failure enum_struct_variant_changed_kind: An enum struct variant changed kind ---

Description:
A pub enum's struct variant with at least one pub field has changed to a different kind of enum variant, breaking access to its pub fields.
        ref: https://doc.rust-lang.org/reference/items/enumerations.html
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.48.0/src/lints/enum_struct_variant_changed_kind.ron

Failed in:
  variant Citation::CharLocation in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/anthropic/completion.rs:543
  variant Citation::PageLocation in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/anthropic/completion.rs:545
  variant Citation::ContentBlockLocation in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/anthropic/completion.rs:547
  variant Citation::SearchResultLocation in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/anthropic/completion.rs:549
  variant Citation::WebSearchResultLocation in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/anthropic/completion.rs:551

--- failure enum_struct_variant_field_added: pub enum struct variant field added ---

Description:
An enum's exhaustive struct variant has a new field, which has to be included when constructing or matching on this variant.
        ref: https://doc.rust-lang.org/reference/attributes/type_system.html#the-non_exhaustive-attribute
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.48.0/src/lints/enum_struct_variant_field_added.ron

Failed in:
  field id of variant MockStreamEvent::TextStart in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/test_utils/streaming.rs:44
  field provider_id of variant StreamedAssistantContent::ReasoningDelta in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/streaming/mod.rs:2892
  field id of variant RawStreamingChoice::TextStart in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/streaming/mod.rs:440
  field provider_id of variant RawStreamingChoice::Reasoning in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/streaming/mod.rs:504
  field provider_id of variant RawStreamingChoice::ReasoningDelta in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/streaming/mod.rs:578

--- failure enum_struct_variant_field_missing: pub enum struct variant's field removed or renamed ---

Description:
A publicly-visible enum has a struct variant whose field is no longer available under its prior name. It may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.48.0/src/lints/enum_struct_variant_field_missing.ron

Failed in:
  field internal_call_id of variant MockStreamEvent::ToolCallDelta, previously in file /tmp/.tmpNbF798/rig-core/src/test_utils/streaming.rs:65
  field id of variant StreamedAssistantContent::ToolCallDelta, previously in file /tmp/.tmpNbF798/rig-core/src/streaming.rs:972
  field internal_call_id of variant RawStreamingChoice::ToolCallDelta, previously in file /tmp/.tmpNbF798/rig-core/src/streaming.rs:100

--- failure enum_tuple_variant_changed_kind: An enum tuple variant changed kind ---

Description:
A public enum's exhaustive tuple variant has changed to a different kind of enum variant, breaking possible instantiations and patterns.
        ref: https://doc.rust-lang.org/reference/items/enumerations.html
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.48.0/src/lints/enum_tuple_variant_changed_kind.ron

Failed in:
  variant StreamedAssistantContent::Reasoning in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/streaming/mod.rs:2872

--- failure enum_unit_variant_changed_kind: An enum unit variant changed kind ---

Description:
A public enum's exhaustive unit variant has changed to a different kind of enum variant, breaking possible instantiations and patterns.
        ref: https://doc.rust-lang.org/reference/items/enumerations.html
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.48.0/src/lints/enum_unit_variant_changed_kind.ron

Failed in:
  variant ContentDelta::Unknown in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/anthropic/streaming.rs:153

--- failure enum_variant_added: enum variant added on exhaustive enum ---

Description:
A publicly-visible enum without #[non_exhaustive] has a new variant.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#enum-variant-new
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.48.0/src/lints/enum_variant_added.ron

Failed in:
  variant ContentDelta:ArgumentsDelta in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/gemini/interactions_api/mod.rs:2271
  variant ContentDelta:ArgumentsDelta in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/gemini/interactions_api/mod.rs:2271
  variant BlockReason:Unknown in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/gemini/completion.rs:1509
  variant ResponseStatus:Other in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/openai/responses_api/mod.rs:1119
  variant StreamingEvent:Error in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/anthropic/streaming.rs:113
  variant FinishReason:Unknown in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/gemini/completion.rs:1550
  variant ContentPartChunkPart:Unknown in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/openai/responses_api/streaming.rs:1358
  variant Error:InvalidStatusCodeWithDetails in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/http_client/mod.rs:27
  variant MockHttpResponse:ErrorWithHeaders in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/test_utils/http.rs:41
  variant MockHttpResponse:ErrorResponseWithHeaders in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/test_utils/http.rs:44
  variant InteractionStatus:Unknown in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/gemini/interactions_api/mod.rs:1125
  variant InteractionStatus:Unknown in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/gemini/interactions_api/mod.rs:1125
  variant RawStreamingChoice:ToolInputEnd in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/streaming/mod.rs:485
  variant RawStreamingChoice:ReasoningStart in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/streaming/mod.rs:515
  variant RawStreamingChoice:ReasoningEnd in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/streaming/mod.rs:545
  variant RawStreamingChoice:TextEnd in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/streaming/mod.rs:564
  variant FinishReason:Other in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/cohere/completion.rs:97
  variant MockError:ProviderResponse in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/test_utils/completion.rs:27
  variant ItemChunkKind:ReasoningTextDone in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/openai/responses_api/streaming.rs:1320
  variant ResponsesWebSocketEvent:Unknown in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/openai/responses_api/websocket.rs:174

--- failure enum_variant_missing: pub enum variant removed or renamed ---

Description:
A publicly-visible enum has at least one variant that is no longer available under its prior name. It may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.48.0/src/lints/enum_variant_missing.ron

Failed in:
  variant StreamingEvent::Unknown, previously in file /tmp/.tmpNbF798/rig-core/src/providers/anthropic/streaming.rs:103
  variant ModelListingError::RateLimitError, previously in file /tmp/.tmpNbF798/rig-core/src/model/listing.rs:319
  variant ModelListingError::ServiceUnavailable, previously in file /tmp/.tmpNbF798/rig-core/src/model/listing.rs:325
  variant ModelListingError::UnknownError, previously in file /tmp/.tmpNbF798/rig-core/src/model/listing.rs:331
  variant ModelListingError::RateLimitError, previously in file /tmp/.tmpNbF798/rig-core/src/model/listing.rs:319
  variant ModelListingError::ServiceUnavailable, previously in file /tmp/.tmpNbF798/rig-core/src/model/listing.rs:325
  variant ModelListingError::UnknownError, previously in file /tmp/.tmpNbF798/rig-core/src/model/listing.rs:331
  variant ItemChunkKind::Unknown, previously in file /tmp/.tmpNbF798/rig-core/src/providers/openai/responses_api/streaming.rs:772
  variant Message::System, previously in file /tmp/.tmpNbF798/rig-core/src/providers/deepseek.rs:296
  variant Message::User, previously in file /tmp/.tmpNbF798/rig-core/src/providers/deepseek.rs:301
  variant Message::ToolResult, previously in file /tmp/.tmpNbF798/rig-core/src/providers/deepseek.rs:321

--- failure function_missing: pub fn removed or renamed ---

Description:
A publicly-visible function cannot be imported by its prior path. A `pub use` may have been removed, or the function itself may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.48.0/src/lints/function_missing.ron

Failed in:
  function rig_core::one_or_many::string_or_option_one_or_many, previously in file /tmp/.tmpNbF798/rig-core/src/one_or_many.rs:433
  function rig_core::one_or_many::string_or_one_or_many, previously in file /tmp/.tmpNbF798/rig-core/src/one_or_many.rs:381
  function rig_core::http_client::with_bearer_auth, previously in file /tmp/.tmpNbF798/rig-core/src/http_client/mod.rs:118
  function rig_core::providers::anthropic::completion::apply_cache_control, previously in file /tmp/.tmpNbF798/rig-core/src/providers/anthropic/completion.rs:1892

--- failure function_parameter_count_changed: pub fn parameter count changed ---

Description:
A publicly-visible function now takes a different number of parameters.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#fn-change-arity
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.48.0/src/lints/function_parameter_count_changed.ron

Failed in:
  rig_core::providers::openai::completion::streaming::send_compatible_streaming_request now takes 3 parameters instead of 2, in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/openai/completion/streaming.rs:519
  rig_core::providers::openai::streaming::send_compatible_streaming_request now takes 3 parameters instead of 2, in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/openai/completion/streaming.rs:519
  rig_core::providers::openai::send_compatible_streaming_request now takes 3 parameters instead of 2, in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/openai/completion/streaming.rs:519

--- failure inherent_method_missing: pub method removed or renamed ---

Description:
A publicly-visible method or associated fn is no longer available under its prior name. It may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.48.0/src/lints/inherent_method_missing.ron

Failed in:
  RawStreamingToolCall::with_internal_call_id, previously in file /tmp/.tmpNbF798/rig-core/src/streaming.rs:182
  InMemoryVectorStoreBuilder::documents_with_id_f, previously in file /tmp/.tmpNbF798/rig-core/src/vector_store/builder.rs:91
  InMemoryVectorStoreBuilder::documents_with_id_f, previously in file /tmp/.tmpNbF798/rig-core/src/vector_store/builder.rs:91
  Reasoning::optional_id, previously in file /tmp/.tmpNbF798/rig-core/src/completion/message.rs:118
  Reasoning::optional_id, previously in file /tmp/.tmpNbF798/rig-core/src/completion/message.rs:118
  Image::try_into_url, previously in file /tmp/.tmpNbF798/rig-core/src/completion/message.rs:397
  Image::try_into_url, previously in file /tmp/.tmpNbF798/rig-core/src/completion/message.rs:397
  InMemoryVectorStore::get_document, previously in file /tmp/.tmpNbF798/rig-core/src/vector_store/in_memory_store.rs:421
  InMemoryVectorStore::get_document, previously in file /tmp/.tmpNbF798/rig-core/src/vector_store/in_memory_store.rs:421
  ToolCall::with_call_id, previously in file /tmp/.tmpNbF798/rig-core/src/completion/message.rs:307
  ToolCall::with_call_id, previously in file /tmp/.tmpNbF798/rig-core/src/completion/message.rs:307
  CompletionRequest::with_provider_tool, previously in file /tmp/.tmpNbF798/rig-core/src/completion/request.rs:495
  CompletionRequest::with_provider_tools, previously in file /tmp/.tmpNbF798/rig-core/src/completion/request.rs:502
  CompletionRequest::with_provider_tool, previously in file /tmp/.tmpNbF798/rig-core/src/completion/request.rs:495
  CompletionRequest::with_provider_tools, previously in file /tmp/.tmpNbF798/rig-core/src/completion/request.rs:502
  ModelListingError::auth_error, previously in file /tmp/.tmpNbF798/rig-core/src/model/listing.rs:423
  ModelListingError::rate_limit_error, previously in file /tmp/.tmpNbF798/rig-core/src/model/listing.rs:430
  ModelListingError::service_unavailable, previously in file /tmp/.tmpNbF798/rig-core/src/model/listing.rs:437
  ModelListingError::unknown_error, previously in file /tmp/.tmpNbF798/rig-core/src/model/listing.rs:444
  ModelListingError::auth_error, previously in file /tmp/.tmpNbF798/rig-core/src/model/listing.rs:423
  ModelListingError::rate_limit_error, previously in file /tmp/.tmpNbF798/rig-core/src/model/listing.rs:430
  ModelListingError::service_unavailable, previously in file /tmp/.tmpNbF798/rig-core/src/model/listing.rs:437
  ModelListingError::unknown_error, previously in file /tmp/.tmpNbF798/rig-core/src/model/listing.rs:444
  DocumentSourceKind::raw, previously in file /tmp/.tmpNbF798/rig-core/src/completion/message.rs:457
  DocumentSourceKind::unknown, previously in file /tmp/.tmpNbF798/rig-core/src/completion/message.rs:467
  DocumentSourceKind::raw, previously in file /tmp/.tmpNbF798/rig-core/src/completion/message.rs:457
  DocumentSourceKind::unknown, previously in file /tmp/.tmpNbF798/rig-core/src/completion/message.rs:467
  Message::assistant_with_id, previously in file /tmp/.tmpNbF798/rig-core/src/completion/message.rs:672
  Message::tool_result_with_call_id, previously in file /tmp/.tmpNbF798/rig-core/src/completion/message.rs:690
  Message::assistant_with_id, previously in file /tmp/.tmpNbF798/rig-core/src/completion/message.rs:672
  Message::tool_result_with_call_id, previously in file /tmp/.tmpNbF798/rig-core/src/completion/message.rs:690
  Message::assistant_with_id, previously in file /tmp/.tmpNbF798/rig-core/src/completion/message.rs:672
  Message::tool_result_with_call_id, previously in file /tmp/.tmpNbF798/rig-core/src/completion/message.rs:690
  Message::assistant_with_id, previously in file /tmp/.tmpNbF798/rig-core/src/completion/message.rs:672
  Message::tool_result_with_call_id, previously in file /tmp/.tmpNbF798/rig-core/src/completion/message.rs:690

--- failure method_parameter_count_changed: pub method parameter count changed ---

Description:
A publicly-visible method now takes a different number of parameters, not counting the receiver (self) parameter.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#fn-change-arity
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.48.0/src/lints/method_parameter_count_changed.ron

Failed in:
  rig_core::streaming::StreamingCompletionResponse::stream takes 1 parameters in /tmp/.tmpNbF798/rig-core/src/streaming.rs:260, but now takes 2 parameters in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/streaming/mod.rs:903
  rig_core::completion::message::UserContent::tool_result takes 2 parameters in /tmp/.tmpNbF798/rig-core/src/completion/message.rs:837, but now takes 3 parameters in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/completion/message.rs:1427
  rig_core::completion::message::UserContent::tool_result_with_call_id takes 3 parameters in /tmp/.tmpNbF798/rig-core/src/completion/message.rs:846, but now takes 4 parameters in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/completion/message.rs:1476
  rig_core::message::UserContent::tool_result takes 2 parameters in /tmp/.tmpNbF798/rig-core/src/completion/message.rs:837, but now takes 3 parameters in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/completion/message.rs:1427
  rig_core::message::UserContent::tool_result_with_call_id takes 3 parameters in /tmp/.tmpNbF798/rig-core/src/completion/message.rs:846, but now takes 4 parameters in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/completion/message.rs:1476
  rig_core::test_utils::MockStreamEvent::text_start takes 1 parameters in /tmp/.tmpNbF798/rig-core/src/test_utils/streaming.rs:97, but now takes 2 parameters in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/test_utils/streaming.rs:113
  rig_core::test_utils::MockStreamEvent::tool_call_name_delta takes 3 parameters in /tmp/.tmpNbF798/rig-core/src/test_utils/streaming.rs:129, but now takes 2 parameters in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/test_utils/streaming.rs:148
  rig_core::test_utils::MockStreamEvent::tool_call_arguments_delta takes 3 parameters in /tmp/.tmpNbF798/rig-core/src/test_utils/streaming.rs:142, but now takes 2 parameters in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/test_utils/streaming.rs:156
  rig_core::test_utils::MockStreamEvent::reasoning_delta takes 2 parameters in /tmp/.tmpNbF798/rig-core/src/test_utils/streaming.rs:174, but now takes 1 parameters in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/test_utils/streaming.rs:187
  rig_core::completion::message::Message::tool_result takes 2 parameters in /tmp/.tmpNbF798/rig-core/src/completion/message.rs:680, but now takes 3 parameters in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/completion/message.rs:1317
  rig_core::message::Message::tool_result takes 2 parameters in /tmp/.tmpNbF798/rig-core/src/completion/message.rs:680, but now takes 3 parameters in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/completion/message.rs:1317
  rig_core::completion::Message::tool_result takes 2 parameters in /tmp/.tmpNbF798/rig-core/src/completion/message.rs:680, but now takes 3 parameters in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/completion/message.rs:1317
  rig_core::prelude::Message::tool_result takes 2 parameters in /tmp/.tmpNbF798/rig-core/src/completion/message.rs:680, but now takes 3 parameters in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/completion/message.rs:1317

--- failure module_missing: pub module removed or renamed ---

Description:
A publicly-visible module cannot be imported by its prior path. A `pub use` may have been removed, or the module may have been renamed, removed, or made non-public.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.48.0/src/lints/module_missing.ron

Failed in:
  mod rig_core::providers::doubleword::client::doubleword_api_types, previously in file /tmp/.tmpNbF798/rig-core/src/providers/doubleword/client.rs:98
  mod rig_core::one_or_many, previously in file /tmp/.tmpNbF798/rig-core/src/one_or_many.rs:1

--- failure struct_missing: pub struct removed or renamed ---

Description:
A publicly-visible struct cannot be imported by its prior path. A `pub use` may have been removed, or the struct itself may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.48.0/src/lints/struct_missing.ron

Failed in:
  struct rig_core::providers::gemini::interactions_api::interactions_api_types::CodeExecutionCallDelta, previously in file /tmp/.tmpNbF798/rig-core/src/providers/gemini/interactions_api/mod.rs:2476
  struct rig_core::providers::gemini::interactions_api::CodeExecutionCallDelta, previously in file /tmp/.tmpNbF798/rig-core/src/providers/gemini/interactions_api/mod.rs:2476
  struct rig_core::providers::gemini::interactions_api::interactions_api_types::GoogleSearchCallDelta, previously in file /tmp/.tmpNbF798/rig-core/src/providers/gemini/interactions_api/mod.rs:2520
  struct rig_core::providers::gemini::interactions_api::GoogleSearchCallDelta, previously in file /tmp/.tmpNbF798/rig-core/src/providers/gemini/interactions_api/mod.rs:2520
  struct rig_core::providers::openai::audio_generation::AudioGenerationModel, previously in file /tmp/.tmpNbF798/rig-core/src/providers/openai/audio_generation.rs:13
  struct rig_core::providers::gemini::interactions_api::interactions_api_types::FileSearchResultDelta, previously in file /tmp/.tmpNbF798/rig-core/src/providers/gemini/interactions_api/mod.rs:2568
  struct rig_core::providers::gemini::interactions_api::FileSearchResultDelta, previously in file /tmp/.tmpNbF798/rig-core/src/providers/gemini/interactions_api/mod.rs:2568
  struct rig_core::providers::groq::TranscriptionModel, previously in file /tmp/.tmpNbF798/rig-core/src/providers/groq.rs:268
  struct rig_core::providers::azure::EmbeddingData, previously in file /tmp/.tmpNbF798/rig-core/src/providers/azure.rs:365
  struct rig_core::providers::gemini::interactions_api::interactions_api_types::CodeExecutionExchange, previously in file /tmp/.tmpNbF798/rig-core/src/providers/gemini/interactions_api/mod.rs:867
  struct rig_core::providers::gemini::interactions_api::CodeExecutionExchange, previously in file /tmp/.tmpNbF798/rig-core/src/providers/gemini/interactions_api/mod.rs:867
  struct rig_core::providers::azure::Usage, previously in file /tmp/.tmpNbF798/rig-core/src/providers/azure.rs:372
  struct rig_core::providers::doubleword::embedding::EmbeddingModel, previously in file /tmp/.tmpNbF798/rig-core/src/providers/doubleword/embedding.rs:43
  struct rig_core::providers::doubleword::EmbeddingModel, previously in file /tmp/.tmpNbF798/rig-core/src/providers/doubleword/embedding.rs:43
  struct rig_core::providers::openrouter::transcription::TranscriptionModel, previously in file /tmp/.tmpNbF798/rig-core/src/providers/openrouter/transcription.rs:89
  struct rig_core::providers::openrouter::TranscriptionModel, previously in file /tmp/.tmpNbF798/rig-core/src/providers/openrouter/transcription.rs:89
  struct rig_core::providers::gemini::transcription::TranscriptionModel, previously in file /tmp/.tmpNbF798/rig-core/src/providers/gemini/transcription.rs:22
  struct rig_core::providers::azure::AudioGenerationModel, previously in file /tmp/.tmpNbF798/rig-core/src/providers/azure.rs:772
  struct rig_core::providers::copilot::ChatCompletionResponse, previously in file /tmp/.tmpNbF798/rig-core/src/providers/copilot/mod.rs:595
  struct rig_core::providers::doubleword::client::doubleword_api_types::ApiError, previously in file /tmp/.tmpNbF798/rig-core/src/providers/doubleword/client.rs:113
  struct rig_core::providers::gemini::interactions_api::interactions_api_types::AudioDelta, previously in file /tmp/.tmpNbF798/rig-core/src/providers/gemini/interactions_api/mod.rs:2405
  struct rig_core::providers::gemini::interactions_api::AudioDelta, previously in file /tmp/.tmpNbF798/rig-core/src/providers/gemini/interactions_api/mod.rs:2405
  struct rig_core::providers::gemini::interactions_api::interactions_api_types::CodeExecutionResultDelta, previously in file /tmp/.tmpNbF798/rig-core/src/providers/gemini/interactions_api/mod.rs:2485
  struct rig_core::providers::gemini::interactions_api::CodeExecutionResultDelta, previously in file /tmp/.tmpNbF798/rig-core/src/providers/gemini/interactions_api/mod.rs:2485
  struct rig_core::providers::gemini::interactions_api::interactions_api_types::GoogleSearchResultDelta, previously in file /tmp/.tmpNbF798/rig-core/src/providers/gemini/interactions_api/mod.rs:2529
  struct rig_core::providers::gemini::interactions_api::GoogleSearchResultDelta, previously in file /tmp/.tmpNbF798/rig-core/src/providers/gemini/interactions_api/mod.rs:2529
  struct rig_core::providers::azure::ImageGenerationModel, previously in file /tmp/.tmpNbF798/rig-core/src/providers/azure.rs:689
  struct rig_core::providers::ollama::ImageUrl, previously in file /tmp/.tmpNbF798/rig-core/src/providers/ollama.rs:1301
  struct rig_core::providers::gemini::interactions_api::interactions_api_types::UrlContextExchange, previously in file /tmp/.tmpNbF798/rig-core/src/providers/gemini/interactions_api/mod.rs:830
  struct rig_core::providers::gemini::interactions_api::UrlContextExchange, previously in file /tmp/.tmpNbF798/rig-core/src/providers/gemini/interactions_api/mod.rs:830
  struct rig_core::providers::azure::EmbeddingResponse, previously in file /tmp/.tmpNbF798/rig-core/src/providers/azure.rs:357
  struct rig_core::test_utils::MockResponse, previously in file /tmp/.tmpNbF798/rig-core/src/test_utils/streaming.rs:12
  struct rig_core::providers::doubleword::embedding::Usage, previously in file /tmp/.tmpNbF798/rig-core/src/providers/doubleword/embedding.rs:37
  struct rig_core::providers::doubleword::Usage, previously in file /tmp/.tmpNbF798/rig-core/src/providers/doubleword/embedding.rs:37
  struct rig_core::providers::ollama::SystemContent, previously in file /tmp/.tmpNbF798/rig-core/src/providers/ollama.rs:1241
  struct rig_core::providers::doubleword::embedding::EmbeddingData, previously in file /tmp/.tmpNbF798/rig-core/src/providers/doubleword/embedding.rs:30
  struct rig_core::providers::doubleword::EmbeddingData, previously in file /tmp/.tmpNbF798/rig-core/src/providers/doubleword/embedding.rs:30
  struct rig_core::one_or_many::IterMut, previously in file /tmp/.tmpNbF798/rig-core/src/one_or_many.rs:273
  struct rig_core::providers::gemini::interactions_api::interactions_api_types::DocumentDelta, previously in file /tmp/.tmpNbF798/rig-core/src/providers/gemini/interactions_api/mod.rs:2416
  struct rig_core::providers::gemini::interactions_api::DocumentDelta, previously in file /tmp/.tmpNbF798/rig-core/src/providers/gemini/interactions_api/mod.rs:2416
  struct rig_core::providers::gemini::interactions_api::interactions_api_types::FunctionCallDelta, previously in file /tmp/.tmpNbF798/rig-core/src/providers/gemini/interactions_api/mod.rs:2452
  struct rig_core::providers::gemini::interactions_api::FunctionCallDelta, previously in file /tmp/.tmpNbF798/rig-core/src/providers/gemini/interactions_api/mod.rs:2452
  struct rig_core::providers::gemini::interactions_api::interactions_api_types::UrlContextCallDelta, previously in file /tmp/.tmpNbF798/rig-core/src/providers/gemini/interactions_api/mod.rs:2498
  struct rig_core::providers::gemini::interactions_api::UrlContextCallDelta, previously in file /tmp/.tmpNbF798/rig-core/src/providers/gemini/interactions_api/mod.rs:2498
  struct rig_core::providers::gemini::interactions_api::interactions_api_types::McpServerToolCallDelta, previously in file /tmp/.tmpNbF798/rig-core/src/providers/gemini/interactions_api/mod.rs:2542
  struct rig_core::providers::gemini::interactions_api::McpServerToolCallDelta, previously in file /tmp/.tmpNbF798/rig-core/src/providers/gemini/interactions_api/mod.rs:2542
  struct rig_core::providers::mistral::transcription::TranscriptionModel, previously in file /tmp/.tmpNbF798/rig-core/src/providers/mistral/transcription.rs:94
  struct rig_core::providers::mistral::TranscriptionModel, previously in file /tmp/.tmpNbF798/rig-core/src/providers/mistral/transcription.rs:94
  struct rig_core::providers::gemini::interactions_api::interactions_api_types::GoogleSearchExchange, previously in file /tmp/.tmpNbF798/rig-core/src/providers/gemini/interactions_api/mod.rs:793
  struct rig_core::providers::gemini::interactions_api::GoogleSearchExchange, previously in file /tmp/.tmpNbF798/rig-core/src/providers/gemini/interactions_api/mod.rs:793
  struct rig_core::one_or_many::Iter, previously in file /tmp/.tmpNbF798/rig-core/src/one_or_many.rs:193
  struct rig_core::providers::openai::transcription::TranscriptionModel, previously in file /tmp/.tmpNbF798/rig-core/src/providers/openai/transcription.rs:35
  struct rig_core::providers::openai::TranscriptionModel, previously in file /tmp/.tmpNbF798/rig-core/src/providers/openai/transcription.rs:35
  struct rig_core::providers::doubleword::client::doubleword_api_types::ApiErrorResponse, previously in file /tmp/.tmpNbF798/rig-core/src/providers/doubleword/client.rs:108
  struct rig_core::one_or_many::EmptyListError, previously in file /tmp/.tmpNbF798/rig-core/src/one_or_many.rs:25
  struct rig_core::EmptyListError, previously in file /tmp/.tmpNbF798/rig-core/src/one_or_many.rs:25
  struct rig_core::one_or_many::IntoIter, previously in file /tmp/.tmpNbF798/rig-core/src/one_or_many.rs:224
  struct rig_core::providers::copilot::ChatChoice, previously in file /tmp/.tmpNbF798/rig-core/src/providers/copilot/mod.rs:608
  struct rig_core::providers::azure::TranscriptionModel, previously in file /tmp/.tmpNbF798/rig-core/src/providers/azure.rs:583
  struct rig_core::providers::gemini::interactions_api::interactions_api_types::VideoDelta, previously in file /tmp/.tmpNbF798/rig-core/src/providers/gemini/interactions_api/mod.rs:2427
  struct rig_core::providers::gemini::interactions_api::VideoDelta, previously in file /tmp/.tmpNbF798/rig-core/src/providers/gemini/interactions_api/mod.rs:2427
  struct rig_core::providers::gemini::interactions_api::interactions_api_types::FunctionResultDelta, previously in file /tmp/.tmpNbF798/rig-core/src/providers/gemini/interactions_api/mod.rs:2463
  struct rig_core::providers::gemini::interactions_api::FunctionResultDelta, previously in file /tmp/.tmpNbF798/rig-core/src/providers/gemini/interactions_api/mod.rs:2463
  struct rig_core::providers::gemini::interactions_api::interactions_api_types::UrlContextResultDelta, previously in file /tmp/.tmpNbF798/rig-core/src/providers/gemini/interactions_api/mod.rs:2507
  struct rig_core::providers::gemini::interactions_api::UrlContextResultDelta, previously in file /tmp/.tmpNbF798/rig-core/src/providers/gemini/interactions_api/mod.rs:2507
  struct rig_core::providers::ollama::AssistantContent, previously in file /tmp/.tmpNbF798/rig-core/src/providers/ollama.rs:1274
  struct rig_core::providers::gemini::interactions_api::interactions_api_types::McpServerToolResultDelta, previously in file /tmp/.tmpNbF798/rig-core/src/providers/gemini/interactions_api/mod.rs:2555
  struct rig_core::providers::gemini::interactions_api::McpServerToolResultDelta, previously in file /tmp/.tmpNbF798/rig-core/src/providers/gemini/interactions_api/mod.rs:2555
  struct rig_core::providers::doubleword::embedding::EmbeddingResponse, previously in file /tmp/.tmpNbF798/rig-core/src/providers/doubleword/embedding.rs:23
  struct rig_core::providers::doubleword::EmbeddingResponse, previously in file /tmp/.tmpNbF798/rig-core/src/providers/doubleword/embedding.rs:23
  struct rig_core::providers::huggingface::transcription::TranscriptionModel, previously in file /tmp/.tmpNbF798/rig-core/src/providers/huggingface/transcription.rs:36
  struct rig_core::one_or_many::OneOrMany, previously in file /tmp/.tmpNbF798/rig-core/src/one_or_many.rs:15
  struct rig_core::prelude::OneOrMany, previously in file /tmp/.tmpNbF798/rig-core/src/one_or_many.rs:15
  struct rig_core::OneOrMany, previously in file /tmp/.tmpNbF798/rig-core/src/one_or_many.rs:15
  struct rig_core::providers::hyperbolic::ImageGenerationModel, previously in file /tmp/.tmpNbF798/rig-core/src/providers/hyperbolic.rs:211
  struct rig_core::providers::openai::image_generation::ImageGenerationModel, previously in file /tmp/.tmpNbF798/rig-core/src/providers/openai/image_generation.rs:56
  struct rig_core::providers::openai::ImageGenerationModel, previously in file /tmp/.tmpNbF798/rig-core/src/providers/openai/image_generation.rs:56
  struct rig_core::providers::openai::responses_api::OutputReasoning, previously in file /tmp/.tmpNbF798/rig-core/src/providers/openai/responses_api/mod.rs:2147
  struct rig_core::providers::xai::audio_generation::AudioGenerationModel, previously in file /tmp/.tmpNbF798/rig-core/src/providers/xai/audio_generation.rs:16
  struct rig_core::providers::xai::AudioGenerationModel, previously in file /tmp/.tmpNbF798/rig-core/src/providers/xai/audio_generation.rs:16
  struct rig_core::providers::azure::EmbeddingModel, previously in file /tmp/.tmpNbF798/rig-core/src/providers/azure.rs:400
  struct rig_core::providers::xai::completion::CompletionModel, previously in file /tmp/.tmpNbF798/rig-core/src/providers/xai/completion.rs:173
  struct rig_core::providers::xai::CompletionModel, previously in file /tmp/.tmpNbF798/rig-core/src/providers/xai/completion.rs:173
  struct rig_core::providers::openrouter::audio_generation::AudioGenerationModel, previously in file /tmp/.tmpNbF798/rig-core/src/providers/openrouter/audio_generation.rs:26
  struct rig_core::providers::openrouter::AudioGenerationModel, previously in file /tmp/.tmpNbF798/rig-core/src/providers/openrouter/audio_generation.rs:26
  struct rig_core::providers::gemini::interactions_api::interactions_api_types::ImageDelta, previously in file /tmp/.tmpNbF798/rig-core/src/providers/gemini/interactions_api/mod.rs:2392
  struct rig_core::providers::gemini::interactions_api::ImageDelta, previously in file /tmp/.tmpNbF798/rig-core/src/providers/gemini/interactions_api/mod.rs:2392
  struct rig_core::providers::xai::image_generation::ImageGenerationModel, previously in file /tmp/.tmpNbF798/rig-core/src/providers/xai/image_generation.rs:51
  struct rig_core::providers::xai::ImageGenerationModel, previously in file /tmp/.tmpNbF798/rig-core/src/providers/xai/image_generation.rs:51

--- failure struct_pub_field_missing: pub struct's pub field removed or renamed ---

Description:
A publicly-visible struct has at least one public field that is no longer available under its prior name. It may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.48.0/src/lints/struct_pub_field_missing.ron

Failed in:
  field id of struct ToolResult, previously in file /tmp/.tmpNbF798/rig-core/src/completion/message.rs:213
  field call_id of struct ToolResult, previously in file /tmp/.tmpNbF798/rig-core/src/completion/message.rs:216
  field id of struct ToolResult, previously in file /tmp/.tmpNbF798/rig-core/src/completion/message.rs:213
  field call_id of struct ToolResult, previously in file /tmp/.tmpNbF798/rig-core/src/completion/message.rs:216
  field created of struct CompletionResponse, previously in file /tmp/.tmpNbF798/rig-core/src/providers/xai/completion.rs:126
  field created of struct CompletionResponse, previously in file /tmp/.tmpNbF798/rig-core/src/providers/xai/completion.rs:126
  field call_id of struct ToolCall, previously in file /tmp/.tmpNbF798/rig-core/src/completion/message.rs:279
  field call_id of struct ToolCall, previously in file /tmp/.tmpNbF798/rig-core/src/completion/message.rs:279
  field raw_response of struct CompletionResponse, previously in file /tmp/.tmpNbF798/rig-core/src/completion/request.rs:220
  field raw_response of struct CompletionResponse, previously in file /tmp/.tmpNbF798/rig-core/src/completion/request.rs:220

--- failure trait_added_supertrait: non-sealed trait added new supertraits ---

Description:
A non-sealed trait added one or more supertraits, which breaks downstream implementations of the trait
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#generic-bounds-tighten
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.48.0/src/lints/trait_added_supertrait.ron

Failed in:
  trait rig_core::image_generation::ImageGenerationModel gained WasmCompatSend in file /tmp/.tmpwuTUy2/rig/crates/rig-core/src/image_generation.rs:22
  trait rig_core::image_generation::ImageGenerationModel gained WasmCompatSync in file /tmp/.tmpwuTUy2/rig/crates/rig-core/src/image_generation.rs:22

--- failure trait_method_default_impl_removed: pub trait default method impl removed ---

Description:
A method's default impl in an unsealed trait has been removed, breaking trait implementations that relied on that default
        ref: https://doc.rust-lang.org/book/ch10-02-traits.html#default-implementations
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.48.0/src/lints/trait_method_default_impl_removed.ron

Failed in:
  trait method rig_core::client::completion::CompletionClient::completion_model in file /tmp/.tmpwuTUy2/rig/crates/rig-core/src/client/completion.rs:30
  trait method rig_core::client::CompletionClient::completion_model in file /tmp/.tmpwuTUy2/rig/crates/rig-core/src/client/completion.rs:30
  trait method rig_core::prelude::CompletionClient::completion_model in file /tmp/.tmpwuTUy2/rig/crates/rig-core/src/client/completion.rs:30

--- failure trait_method_missing: pub trait method removed or renamed ---

Description:
A trait method is no longer callable, and may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#trait-item-signature
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.48.0/src/lints/trait_method_missing.ron

Failed in:
  method get_output_messages of trait ProviderResponseExt, previously in file /tmp/.tmpNbF798/rig-core/src/telemetry/mod.rs:763
  method make of trait CompletionModel, previously in file /tmp/.tmpNbF798/rig-core/src/completion/request.rs:354
  method composes_native_output_with_tools of trait CompletionModel, previously in file /tmp/.tmpNbF798/rig-core/src/completion/request.rs:385
  method make of trait CompletionModel, previously in file /tmp/.tmpNbF798/rig-core/src/completion/request.rs:354
  method composes_native_output_with_tools of trait CompletionModel, previously in file /tmp/.tmpNbF798/rig-core/src/completion/request.rs:385
  method make of trait CompletionModel, previously in file /tmp/.tmpNbF798/rig-core/src/completion/request.rs:354
  method composes_native_output_with_tools of trait CompletionModel, previously in file /tmp/.tmpNbF798/rig-core/src/completion/request.rs:385
  method custom_image_generation_model of trait ImageGenerationClient, previously in file /tmp/.tmpNbF798/rig-core/src/client/image_generation.rs:43
  method custom_image_generation_model of trait ImageGenerationClient, previously in file /tmp/.tmpNbF798/rig-core/src/client/image_generation.rs:43

--- failure trait_method_parameter_count_changed: pub trait method parameter count changed ---

Description:
A trait method now takes a different number of parameters.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#trait-item-signature
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.48.0/src/lints/trait_method_parameter_count_changed.ron

Failed in:
  OpenAICompatibleProvider::decorate_streaming_tool_call now takes 1 instead of 2 parameters, in file /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/openai/completion/mod.rs:1642
  OpenAICompatibleProvider::decorate_streaming_tool_call now takes 1 instead of 2 parameters, in file /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/openai/completion/mod.rs:1642

--- failure trait_method_requires_different_generic_type_params: trait method now requires a different number of generic type parameters ---

Description:
A trait method now requires a different number of generic type parameters than it used to. Calls or implementations of this trait method using the previous number of generic types will be broken.
        ref: https://doc.rust-lang.org/reference/items/generics.html
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.48.0/src/lints/trait_method_requires_different_generic_type_params.ron

Failed in:
  SpanCombinator::record_token_usage (1 -> 0 generic types) in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/telemetry/mod.rs:764

--- failure trait_method_return_value_added: pub trait method return value added ---

Description:
A trait method that previously returned `()` now returns a value. Since the trait is not sealed, downstream implementations of the trait will get compile errors.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#trait-item-signature
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.48.0/src/lints/trait_method_return_value_added.ron

Failed in:
  rig_core::providers::openai::completion::OpenAICompatibleProvider::decorate_streaming_tool_call in file /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/openai/completion/mod.rs:1642
  rig_core::providers::openai::OpenAICompatibleProvider::decorate_streaming_tool_call in file /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/openai/completion/mod.rs:1642

--- failure trait_missing: pub trait removed or renamed ---

Description:
A publicly-visible trait cannot be imported by its prior path. A `pub use` may have been removed, or the trait itself may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.48.0/src/lints/trait_missing.ron

Failed in:
  trait rig_core::completion::request::GetTokenUsage, previously in file /tmp/.tmpNbF798/rig-core/src/completion/request.rs:229
  trait rig_core::completion::GetTokenUsage, previously in file /tmp/.tmpNbF798/rig-core/src/completion/request.rs:229

--- failure trait_no_longer_dyn_compatible: trait no longer dyn compatible ---

Description:
Trait is no longer dyn compatible, which breaks `dyn Trait` usage.
        ref: https://doc.rust-lang.org/stable/reference/items/traits.html#object-safety
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.48.0/src/lints/trait_no_longer_dyn_compatible.ron

Failed in:
  trait ResponsesProviderExt in file /tmp/.tmpwuTUy2/rig/crates/rig-core/src/providers/openai/responses_api/mod.rs:1238

--- failure trait_removed_associated_type: trait's associated type was removed ---

Description:
A public trait's associated type was removed or renamed.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.48.0/src/lints/trait_removed_associated_type.ron

Failed in:
  associated type ProviderResponseExt::OutputMessage, previously at /tmp/.tmpNbF798/rig-core/src/telemetry/mod.rs:752
  associated type CompletionModel::Response, previously at /tmp/.tmpNbF798/rig-core/src/completion/request.rs:340
  associated type CompletionModel::StreamingResponse, previously at /tmp/.tmpNbF798/rig-core/src/completion/request.rs:342
  associated type CompletionModel::Client, previously at /tmp/.tmpNbF798/rig-core/src/completion/request.rs:351
  associated type CompletionModel::Response, previously at /tmp/.tmpNbF798/rig-core/src/completion/request.rs:340
  associated type CompletionModel::StreamingResponse, previously at /tmp/.tmpNbF798/rig-core/src/completion/request.rs:342
  associated type CompletionModel::Client, previously at /tmp/.tmpNbF798/rig-core/src/completion/request.rs:351
  associated type CompletionModel::Response, previously at /tmp/.tmpNbF798/rig-core/src/completion/request.rs:340
  associated type CompletionModel::StreamingResponse, previously at /tmp/.tmpNbF798/rig-core/src/completion/request.rs:342
  associated type CompletionModel::Client, previously at /tmp/.tmpNbF798/rig-core/src/completion/request.rs:351

--- failure type_allows_fewer_generic_type_params: type now allows fewer generic type parameters ---

Description:
A type now allows fewer generic type parameters than it used to. Uses of this type that supplied all previously-supported generic types will be broken.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#trait-new-parameter-no-default
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.48.0/src/lints/type_allows_fewer_generic_type_params.ron

Failed in:
  Struct StreamingCompletionResponse allows 1 -> 0 generic types in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/streaming/mod.rs:854
  Struct CompletionResponse allows 1 -> 0 generic types in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/completion/request.rs:299
  Struct CompletionResponse allows 1 -> 0 generic types in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/completion/request.rs:299
  Enum StreamedAssistantContent allows 1 -> 0 generic types in /tmp/.tmpwuTUy2/rig/crates/rig-core/src/streaming/mod.rs:2844

rig-agent breaking changes

--- failure constructible_struct_adds_field: externally-constructible struct adds field ---

Description:
A pub struct constructible with a struct literal has a new pub field. Existing struct literals must be updated to include the new field.
        ref: https://doc.rust-lang.org/reference/expressions/struct-expr.html
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.48.0/src/lints/constructible_struct_adds_field.ron

Failed in:
  field ModelTurnFinished.identity in /tmp/.tmpwuTUy2/rig/crates/rig-agent/src/agent/hook.rs:594
  field ModelTurnFinished.finish_reason in /tmp/.tmpwuTUy2/rig/crates/rig-agent/src/agent/hook.rs:614
  field ModelTurnFinished.max_tokens in /tmp/.tmpwuTUy2/rig/crates/rig-agent/src/agent/hook.rs:627
  field ModelTurnFinished.identity in /tmp/.tmpwuTUy2/rig/crates/rig-agent/src/agent/hook.rs:594
  field ModelTurnFinished.finish_reason in /tmp/.tmpwuTUy2/rig/crates/rig-agent/src/agent/hook.rs:614
  field ModelTurnFinished.max_tokens in /tmp/.tmpwuTUy2/rig/crates/rig-agent/src/agent/hook.rs:627
  field CompletionResponse.identity in /tmp/.tmpwuTUy2/rig/crates/rig-agent/src/agent/hook.rs:572
  field CompletionResponse.identity in /tmp/.tmpwuTUy2/rig/crates/rig-agent/src/agent/hook.rs:572
  field StreamResponseFinish.identity in /tmp/.tmpwuTUy2/rig/crates/rig-agent/src/agent/hook.rs:773
  field StreamResponseFinish.identity in /tmp/.tmpwuTUy2/rig/crates/rig-agent/src/agent/hook.rs:773

--- failure derive_trait_impl_removed: built-in derived trait no longer implemented ---

Description:
A public type has stopped deriving one or more traits. This can break downstream code that depends on those types implementing those traits.
        ref: https://doc.rust-lang.org/reference/attributes/derive.html#derive
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.48.0/src/lints/derive_trait_impl_removed.ron

Failed in:
  type CompletionCall no longer derives Copy, in /tmp/.tmpwuTUy2/rig/crates/rig-agent/src/agent/prompt_request/mod.rs:330

--- failure enum_no_repr_variant_discriminant_changed: enum variant had its discriminant change value ---

Description:
The enum's variant had its discriminant value change. This breaks downstream code that used its value via a numeric cast like `as isize`.
        ref: https://doc.rust-lang.org/reference/items/enumerations.html#assigning-discriminant-values
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.48.0/src/lints/enum_no_repr_variant_discriminant_changed.ron

Failed in:
  variant StepEventKind::ToolCallDelta 7 -> 8 in /tmp/.tmpwuTUy2/rig/crates/rig-agent/src/agent/hook.rs:787
  variant StepEventKind::StreamResponseFinish 8 -> 9 in /tmp/.tmpwuTUy2/rig/crates/rig-agent/src/agent/hook.rs:788
  variant StepEventKind::ToolCallDelta 7 -> 8 in /tmp/.tmpwuTUy2/rig/crates/rig-agent/src/agent/hook.rs:787
  variant StepEventKind::StreamResponseFinish 8 -> 9 in /tmp/.tmpwuTUy2/rig/crates/rig-agent/src/agent/hook.rs:788

--- failure enum_struct_variant_field_added: pub enum struct variant field added ---

Description:
An enum's exhaustive struct variant has a new field, which has to be included when constructing or matching on this variant.
        ref: https://doc.rust-lang.org/reference/attributes/type_system.html#the-non_exhaustive-attribute
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.48.0/src/lints/enum_struct_variant_field_added.ron

Failed in:
  field finish_reason of variant StreamedTurnEvent::Completed in /tmp/.tmpwuTUy2/rig/crates/rig-agent/src/agent/run/streamed.rs:336
  field finish_reason of variant StreamedTurnEvent::Completed in /tmp/.tmpwuTUy2/rig/crates/rig-agent/src/agent/run/streamed.rs:336

--- failure enum_struct_variant_field_missing: pub enum struct variant's field removed or renamed ---

Description:
A publicly-visible enum has a struct variant whose field is no longer available under its prior name. It may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.48.0/src/lints/enum_struct_variant_field_missing.ron

Failed in:
  field id of variant StreamedTurnEvent::EmitToolCallDelta, previously in file /tmp/.tmpNbF798/rig-agent/src/agent/run/streamed.rs:266
  field id of variant StreamedTurnEvent::EmitToolCallDelta, previously in file /tmp/.tmpNbF798/rig-agent/src/agent/run/streamed.rs:266

--- failure function_requires_different_generic_type_params: function now requires a different number of generic type parameters ---

Description:
A function now requires a different number of generic type parameters than it used to. Uses of this function that supplied the previous number of generic types (e.g. via turbofish syntax) will be broken.
        ref: https://doc.rust-lang.org/reference/items/generics.html
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.48.0/src/lints/function_requires_different_generic_type_params.ron

Failed in:
  function stream_to_stdout (1 -> 0 generic types) in /tmp/.tmpwuTUy2/rig/crates/rig-agent/src/agent/prompt_request/streaming.rs:1597

--- failure inherent_method_missing: pub method removed or renamed ---

Description:
A publicly-visible method or associated fn is no longer available under its prior name. It may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.48.0/src/

@github-actions
github-actions Bot force-pushed the release-plz-2026-07-28T10-35-22Z branch 2 times, most recently from c7ca529 to f8582c9 Compare July 28, 2026 18:34
@github-actions github-actions Bot changed the title chore: release v0.41.0 chore: release v0.41.1 Jul 28, 2026
@github-actions
github-actions Bot force-pushed the release-plz-2026-07-28T10-35-22Z branch 3 times, most recently from 41a1267 to 2d4419c Compare July 29, 2026 01:13
@github-actions github-actions Bot changed the title chore: release v0.41.1 chore: release v0.42.0 Aug 5, 2026
@github-actions
github-actions Bot force-pushed the release-plz-2026-07-28T10-35-22Z branch 13 times, most recently from cbfb176 to 835e246 Compare August 11, 2026 23:54
@github-actions
github-actions Bot force-pushed the release-plz-2026-07-28T10-35-22Z branch 10 times, most recently from f417036 to febddbb Compare August 13, 2026 00:41
@github-actions
github-actions Bot force-pushed the release-plz-2026-07-28T10-35-22Z branch 7 times, most recently from 953a289 to b03dfdf Compare August 15, 2026 03:18
gold-silver-copper added a commit that referenced this pull request Aug 15, 2026
`#[non_exhaustive]` forbids struct-literal construction from other crates,
so it can only be added inside a breaking window. This one is open (#2221,
v0.42.0) and `Model` just took exactly the break the attribute prevents:
#2324 added `max_output_tokens` and broke a downstream struct literal,
while the four rig-agent types in the same PR gained fields harmlessly
because they carry it.

`Model` and `ModelList` are values `list_models()` hands out; callers read
them rather than build them. Public fields stay readable and writable, and
`Model::from_id`/`Model::new`/`ModelList::new` already cover construction,
so the migration is a constructor call plus field assignment.

The only construction site the attribute breaks in-tree is this module's own
rustdoc, which taught the full-literal form under "Create a model with all
fields" — the form anyone following the docs would have written. Doctests
compile as external crates, so that example is rewritten to the assignment
form and `cargo test --doc` now guards it. The two literals in the in-crate
test module are unaffected.

Refs #2325
gold-silver-copper added a commit that referenced this pull request Aug 15, 2026
#2221's `cargo-semver-checks` output is a ready-made census of every
externally-constructible `rig-core` struct that gained a field this cycle —
i.e. every type that already demonstrated it grows fields while lacking
`#[non_exhaustive]`. Sixteen of those rows are values the library hands out
and callers only read, so they take the attribute too:

- `completion::message::ToolCall` (gained `provider`)
- `streaming::RawStreamingToolCall` (gained `tool_id`)
- anthropic: `CompletionResponse`, `Usage`, `ToolDefinition`,
  `streaming::{StreamingCompletionResponse, PartialUsage}`
- openai: `completion::streaming::StreamingCompletionResponse`,
  `responses_api::CompletionResponse`,
  `responses_api::streaming::StreamingCompletionResponse`
- gemini: `streaming::StreamingCompletionResponse`
- ollama: `ToolCall`, `StreamingCompletionResponse`
- cohere: `completion::Usage`, `embeddings::BilledUnits`,
  `streaming::StreamingCompletionResponse`

Two census rows are deliberately skipped, because for them the struct
literal *is* the construction contract and no ergonomic alternative exists:
`message::ToolResult` has no constructor at all and the public
`StreamedUserContent::tool_result` takes one by value, so attributing it
would make it unconstructible outside rig-core (14 external literal sites
today); `anthropic::completion::AnthropicRequestParams` is request-side
input with no `Default`, no `new` and no builder. Both want a constructor
first, which is its own change.

Only two construction sites break in-tree, both root cassette tests
building a cross-provider `message::ToolCall`; `ToolCall::new(id, function)`
is exactly equivalent to the literal they used. Every other attributed type
already had zero struct-literal sites outside `crates/rig-core/src`.

Refs #2325
@github-actions
github-actions Bot force-pushed the release-plz-2026-07-28T10-35-22Z branch 5 times, most recently from 0cf088a to f5dc4f4 Compare August 15, 2026 08:01
@github-actions
github-actions Bot force-pushed the release-plz-2026-07-28T10-35-22Z branch 2 times, most recently from a9f38dc to ffbbd37 Compare August 15, 2026 21:14
@github-actions
github-actions Bot force-pushed the release-plz-2026-07-28T10-35-22Z branch 3 times, most recently from 2db2179 to b81304f Compare August 16, 2026 11:41
@github-actions
github-actions Bot force-pushed the release-plz-2026-07-28T10-35-22Z branch from b81304f to ab91edf Compare August 16, 2026 13:02
@gold-silver-copper
gold-silver-copper added this pull request to the merge queue Aug 17, 2026
Merged via the queue into main with commit 2da0303 Aug 17, 2026
14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant