v3.12.3

ruvnet/ruflov3.12.3Jun 17, 2026by ruvnet

AI Summary

Fixes a data quality regression where MCP `memory_store` was emitting incorrect 128-dim mock embeddings instead of real 384-dim ONNX embeddings.

Key Highlights

  • Data quality fix: Corrected MCP embeddings to use real 384-dim ONNX vectors instead of 128-dim mocks.
  • Root cause: Fixed `bridgeGenerateEmbedding` logic to reject non-384-dim outputs and route to local generation.
  • Semantic accuracy: Ensures backend labels now match actual data semantics.

Full Release Notes

## Bundled fix

### #2395 — MCP `memory_store` emitted 128-dim mock embeddings (data quality regression)

**Symptom (per issue):** standalone CLI used real 384-dim ONNX embeddings, but the in-session MCP path persistently emitted 128-dim hash-fallback ("mock") embeddings — silently corrupting similarity recall and wasting any benefit of vector memory.

**Root cause:** `bridgeGenerateEmbedding` returned `embedder.embed()` results labeled `backend: 'onnx'` unconditionally, even when AgentDB's vectorBackend controller silently fell back to a 128-dim hash stub. The stub didn't expose `isMock=true`, so the existing isMock check let it through with a wrong label.

**Fix:** dimensional sanity check. The hardcoded model name `Xenova/all-MiniLM-L6-v2` always produces 384-dim; anything else is definitively a stub. Return `null` from the bridge wrapper in that case so the caller falls through to `generateLocalEmbedding`, which routes via the real ONNX chain (transformers.js / ruvector).

Net: backend labels now match actual semantics, no more silent mock embeddings.

## Install

```bash
npx ruflo@3.12.3
# or
npm i ruflo@latest
```

All 3 packages Ɨ 3 dist-tags published in lockstep.

šŸ¤– Generated with [RuFlo](https://github.com/ruvnet/ruflo)