crates-2026-09-26

OpenMOSS/MOSS-TTS-Nanocrates-2026-09-26Sep 27, 2026by ruvnet

Upgrading?

AI Summary

This release publishes 120 Rust crates to crates.io, introduces deterministic graph partitioning, and adds ESP32 decision firmware and an OpenJev training pipeline.

Key Highlights

  • 120 crates published to crates.io
  • Deterministic min-cut algorithm
  • ESP32 decision firmware
  • Agent memory with Ed25519 signing

New Features

  • 120 crates published to crates.io
  • Deterministic `ruvector-mincut` 2.3.1
  • ESP32 decision firmware (INT8)
  • Ed25519 WitnessSigner for TARL ledger
  • OpenJev pipeline for model training

Full Release Notes

**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](https://github.com/ruvnet/claude-flow)

Related Repositories