Skip to content

RuVector 2026-09-26 — 120 crates on crates.io, deterministic min-cut, faster/safer pi.ruv.io, ESP32, OpenJev pipeline

Choose a tag to compare

@ruvnet ruvnet released this 27 Sep 00:37
425d5ca

Plain-language summary: https://gist.github.com/ruvnet/dd8a2246f104f69bd7d755637c5d77cd

crates.io: 120 of 122 crates published

  • Every publishable library crate is now on crates.io at main's version (the remaining 2 are example apps). #1020 adds version requirements to 60 path dependencies. #1028 publishes per-crate patches: ruvector-core 2.3.1, ruvector-graph 2.3.2, rvf-types 0.2.2, rvf-wire 0.1.1.
  • ruvector-mincut 2.3.1: partition() and the witness hash are deterministic and non-degenerate (#979, #1021).
  • Note: the published ruvector-core links the upstream hnsw_rs, so the #773 fix in patches/hnsw_rs is not in crates.io builds yet.

pi.ruv.io brain server (deployed: ruvbrain-00210-zsg)

  • #1024: the graph rebuild runs off-lock and swaps its result in atomically. In a benchmark at production scale (60k nodes), search latency during a rebuild went from a 96 s wait to a 31 ms p99, and the rebuilt graph is bit-identical.
  • #1023: /v1/pipeline/inject* and /internal/* writes are authenticated; UTF-8 truncation panics are fixed; ranked search and the sparsifier no longer hold the graph lock (ADR-349).
  • #1022: writes and training are gated until Firestore hydration completes, and /v1/status reports hydrating. Also includes a rebuildable Dockerfile.
  • #1025: the SSE image builds again and sends BRAIN_SYSTEM_KEY.
  • Cloud Run now runs with min 1 instance and CPU always on, so hydration takes about 1 minute instead of 30–50.

ESP32 decision firmware (#1018)

  • INT8 decisions on ESP32, S2, S3, C2, C3, C6, H2 and P4, with serial OTA and automatic rollback.
  • Measured on a physical C6: 21× faster host round trip, and 1000/1000 decisions match the reference.
  • Images: esp32-decision-v0.1.0 and esp32-decision-v0.2.0.

Agent memory (#989)

  • Ed25519 WitnessSigner for the TARL ledger. Verification requires full coverage, a sealed tail and a signed anchor, and signs a SHA-256 digest (ADR-347).

OpenJev pipeline (#1029, ADR-008)

  • crates/ruvector-typesafe-train: fine-tunes the encoder in Rust/candle, transplants the weights into ONNX with ort parity, and aborts training on any leakage.
  • crates/ruvector-gpu-runner: a budget-capped vast.ai runner with auto-destroy.
  • Engine::train_with_calibration in ruvector-typesafe-core, plus the Jev-parity bench (vs-jev.mjs, --model-dir, --no-test).
  • v1 frozen-test result (seed 2):
    • department: 93.3% vs Jev 85.3% (non-inferior)
    • urgent: 92.7% vs 61.3% (superior)
    • frustration: 86.0% vs 67.3% (superior)
    • p95: 10 ms
    • ECE: 0.0543 (gate is 0.05, fail)
  • The pre-registered primary claim is not met, so the model is not published. v2 will be judged on fresh held-out data.

🤖 Generated with claude-flow