v3.5.78

ruvnet/ruflov3.5.78Apr 8, 2026by ruvnet

AI Summary

Ruflo v3.5.78 is described as the most stable release yet, eliminating ESM module crashes by fixing 29 bare require() calls, hardening security across 6 packages against SQL injection, command injection, and prototype pollution, and introducing native intelligence backends (RuVLLM and Graph-Node). The release resolves 10 critical user-reported issues including the cleanup --force command destroying user config and CLI one-shot commands hanging indefinitely.

Key Highlights

  • ESM Module Crash Elimination - Fixed 29 bare require() calls across multiple files that caused crashes in ESM mode
  • Security Hardening - SQL injection prevention with parameterized queries, command injection prevention with execFileSync, prototype pollution prevention with JSON reviver
  • CLI One-Shot Commands Fixed - Added process.exit(0) to prevent indefinite hanging from open handles
  • cleanup --force Now Safe - Only cleans Ruflo-owned paths (.claude/helpers/) preserving user configuration in settings.json
  • Daemon Zombie Prevention - daemon stop now scans and kills stale processes via ps, not just stored PID

Breaking Changes

  • cleanup --force behavior changed: now only cleans Ruflo-owned paths instead of entire .claude/ directory - scripts relying on old behavior will need updating

New Features

  • Native RuVLLM backend - Direct integration with local LLM inference
  • Graph-Node backend - Graph-based intelligence routing for complex reasoning chains
  • DiskANN Vector Search Backend - 8,000x faster insert than HNSW with perfect recall
  • Claude Code ↔ AgentDB Memory Bridge - MCP tools for importing Claude Code memories with 384-dim ONNX embeddings
  • Self-Learning Pipeline - Pattern recording, neural training, and cross-session knowledge transfer
  • saveCheckpoint Resilience - Falls back to JS on native module failures

Full Release Notes

## Ruflo v3.5.78

**The most stable Ruflo release yet.** This release eliminates an entire class of ESM module crashes, hardens security across 6 packages, introduces native intelligence backends, and resolves 10 user-reported critical issues.

34 commits, 145 files changed, ~8,000 lines of improvements since v3.5.59.

### Install / Upgrade

```bash
npx ruflo@3.5.78 --version        # one-shot
npx @claude-flow/cli@3.5.78 doctor # health check
```

