Skip to content

v0.5.0

Latest

Choose a tag to compare

@github-actions github-actions released this 20 Jun 21:07
Immutable release. Only release title and notes can be modified.
v0.5.0
75deb53

[0.5.0] - 2026-06-20

Added

  • (beir-bench) --ef-search flag for HNSW (was hardcoded const)
  • (beir-bench) Within-query-threaded sign baseline + DistL2 HNSW (#244)
  • Promote RankQuantFastscan to public API + .ovfs persistence (#233)
  • Ordvec on-disk format (.ov* magics) with full back-compat for legacy .tv* (#230)
  • (experimental) Constant-weight bitmap overlap + finite null-tail helpers (#222) (#227)
  • (experimental) Reusable RankQuant bucket-code API (#220) (#226)
  • (experimental) Indexed MultiBucketBitmap contingency kernels + batched projections (#219) (#225)
  • (experimental) Stateless dense bucket-overlap contingency + projection API (#219) (#224)
  • Capability-gated b=8 RankQuant (research/evidence width) (#221) (#228)
  • Add search_asymmetric_subset_batched_serial allocating wrapper
  • Add search_asymmetric_subset_batched_serial_into (allocation-free serial batched rerank)
  • Add SignBitmap::top_m_candidates_batched_serial_csr (serial CSR stage-1)
  • Add CandidateBatch CSR type + helpers
  • Add TopK::reset/reset_with_tie_keys/finalize_into_with_scratch for buffer reuse
  • Add l2_normalise_into (allocation-free query normalize)
  • (python) Ship .pyi type stubs + py.typed for the abi3 wheel

Changed

  • State public scale evidence and retract near-flat framing
  • Add benchmarks/README front door, move withdrawn results to withdrawn/
  • All-Rust BEIR benchmark + README above-the-fold (#237)
  • Extract shared subset-rerank row helper + SubsetScratch (behavior-preserving)

Documentation

  • Graduate the messy-corpus robustness finding into product docs
  • Reconcile TwoNN evidence + Lean-PR status across the writeup
  • Add "What is ordinal retrieval" framing to README (#245)
  • Finish RankQuantFastscan public-API promotion + positioning lift (PR3) (#243)
  • (rank_io) Note OVFS metadata-probe deferral (#232) (#242)
  • Product-neutral examples in ordvec-manifest (remove sibling-product names) (#229)
  • Disambiguate the _into output width (index length, not row length)
  • Make the README quickstart copy-paste runnable + fix determinism.md sentinel claim
  • (fuzz) Clarify scratch helper is borrow-safe, not nested-safe
  • Document unsorted-candidate-row contract on batched subset rerank
  • Document per-row len<=n_vectors cap on batched subset rerank
  • (python) Document search_asymmetric_subset min(k, len(candidates)) cap

Fixed

  • (beir-bench) Ef in HNSW slug + validate ef>=top_k (review feedback)
  • (beir-bench) Streaming row-bounded npy loader (--max-docs honored, ~2x less peak RAM)
  • (security) Pin benchmark Python deps + triage bincode advisory (#240)
  • (release) Ship license text in the ordvec-manifest crate + wheel
  • (fuzz) Harden scratch-file reuse (reentrancy, IO recovery, set_len, docs)
  • (deps) Bump pyo3 + numpy 0.27 → 0.29 (security)
  • Address review findings

Performance

  • (simd) AVX-512 masked-tail scan for non-512-bit-multiple dims (BGE-768 ~4x stage-1) (#214)
  • Skip redundant zeroing/preclear in batched subset rerank