v3.7.0
ruvnet/ruflov3.7.0May 24, 2026by ruvnet
AI Summary
This marks the first stable release of ruflo (v3.7.0), graduating from the alpha series. The release includes critical fixes for memory stats and status detection on legacy databases, a versioning policy change eliminating alpha releases, and 5 new CI smoke tests for regression detection.
Key Highlights
- First stable release (3.7.0) after alpha series (3.7.0-alpha.1 → 3.7.0-alpha.81) - no more alpha.N releases
- Fixed memory stats/status for legacy DBs - handles NULL status, accepts multiple config file locations
- 5 new regression smoke tests added covering agent execution, GitHub safety, attribution, init bundle, and WASM auto-init
- Memory consolidation achieved 2.70x retrieval speedup via RaBitQ quantization
- Legacy alpha and v3alpha npm dist-tags continue pointing to latest stable for backward compatibility
New Features
- Memory stats/status fix for legacy databases with NULL status handling
- isInitialized() now accepts .claude-flow/config.{yaml,json}, .Swarm/memory.db, and .claude/settings.json
- WSL2 daemon triple bug fix
- OpenTelemetry overrides on ruflo wrapper
- ruvllm WASM auto-init support
- Agent_execute provider routing improvements
- Opt-in Co-Authored-By trailer support
- GitHub stack modernization (ADR-127)
- Init bundle reduction (ADR-128)
- Neural-trader substrate integration (ADR-126)
- Memory consolidation with RaBitQ quantization for 2.70x faster retrieval
Full Release Notes
**First stable release** — the alpha series (3.7.0-alpha.1 → 3.7.0-alpha.81) is now closed. From here on we ship semver-stable: 3.7.0 → 3.7.1 (patch), 3.8.0 (minor), 4.0.0 (breaking).
## Highlights
### #2120 — memory stats / status fixed for legacy DBs
Reporter @alexandrelealbess on WSL2: `ruflo memory stats` reported `Total Entries: 0` against a 251-row `.swarm/memory.db`, and `ruflo status` falsely reported "not initialized".
| Fix | Where |
|---|---|
| Accept `status IS NULL` alongside `'active'` | `memory-bridge.ts` `bridgeListEntries` |
| Same in raw sql.js fallback | `memory-initializer.ts` `listEntries` (4 prepares) |
| Backfill `UPDATE ... SET status='active' WHERE status IS NULL` | `memory-initializer.ts` `ensureSchemaColumns` |
| `isInitialized()` now accepts any of `.claude-flow/config.{yaml,json}`, `.swarm/memory.db`, `.claude/settings.json` | `status.ts` |
| New CI smoke `smoke-memory-stats-legacy-db.mjs` | `.github/workflows/v3-ci.yml` |
### Versioning policy change
- **No more `-alpha.N` releases.** Default `npm publish` tag is `latest`.
- Legacy `alpha` and `v3alpha` dist-tags **continue to point at the latest stable** for backward compat — so `npx ruflo@alpha` and `npx claude-flow@v3alpha` still work.
### CI surface (all guards added on alphas, still active)
5 new regression smokes from the alpha series:
- `smoke-agent-execute-providers.mjs` (#2042)
- `smoke-github-safe-injection.mjs` + `smoke-github-actions-pins.mjs` + `smoke-deprecated-actions.mjs` (#2089 ADR-127)
- `smoke-attribution-opt-in.mjs` (#2089 ADR-127)
- `smoke-init-bundle-invariants.mjs` (#2095 ADR-128)
- `smoke-ruvllm-wasm-auto-init.mjs` (#2086)
- `smoke-memory-stats-legacy-db.mjs` (#2120, this release)
### Try it
```bash
npx ruflo@latest init # → 3.7.0
# or upgrade in place
npm i -g ruflo@latest
```
## Changelog
See `git log v3.7.0-alpha.71...v3.7.0` for the full alpha series. Key fixes that culminated in this release:
- **#2120** (alpha.81 → 3.7.0) — memory stats legacy DB NULL status
- **#2110** (alpha.80 → alpha.81) — WSL2 daemon triple bug
- **#2112** (alpha.79 → alpha.80) — opentelemetry overrides on ruflo wrapper
- **#2086** (alpha.71 → alpha.72) — ruvllm WASM auto-init
- **#2042** (alpha.77 → alpha.78) — agent_execute provider routing
- **#2078** (alpha.78) — opt-in Co-Authored-By trailer
- **#2089 / ADR-127** — GitHub stack modernization
- **#2095 / ADR-128** — init bundle reduce
- **#2068 / ADR-126** — neural-trader substrate integration
- **#2061 / ADR-125** — memory consolidation, 2.70x retrieval speedup via RaBitQ quantization
Co-Authored-By: rUv