Skip to content

Release: turbovec 0.7.0 (Python) + 0.8.0 (Rust crate)#84

Merged
RyanCodrai merged 1 commit into
mainfrom
release/py-0.7.0-rs-0.8.0
May 30, 2026
Merged

Release: turbovec 0.7.0 (Python) + 0.8.0 (Rust crate)#84
RyanCodrai merged 1 commit into
mainfrom
release/py-0.7.0-rs-0.8.0

Conversation

@RyanCodrai

Copy link
Copy Markdown
Owner

Summary

Version bumps + CHANGELOG entry for the audit-driven correctness release.

  • Rust crate: 0.7.0 → 0.8.0 (minor — AddError::InvalidInputValue variant added, Eq derive dropped)
  • Python wheel: 0.6.0 → 0.7.0 (minor — panic→typed-exception changes in bindings)

Files

  • `turbovec/Cargo.toml` — 0.7.0 → 0.8.0
  • `turbovec-python/Cargo.toml` — 0.6.0 → 0.7.0
  • `turbovec-python/pyproject.toml` — 0.6.0 → 0.7.0
  • `Cargo.lock` — regenerated
  • `CHANGELOG.md` — new section under `[Unreleased]` covering Audit-driven integration + Rust core fidelity work (7 waves) #83's full scope (Added / Changed / Fixed split per surface)

After merge — publication

This PR only bumps versions; publication happens on tag push:

  • `v0.8.0` → triggers `.github/workflows/release-crates.yml` → publishes to crates.io
  • `py-v0.7.0` → triggers `.github/workflows/release-pypi.yml` → publishes to PyPI

I'll wait for your sign-off before tagging + pushing.

Test plan

  • Both crates build cleanly with new versions (`cargo build -p turbovec`, `maturin develop`)
  • Full local test suite green (473 tests)
  • CI on Linux / macOS / Windows
  • Smoke test the published packages after tag push (downstream-smoke + a pip-install + import)

🤖 Generated with Claude Code

Audit-driven correctness release. Headline: 14 active bugs found and
fixed across the Rust core, Python bindings, and four integration
wrappers, with hundreds of regression tests added to keep them from
silently coming back.

See CHANGELOG.md for the full breakdown — including the silent
data-corruption bugs in the encode pipeline (NaN/Inf poisoning,
huge-magnitude norm overflow), the TQ+ calibration state-machine
bugs (v2-load + add mis-encoding, empty add freezing identity),
the pre-AVX2 x86 silent-empty-results fallthrough, and the four
integration field-fidelity bugs (haystack blob/sparse, llama-index
node fidelity, agno embedder, langchain id — closes #81).

Breaking API surfaces (minor bump on both 0.x crates):
- Rust: `AddError::InvalidInputValue` variant added (exhaustive
  matchers need updating), `Eq` derive dropped from `AddError`.
- Python: panics on bad input now surface as typed exceptions
  (`ValueError` / `IndexError`) instead of `PanicException`; empty-
  query shape from `IdMapIndex.search` now matches `TurboQuantIndex`.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@RyanCodrai RyanCodrai merged commit efe29a1 into main May 30, 2026
6 checks passed
@RyanCodrai RyanCodrai deleted the release/py-0.7.0-rs-0.8.0 branch May 30, 2026 13:04
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