rUv
e3d82b1968
perf(hnsw): flat-graph HNSW at hnswlib parity, per-query ef_search; ruvector 0.1.4 / ruvector-core 2.4.0 ( #1186 )
...
Replace the hnsw_rs graph with a flat-array HNSW (u32 neighbour arrays, epoch-tagged
visited list, prefetch, hnswlib neighbour-selection heuristic, deterministic chunked
batch insert). Add ef_search to the Python hnsw search. Serialized format unchanged.
Also fix main's MSRV (is_none_or) and rustfmt breakage in ruvector-py, and move the
runtime and all portfolio pins to 0.1.4 (0.1.3 is already on PyPI).
2026-10-11 13:49:24 -07:00
rUv
d31f296aa0
feat(python): graph, clustering and reranking package portfolio with gated PyPI releases ( #1185 )
...
* feat(python): add portfolio .github/workflows/python-portfolio.yml
* feat(python): add portfolio docs/adr/ADR-python-package-portfolio.md
* feat(python): add portfolio docs/python-portfolio/cluster.svg
* feat(python): add portfolio docs/python-portfolio/graph.svg
* feat(python): add portfolio docs/python-portfolio/rerank.svg
* feat(python): add portfolio python/portfolio/.gitignore
* feat(python): add portfolio python/portfolio/CHANGELOG.md
* feat(python): add portfolio python/portfolio/README.md
* feat(python): add portfolio python/portfolio/SECURITY.md
* feat(python): add portfolio python/portfolio/manifest.json
* feat(python): add portfolio python/portfolio/ruvector-cluster/LICENSE
* feat(python): add portfolio python/portfolio/ruvector-cluster/README.md
* feat(python): add portfolio python/portfolio/ruvector-cluster/pyproject.toml
* feat(python): add portfolio python/portfolio/ruvector-cluster/src/ruvector_cluster/__init__.py
* feat(python): add portfolio python/portfolio/ruvector-cluster/src/ruvector_cluster/py.typed
* feat(python): add portfolio python/portfolio/ruvector-graph/LICENSE
* feat(python): add portfolio python/portfolio/ruvector-graph/README.md
* feat(python): add portfolio python/portfolio/ruvector-graph/pyproject.toml
* feat(python): add portfolio python/portfolio/ruvector-graph/src/ruvector_graph/__init__.py
* feat(python): add portfolio python/portfolio/ruvector-graph/src/ruvector_graph/py.typed
* feat(python): add portfolio python/portfolio/ruvector-rerank/LICENSE
* feat(python): add portfolio python/portfolio/ruvector-rerank/README.md
* feat(python): add portfolio python/portfolio/ruvector-rerank/pyproject.toml
* feat(python): add portfolio python/portfolio/ruvector-rerank/src/ruvector_rerank/__init__.py
* feat(python): add portfolio python/portfolio/ruvector-rerank/src/ruvector_rerank/py.typed
* feat(python): add portfolio python/portfolio/tests/test_cluster_example.py
* feat(python): add portfolio python/portfolio/tests/test_contracts.py
* feat(python): add portfolio python/portfolio/tests/test_graph_example.py
* feat(python): add portfolio python/portfolio/tests/test_release.py
* feat(python): add portfolio python/portfolio/tests/test_rerank_example.py
* feat(python): add portfolio python/portfolio/validate_release.py
* docs(ci): link Python portfolio and require Rust tests before release
* docs(ci): link Python portfolio and require Rust tests before release
* security(python): gate unsound dependencies and patch build tools
* security(python): gate unsound dependencies and patch build tools
* security(python): record validation and audit shipped native closure
* security(python): record validation and audit shipped native closure
* test(python): record 50 passing native Rust unit tests
* feat(release): publish version changes automatically and verify PyPI installs
* feat(release): publish version changes automatically and verify PyPI installs
* feat(release): publish version changes automatically and verify PyPI installs
* feat(release): publish version changes automatically and verify PyPI installs
* docs(release): document automatic token publishing boundaries
* docs(release): document automatic token publishing boundaries
2026-10-11 10:40:20 -07:00