Skip to content

Release v3.0.3: The Hybrid Search & SDK Parity Update 🌌

Choose a tag to compare

@YARlabs YARlabs released this 20 Apr 09:07
· 24 commits to main since this release

In this release (v3.0.3), we focused on global stabilization and deep synchronization between the HyperspaceDB core engine and our entire SDK ecosystem. The major highlights of this update are the introduction of full-fledged Hybrid Search (BM25 + Vector) and achieving strict functional parity across all language clients.

HyperspaceDB is no longer just a vector database; it is now a comprehensive hybrid search engine built for complex RAG systems and autonomous agents.

Here is the detailed breakdown of what's new:

⚙️ 1. Core Engine & BM25

  • BM25 Lexical Ranking: We have introduced native support for BM25 lexical ranking (supporting both bm25 and bm25plus algorithms). The engine now accurately accounts for Term Frequency (TF), Inverse Document Frequency (IDF), and document length normalization.
  • Hybrid Fusion (RRF): Implemented the Reciprocal Rank Fusion (RRF) algorithm to seamlessly merge vector and lexical search results. This provides "smart" ranking where semantic proximity and exact keyword matching work in tandem.
  • Streaming Reconsolidation: Updated the TriggerReconsolidation logic to support dynamic vector shifting in hyperbolic space without locking or blocking the HNSW graph.

📡 2. Protobuf & gRPC API

  • New Contracts: Added the Bm25Options structure to both SearchRequest and SearchTextRequest. This allows developers to fine-tune BM25 parameters (k1, b), select the stemming language, and choose the fusion method (rrf or linear) directly from the search query.
  • Handler Synchronization: All server-side gRPC handlers in hyperspace-server have been updated to correctly route hybrid search parameters down to the storage chunks.

🌐 3. SDK Parity Milestone

We have aligned all official SDKs to a unified API standard for the v3.0.x lifecycle.

  • ⚠️ TypeScript (TS):
    • Breaking Change: The argument order in insert and insertText methods has been changed to (id, vector, ...) to strictly match the Rust and Go implementations.
    • Proto Sync: Regenerated hyperspace_pb.js files and added full support for Bm25Options.
  • ⚠️ Python:
    • Breaking Change: Refactored method signatures in client.py. The id parameter is now always the first argument.
    • Hybrid Logic Fix: Resolved ambiguity between hybrid_query and query_text during automatic embedding generation, ensuring hybrid queries work flawlessly.
  • Go & C++:
    • Full protocol regeneration using the latest compilers and plugins (Go-grpc, CPP-plugin).
  • ROS2:
    • Updated service interfaces to pass hybrid_alpha and other advanced search parameters directly to the underlying C++ driver.

📚 4. Documentation & DevExp

  • The Official MD Book:
    • API Reference: Added detailed descriptions for the new Bm25Options fields.
    • Hybrid Search Chapter: Added conceptual diagrams explaining RRF and provided copy-pasteable code snippets for all supported languages.
    • Python SDK Docs: Updated all examples to reflect the new method signatures and architecture.
  • CHANGELOG: Added the v3.0.3 Stability Release notes, officially marking the completion of the Hybrid Search epic.
  • README: The SDK parity map now accurately reflects v3.* support across all platforms.

🛠 Build Status

  • All changes across hyperspace-core, hyperspace-index, and hyperspace-server have successfully passed strict type validation and clippy checks.
  • Bumped versions in Cargo.toml for all core crates to 3.0.3.

Upgrade Note: If you are using the Python or TypeScript SDKs, please update your insert function calls to pass the id as the first argument to avoid runtime errors.

Enjoy building smarter agents! 🚀