All three packages updated on npm (`alpha`, `latest`, `v3alpha`):
- [`@claude-flow/cli@3.5.78`](https://www.npmjs.com/package/@claude-flow/cli)
- [`claude-flow@3.5.78`](https://www.npmjs.com/package/claude-flow)
- [`ruflo@3.5.78`](https://www.npmjs.com/package/ruflo)

---

### Critical Bug Fixes

#### ESM Module Crash Elimination
The entire codebase has been audited and purged of bare `require()` calls that crash in ESM mode (`"type": "module"`). **29 total `require()` calls fixed** across two rounds:

| Round | PR / Commit | Files Fixed | Calls Fixed |
|-------|-------------|-------------|-------------|
| 1 | #1564 (v3.5.77) | `autopilot-state.ts`, `autopilot.ts`, `claims.ts` | 12 |
| 2 | v3.5.78 | `diff-classifier.ts`, `coverage-router.ts`, `performance-tools.ts`, `mcp-server.ts`, `checker.ts`, `security.ts` | 17 |

**Before:** `ruflo autopilot status`, `ruflo claims list`, diff analysis, coverage routing, performance profiling, security scanning, and update checking all crashed with `ReferenceError: require is not defined`.

**After:** Every runtime code path uses proper ESM `import` statements or the `createRequire` pattern for native modules.

Closes #1559, #1560, #1561, #1563.

#### `cleanup --force` No Longer Destroys User Config (#1557)
Previously, `cleanup --force` deleted the entire `.claude/` directory — wiping agents, skills, commands, settings, memory databases, and worktrees that belong to Claude Code, not Ruflo.

**Now:** Only Ruflo-owned paths are cleaned (`.claude/helpers/`), and `settings.json` is surgically edited to remove only `hooks` and `claudeFlow` keys while preserving all user configuration.

#### CLI One-Shot Commands No Longer Hang (#1552, #1550)
`memory store`, `memory retrieve`, `config list`, and other one-shot commands hung indefinitely due to open handles (MCP listeners, timers, SQLite connections) keeping the event loop alive. Fixed with `process.exit(0)` after `cli.run()` resolves.

#### Daemon Zombie Prevention (#1551)
`daemon stop` now scans running processes via `ps` and kills stale daemon instances — not just the PID stored in the PID file. `daemon start` also cleans up zombies before launching and shows a clear error if a daemon is already running.

#### Memory Bridge Respects `CLAUDE_FLOW_CWD` (#1562)
MCP memory tools under Claude Desktop were reading/writing to the wrong directory because `auto-memory-bridge.ts` hardcoded `process.cwd()`. Now respects the `CLAUDE_FLOW_CWD` environment variable.

---

### Security Hardening (PR #1558)

Comprehensive security and performance fixes across 6 packages:

- **SQL injection prevention** — All sql.js queries converted to parameterized `db.prepare` / `bind` statements
- **Command injection prevention** — Replaced `execSync` with `execFileSync` (no shell interpretation) throughout
- **Prototype pollution prevention** — JSON reviver strips `__proto__`, `constructor`, `prototype` keys
- **HNSW hash collision safety** — Added dual-hash (djb2 + sdbm) and 1,000-probe cap with explicit error on exhaustion
- **BoundedSet FIFO eviction** — Uses `Map` insertion order for correct FIFO behavior
- **Resilient bulk operations** — `Promise.allSettled` for operations that shouldn't fail atomically
- **PID validation** — `Number.isInteger` guard before process operations

---

### New Features

#### Native RuVLLM + Graph-Node Intelligence Backends (ADR-086, ADR-087)
New native intelligence backends for the RuVector system:
- **RuVLLM backend** — Direct integration with local LLM inference
- **Graph-Node backend** — Graph-based intelligence routing for complex reasoning chains

#### DiskANN Vector Search Backend (ADR-077)
Research-grade vector search with:
- **8,000x faster insert** than HNSW for large datasets
- **Perfect recall** on benchmark suites
- SSD-optimized for datasets that exceed RAM

#### Claude Code ↔ AgentDB Memory Bridge (ADR-076)
Phase 2 MCP tools for bridging Claude Code's auto-memory with AgentDB:
- `memory_import_claude` — Import Claude Code memories with 384-dim ONNX embeddings
- `memory_bridge_status` — Bridge health monitoring
- `memory_search_unified` — Semantic search across all namespaces

#### Self-Learning Pipeline (ADR-075)
End-to-end wiring of the self-learning pipeline:
- Pattern recording from successful task completions
- Neural training on discovered patterns
- Cross-session knowledge transfer

#### saveCheckpoint Resilience (v3.5.75)
Checkpoint save now verifies file existence and falls through to JS fallback on native module failures.

---

### Quality & Honesty

- **README honesty audit** — Removed fabricated metrics and inflated claims; all stats now reference real benchmarks
- **Stub elimination** — 9 remaining stub implementations replaced with real scanning, metrics, and health checks
- **Comprehensive #1425 remediation** — Real quantization, honest performance stubs, input validation at system boundaries
- **Statusline accuracy** — Replaced all fake heuristics with real data sources from hook activity and AgentDB stats

---

### Issues Closed (10)

| Issue | Title |
|-------|-------|
| #1559 | Bare `require()` in ESM modules — autopilot/claims crash |
| #1560 | ESM/CJS regression (dup of #1559) |
| #1561 | Autopilot `require is not defined` (dup of #1559) |
| #1563 | Autopilot/claims fail on fresh install (dup of #1559) |
| #1557 | `cleanup --force` deletes entire `.claude/` directory |
| #1552 | CLI one-shot commands hang indefinitely |
| #1551 | Daemon processes accumulate as zombies |
| #1550 | Memory subcommands hang (same root cause as #1552) |
| #1562 | Memory commands ignore `CLAUDE_FLOW_CWD` |
| #1558 | Security & performance fixes across 6 packages |

---

### Stats

```
34 commits
145 files changed
7,966 insertions(+), 2,333 deletions(-)
29 bare require() calls eliminated
6 packages security-hardened
10 issues resolved
3 npm packages published (alpha, latest, v3alpha)
```

---

**Full Changelog**: https://github.com/ruvnet/ruflo/compare/v3.5.59...v3.5.78