chore: release v0.42.0 - #2221
Merged
Merged
Conversation
github-actions
Bot
force-pushed
the
release-plz-2026-07-28T10-35-22Z
branch
2 times, most recently
from
July 28, 2026 18:34
c7ca529 to
f8582c9
Compare
github-actions
Bot
force-pushed
the
release-plz-2026-07-28T10-35-22Z
branch
3 times, most recently
from
July 29, 2026 01:13
41a1267 to
2d4419c
Compare
github-actions
Bot
force-pushed
the
release-plz-2026-07-28T10-35-22Z
branch
13 times, most recently
from
August 11, 2026 23:54
cbfb176 to
835e246
Compare
github-actions
Bot
force-pushed
the
release-plz-2026-07-28T10-35-22Z
branch
10 times, most recently
from
August 13, 2026 00:41
f417036 to
febddbb
Compare
github-actions
Bot
force-pushed
the
release-plz-2026-07-28T10-35-22Z
branch
7 times, most recently
from
August 15, 2026 03:18
953a289 to
b03dfdf
Compare
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
This was referenced Aug 15, 2026
github-actions
Bot
force-pushed
the
release-plz-2026-07-28T10-35-22Z
branch
5 times, most recently
from
August 15, 2026 08:01
0cf088a to
f5dc4f4
Compare
github-actions
Bot
force-pushed
the
release-plz-2026-07-28T10-35-22Z
branch
2 times, most recently
from
August 15, 2026 21:14
a9f38dc to
ffbbd37
Compare
8 tasks
github-actions
Bot
force-pushed
the
release-plz-2026-07-28T10-35-22Z
branch
3 times, most recently
from
August 16, 2026 11:41
2db2179 to
b81304f
Compare
github-actions
Bot
force-pushed
the
release-plz-2026-07-28T10-35-22Z
branch
from
August 16, 2026 13:02
b81304f to
ab91edf
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🤖 New release
rig-derive: 0.41.0 -> 0.42.0rig-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-corebreaking changes⚠
rig-agentbreaking changes