chore: release v0.41.0 - #1
Open
github-actions[bot] wants to merge 1 commit into
Open
Conversation
redroy44
pushed a commit
that referenced
this pull request
Jul 24, 2026
…ds#1987) * fix(vector-store): honor filter + threshold in in-memory index; fix Filter::satisfies field matching InMemoryVectorIndex::top_n/top_n_ids ignored req.filter() and req.threshold(), so the default store returned unfiltered/un-thresholded results that diverged from every real backend. Apply both during the scan (before top-n selection). Filter::satisfies compared a single-key {k:v} object against the whole document (only matching single-field docs) and passed an object to compare_pair for Gt/Lt (always None -> always false). Rewrite leaf filters to look the key up in the document and compare the field, which also fixes rig-helixdb's use of it. Add unit tests for satisfies and a top_n filter/threshold conformance test. * fix(embeddings): de-duplicate VectorDistance impls; fix chebyshev rayon drift distance.rs carried two full copies of the VectorDistance impl (sequential and rayon). They had drifted: under the rayon feature, chebyshev_distance used sequential .iter() while every sibling used par_iter(), so one metric was silently unparallelized. Factor both impls through one macro parameterized by the iterator constructor and the max-reduction (Iterator::fold vs ParallelIterator::reduce), which is why the copy could not simply swap iter for par_iter. Verified identical results under both feature configs. * fix(streaming): derive usage from final response in From impl; add usage() accessor From<StreamingCompletionResponse<R>> for CompletionResponse hardcoded Usage::new(), so any caller using .into() on a completed stream silently got zero usage even though R: GetTokenUsage and value.response holds the final usage. Derive it via Option<R>: GetTokenUsage (zero sentinel when no final response). Add StreamingCompletionResponse::usage() and cover both paths. * refactor(core): delete unwired abstractions; dedupe UNKNOWN_AGENT_NAME Remove speculative/dead code with no consumers anywhere in the workspace: - Transport::NdJson (never constructed; all matches use wildcards) - ConvertMessage trait (no impls, no consumer, not re-exported) - telemetry ProviderRequestExt trait + its lone openai impl (no consumer) - SpanCombinator::record_model_input (zero call sites) - http SSE with_retry_policy + RetryPolicy::{Constant,Never} (never used; the RetryPolicy trait, ExponentialBackoff, and DEFAULT_RETRY stay) Dedupe the duplicated UNKNOWN_AGENT_NAME const (agent/runner.rs and agent/completion.rs) into one pub(crate) const in agent/mod.rs. * fix(vector-store): address code-review findings on filter/threshold - Filter::satisfies: make Eq numeric-aware (5 matches 5.0) so equality is consistent with Gt/Lt, and compare integers exactly (i64/u64 before f64) so values beyond 2^53 no longer collapse to the same lossy f64. - In-memory scan: exclude non-finite (NaN) similarities from a zero-magnitude embedding, which sorted as the OrderedFloat maximum and slipped past the threshold check, wrongly ranking #1. - De-duplicate the per-document scoring block (filter + best similarity + finite + threshold) into a shared score_candidate helper used by both the brute-force and LSH scans. - Add regression tests for int/float equality, large-integer ordering, and NaN exclusion. * fix(vector-store): rank documents by best finite embedding The prior NaN guard ran after max_by, but NaN sorts as the OrderedFloat maximum, so for a document with multiple embeddings max_by selected the degenerate (zero-magnitude) chunk and the guard then dropped the whole document — even when it had a strong finite-similarity chunk. Filter non-finite similarities before max_by so a document ranks by its best finite embedding and is skipped only when it has none. Add a multi-embedding regression test.
github-actions
Bot
force-pushed
the
release-plz-2026-06-18T08-59-23Z
branch
from
July 24, 2026 09:55
5c75fba to
8d92a8a
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.40.0 -> 0.41.0rig-core: 0.40.0 -> 0.41.0 (⚠ API breaking changes)rig-agent: 0.0.0 -> 0.41.0rig-bedrock: 0.40.0 -> 0.41.0 (✓ API compatible changes)rig-candle: 0.1.0 -> 0.41.0rig-fastembed: 0.40.0 -> 0.41.0rig-gemini-grpc: 0.40.0 -> 0.41.0 (✓ API compatible changes)rig-helixdb: 0.40.0 -> 0.41.0rig-lancedb: 0.40.0 -> 0.41.0 (✓ API compatible changes)rig-memory: 0.40.0 -> 0.41.0 (✓ API compatible changes)rig-milvus: 0.40.0 -> 0.41.0rig-mongodb: 0.40.0 -> 0.41.0rig-neo4j: 0.40.0 -> 0.41.0rig-postgres: 0.40.0 -> 0.41.0rig-qdrant: 0.40.0 -> 0.41.0rig-s3vectors: 0.40.0 -> 0.41.0 (✓ API compatible changes)rig-scylladb: 0.40.0 -> 0.41.0rig-sqlite: 0.40.0 -> 0.41.0rig-surrealdb: 0.40.0 -> 0.41.0 (✓ API compatible changes)rig-vectorize: 0.40.0 -> 0.41.0rig-vertexai: 0.40.0 -> 0.41.0 (✓ API compatible changes)rig: 0.40.0 -> 0.41.0 (✓ API compatible changes)⚠
rig-corebreaking changesChangelog
rig-deriverig-corerig-agentrig-bedrockrig-candlerig-fastembedrig-gemini-grpcrig-helixdbrig-lancedbrig-memoryrig-milvusrig-mongodbrig-neo4jrig-postgresrig-qdrantrig-s3vectorsrig-scylladbrig-sqliterig-surrealdbrig-vectorizerig-vertexairig