v3.25.1

ruvnet/ruflov3.25.1Jul 5, 2026by ruvnet

AI Summary

Corrects the Lattice embedder issue by renaming it to a generic seam and adds an enforceable 'no-stub' mode to prevent silent failures.

Key Highlights

  • Renamed WASM embedder to a generic, opt-in seam (no default package)
  • Enforceable 'no-stub' mode via RUFLO_REQUIRE_REAL_EMBEDDINGS=1
  • Fail-closed behavior for missing embeddings
  • De-Lattice to remove references to non-existent packages

New Features

  • Generic WASM embedder seam
  • Enforceable no-stub mode
  • Fail-closed embedding resolution

Full Release Notes

## ruflo 3.25.1 — De-Lattice + enforceable no-stub mode

A correctness/honesty patch over 3.25.0.

- **De-Lattice the WASM embedder tier.** `@ruvector/lattice-wasm` does not exist (npm 404). The tier is renamed to an honest, **opt-in generic WASM-embedder seam**: no default package (no 404-by-default), **inert** unless `RUFLO_EMBED_WASM_PKG` points it at a real wasm-bindgen embedder. Fail-closed; embeddings resolve to ruvector ONNX exactly as before.
- **Enforceable "no more stubs."** `RUFLO_REQUIRE_REAL_EMBEDDINGS=1` makes every hash last-resort **throw loudly** instead of silently returning a semantically-meaningless vector — across `neural-tools`, `vector-db`, `memory-initializer`. Off by default (unchanged degrade behavior).

Additive · backwards-compatible · fail-closed · zero-regression. `npx ruflo@latest`.

🤖 Generated with [RuFlo](https://github.com/ruvnet/ruflo)