v3.19.0

ruvnet/ruflov3.19.0Jul 4, 2026by ruvnet

AI Summary

Routes the neural train command through the native TrainingPipeline, introducing a backend flag and ensuring checkpoints contain trained weights.

Key Highlights

  • New 'neural train --backend auto|native|wasm' routing flag
  • Native pipeline supports real epochs, loss history, and early stopping
  • Checkpoints now carry actual trained weights instead of untrained ones
  • Graceful WASM fallback when native module is absent

New Features

  • Native TrainingPipeline integration for LoRA training
  • --backend flag for training routing
  • Native backend with loss history and early stopping

Full Release Notes

The final piece of the #2549 saga (reported by @pacphi): `neural train` now trains through @ruvector/ruvllm's native `TrainingPipeline`, not only the WASM path.

## New
- **`neural train --backend auto|native|wasm`** — `auto` (default) routes the LoRA training leg through the native pipeline when @ruvector/ruvllm resolves: real epochs, loss history, early stopping, EWC registration
- **Checkpoints carry trained weights** — the previous best-effort block saved a freshly-constructed adapter's untrained weights; the native path checkpoints the pipeline that actually trained (`ruvllm-checkpoint` v1 envelope on disk)
- `--backend native` fails loudly when the pipeline can't run; `--backend wasm` preserves prior behavior exactly; SONA/ReasoningBank persistence unchanged in all modes; graceful WASM fallback when the module is absent

## The complete #2549 arc
1. **3.18.1** — `neural status` no longer misreports the native path (dead variable + cross-process global)
2. **@ruvector/ruvllm 2.5.7** — `saveCheckpoint(path)` actually persists (upstream, RuVector#637)
3. **3.18.2** — version floors + mkdir fix + version-gated capability reporting
4. **3.19.0** — training itself routes through the native pipeline (this release)

E2E: `auto` → native backend, finalLoss 4.25e-3, trained checkpoint on disk. Tests 6/6.

PR: #2556