v3.18.1

ruvnet/ruflov3.18.1Jul 3, 2026by ruvnet

AI Summary

Patch release fixing a bug where the native ruvllm training backend capability was incorrectly reported as 'Unavailable' in the neural status command.

Key Highlights

  • Fixed neural status reporting for native training backend
  • Corrected capability probe logic using resolveTrainingBackend()
  • Removed incorrect claim about ruvllm checkpoints being enabled

Full Release Notes

Patch release fixing #2549 (reported by @pacphi — exemplary report with dist-verified line numbers and a capability-vs-environment proof).

## Fixed
- `neural status` reported the bundled @ruvector/ruvllm training path as **Unavailable — Install @ruvector/ruvllm** even though the module was installed and functional. Two defects: a dead `_trainingBackend` variable (declared, returned, never assigned) and contrastive availability read only from an in-process global a fresh status process never populates.
- Backend now comes from a capability probe (`resolveTrainingBackend()` — module resolution, pipeline stays lazy); Contrastive Trainer has three honest states (Active with session counts / Available — ready on demand / genuinely Unavailable); the Install hint only shows on true resolution failure.
- Dropped the 'ruvllm checkpoints enabled' claim — upstream `saveCheckpoint()` (@ruvector/ruvllm 2.5.6) verifiably writes no file; tracked separately.

## Not in this release (follow-ups from #2549 triage)
- Routing `neural train` through the native TrainingPipeline
- Upstream checkpoint persistence fix

PR: #2554 · Regression test pins the capability contract in both resolve/no-resolve environments.