Closes#1839, #1840, #1841, #1842, #1843, #1844, #1845, #1846, #1847.
#1839 — bin/cli.js, bin/mcp-server.js, config-adapter.ts: rename
serverInfo.name 'claude-flow' → 'ruflo' so MCP wire identity matches the
package name. Live probe of `ruflo mcp start` now returns
`serverInfo.name="ruflo"` (verified post-build).
#1840 — init/executor.ts: detectExistingRufloMCP() now also walks
parsed.projects[*].mcpServers.ruflo with normalized path matching
(lowercase + forward-slash) so `claude mcp add ruflo` registrations
stored project-scoped in ~/.claude.json are detected and init skips
writing a duplicate .mcp.json.
#1841 — init/mcp-generator.ts: generated .mcp.json now keys
`mcpServers.ruflo` instead of legacy `mcpServers['claude-flow']`. The
printed `claude mcp add` instructions match. Prevents the
duplicate-tool-prefix problem when init runs over an existing ruflo
registration.
#1842 — commands/doctor.ts: checkMcpServers() now traverses
~/.claude.json.projects[*].mcpServers in addition to top-level
mcpServers, so doctor stops warning "No MCP config found" when a
working project-scoped ruflo registration exists.
#1843 — mcp-tools/system-tools.ts: exclude `unknown` from health
denominator (was dragging the score down even when actionable checks
were green) and surface as `advisory` count. Add YAML config and
sql.js/HNSW/.swarm/ruvector memory paths to detection. Local probe:
4 healthy / 5 actionable = 80% (was 4/8 = 50%) with 3 advisory.
#1844 — services/worker-daemon.ts: WorkerDaemon now reads
.claude-flow/config.yaml (and .yml) when config.json is absent, with
lazy `yaml` import so missing dep falls back to a clear warning.
Adds yaml@^2.8.0 to runtime deps. Logs the chosen source.
#1845 — services/worker-daemon.ts + mcp-tools/hooks-tools.ts: durable
queue boundary between MCP dispatch and daemon. mcp__hooks_worker-
dispatch now writes .claude-flow/daemon-queue/<id>.json (the
process-local Map was invisible to the daemon). The daemon polls this
directory every 5s, executes triggerWorker(), and moves processed
entries to .processed/. Adds `mcp-only` status for queue-write
failures so we never claim `queued` without proof on disk.
#1846 — mcp-tools/memory-tools.ts + commands/memory.ts: feature-detect
smartSearch on the resolved @claude-flow/memory build. When absent
(older published memory packages predate the export), fall through to
plain semantic search with an explicit warning + `smartFallback`
field on the response, instead of throwing
`smartSearch is not a function`.
#1847 — mcp-tools/hooks-tools.ts: hooks_pretrain now emits an explicit
note when a non-empty corpus produces zero patterns, naming the
supported extraction extensions (.ts/.js/.py/.go/.rs/.java) and
clarifying that pretrain is a separate axis from live trajectories
and statusline state. Local probe on a Markdown vault returns the
new note correctly.
src/index.ts: pre-existing TS strict-null error in showCommandHelp()
that was preventing `npm run build` (introduced by #1791.4 / 93b97548e)
fixed by extracting a non-null `current: Command` local instead of
reassigning the optional `command`. Unblocks publish + restores the
integration-docker `npm run build succeeds` test.
Verification:
- 1963 tests pass / 0 fail (was 1962 / 1 due to the index.ts TS error)
- Live MCP probe: serverInfo.name="ruflo" ✅
- Live mcp-generator: emits mcpServers.ruflo ✅
- Live system_health: 80% (4/5 healthy, 3 advisory) ✅
- Live hooks_pretrain on Markdown vault: emits explicit note ✅
Published @claude-flow/cli@3.7.0-alpha.12, claude-flow@3.7.0-alpha.12,
ruflo@3.7.0-alpha.12 with all dist-tags (alpha, latest, v3alpha for
cli/claude-flow; alpha, latest for ruflo).
Co-Authored-By: RuFlo <ruv@ruv.net>