Skip to content

fix: harden MCP, native HNSW gates, and ruvector 0.2.37 - #724

Merged
ruvnet merged 4 commits into
mainfrom
agent/security-sota-audit
Jul 27, 2026
Merged

fix: harden MCP, native HNSW gates, and ruvector 0.2.37#724
ruvnet merged 4 commits into
mainfrom
agent/security-sota-audit

Conversation

@ruvnet

@ruvnet ruvnet commented Jul 27, 2026

Copy link
Copy Markdown
Owner

Summary

Root causes

The CLI loaded the MCP server as a module whose guarded main() was never invoked. ONNX diagnostics also wrote to stdout and could corrupt the stdio transport. Separately, the JavaScript wrapper forwarded an omitted hnswConfig as undefined; N-API mapped that to None, selecting FlatIndex instead of the Rust core HNSW default. CI omitted optional dependencies, so its performance and recall jobs exercised the fallback rather than the native engine.

Validation

  • cargo check --workspace --all-targets --locked — passes across the workspace
  • cargo fmt --all -- --check — passes
  • cargo audit and cargo deny check advisories — pass
  • native npm test — passes 73 CLI checks plus database, MCP handshake/stdout, signals, access policy, and startup guards
  • release workflow scripts locally reproduce 3.30x HNSW speedup and 0.95 recall (gates: 2x and 0.88)
  • npm run build && npm run verify-dist — passes
  • npm pack --dry-run --json --ignore-scripts — valid 0.2.37 tarball, 153 files
  • publishable-package audit — no high or critical advisories
  • workspace audit — no critical advisories; 12 high and 12 moderate transitive findings remain for breaking-upgrade follow-up

Supply-chain note

GitHub does not currently expose this repository dependency graph to dependency-review-action. That single service-dependent step is soft-failed while #689 tracks the prerequisite; Cargo audit, Cargo deny, npm critical audit, and lockfile integrity remain hard gates.

@ruvnet ruvnet changed the title fix: restore MCP stdio startup and harden ruvector 0.2.36 fix: harden MCP, native HNSW gates, and ruvector 0.2.37 Jul 27, 2026
@ruvnet
ruvnet marked this pull request as ready for review July 27, 2026 16:00
@ruvnet
ruvnet merged commit c410250 into main Jul 27, 2026
58 of 59 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment