v3.12.3

mermaid-js/mermaidv3.12.3Jun 17, 2026by ruvnet

AI Summary

Bug fix for the MCP `memory_store` that was emitting incorrect 128-dim mock embeddings instead of the expected 384-dim ONNX embeddings, ensuring data quality for vector memory.

Key Highlights

  • Fixed dimensional mismatch in MCP embeddings (128-dim mock vs 384-dim ONNX).
  • Added dimensional sanity check to distinguish real embeddings from stubs.
  • Ensured backend labels now match actual semantics.
  • Fixed silent corruption of similarity recall.

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)