v3.59.0

ruvnet/ruflov3.59.0Oct 20, 2026by ruvnet

Upgrading?

AI Summary

This release introduces real AgentDB HNSW vector search, automatic RaBitQ index building, and support for the Grok Build CLI host, alongside fixes for memory management and task reporting.

Key Highlights

  • Native AgentDB HNSW vector search now replaces the dead `getController('hnsw')` path with a functional implementation.
  • RaBitQ index builds automatically on demand with a safe fallback to exact search.
  • New Grok Build CLI host support added as a first-class agent host in the `init` command.
  • Memory commands (`list` and `search`) gained tag filtering and an Ollama default model.

New Features

  • Real AgentDB HNSW vector search
  • Automatic RaBitQ index building
  • Grok Build CLI host support
  • Memory tag filtering

Full Release Notes

## Highlights

- **Real AgentDB HNSW vector search** (#4249/#4322): `AgentDBBackend` now wires the separately-exported `agentdb.HNSWIndex` directly, replacing the dead `getController('hnsw')` path that always threw against the real `agentdb` package and was silently caught on every search. Native search now has correct staleness rejection, safe rebuilds after writes, and exact-cosine fallback on any native-capability failure, missing dependency, dimension mismatch, or filtered query. Follow-up (#4319) added test coverage for the WASM-missing disable path and concurrent index builds.
- **RaBitQ index now builds automatically** (#4318/#4319): previously required a manual build step; now builds on demand with safe fallback to exact search.
- **New: Grok Build CLI host** (#3512): `init` now supports Grok Build as a first-class agent host alongside Claude Code and Codex.
- **New: memory tag filtering** (#3526): `memory list`/`memory search` gained a tag filter, explicit-provider precedence, and an Ollama default model.

## Fixes

- Memory delete-sync: `AutoMemoryBridge.importFromAutoMemory()` now removes entries whose source file/heading was deleted, instead of being additive-only (#4138).
- Swarm idle-agent heartbeat false positive: healthy idle agents (no in-flight work) were being marked `error` and dropped from `getAvailableAgents()` after 3 missed heartbeat intervals, even though they have no heartbeat producer to begin with (#4320).
- Ephemeral-agent termination idempotency: `FederationHub.terminateAgent()`/`completeAgent()` could double-count the same agent's completion/failure on a repeated call (shutdown, `unregisterSwarm`, TTL cleanup, or a retried request) (#4323).
- `status tasks` always printed "No tasks": it sent `status: 'all'` as a literal filter (matching nothing) and read the wrong field names from `task_list`'s response (#4321).
- `task_list`'s `total` count was computed after applying `limit`, so it always equaled the page size instead of the real match count (#4324).
- `metaharness similarity`'s cost dimension was inert below $0.999 (an algebraic no-op collapsed the whole realistic cost range to 0), and the `minor-drift` verdict threshold had two disagreeing encodings (#3520).
- `ruflo-harness` now reports the live process instead of just the install (#3521).

## Documentation

- Fixed the actual cause of broken images/links on npmjs.com/package/ruflo: a stray `repository.directory: "ruflo"` field in `ruflo/package.json` was adding an extra path layer on top of the README content (which is the repo-root README, copied in verbatim at publish time with repo-root-relative paths already). Removed the field to match `claude-flow`'s own repository entry.

## Published

- `@claude-flow/cli@3.59.0`, `claude-flow@3.59.0`, `ruflo@3.59.0` — `latest`/`alpha`/`v3alpha` dist-tags all verified on the live registry.
- `@claude-flow/memory@3.0.8` (standalone, the #4249 fix — not bundled into the 3-package train).

Related Repositories