v3.10.46
ruvnet/ruflov3.10.46Jun 13, 2026by ruvnet
AI Summary
A patch release sweeping up stale `claude-flow@v3alpha` references that survived the package rename to `ruflo`.
Key Highlights
- Detects and warns about legacy `.mcp.json` keys using deprecated dist-tags.
- Fixes `swarm.ts` MCP-down hint to use `ruflo@latest` with `-y`.
- Fixes `ContainerWorkerPool` worker spawn command to use `ruflo@latest`.
- Adds comprehensive tests to prevent future reintroduction of the legacy tag.
New Features
- Legacy MCP key detection and warning system.
- Updated MCP-down hints and worker spawns to use `ruflo@latest`.
Full Release Notes
Patch release shipping the @dskarasev community bug batch from PR #2375 — three related runtime references to the deprecated `claude-flow@v3alpha` (or `claude-flow@alpha`) dist-tag that survived the `claude-flow` → `ruflo` rename. Each was silently routing users / workers / detection at a pre-rename build that lacks autopilot, browser, wasm-agent, and other current MCP tools. ## Fixes ### #2369 — legacy MCP key detection + Scenario A warning **Scenario A** (the silent-failure mode): if a user's project directory already has an `.mcp.json` from a pre-rename install, `writeMCPConfig` was early-returning with a generic `skipped` message. The user was left with an MCP server pointed at a pre-rename build and zero indication anything was wrong — "autopilot tools missing after init" was the most common downstream symptom. **Now**: `writeMCPConfig` parses the existing file, detects stale keys, and surfaces: ``` .mcp.json (existing file uses deprecated key 'claude-flow@alpha' — autopilot/browser/wasm-agent tools will be missing; delete .mcp.json and re-run, or re-run with --force to overwrite) ``` **Scenario B** (the original report): `detectExistingRufloMCP` only recognised `'claude-flow'` and `'ruflo'` as already-registered keys, so a stale `claude-flow@alpha` entry in a parent directory wasn't detected. Init would walk past it and write a NEW `claude-flow`-keyed entry — both servers then ran simultaneously under different prefixes (`mcp__claude-flow@alpha__*` and `mcp__claude-flow__*`), producing duplicate-tool noise. **Now**: both legacy keys are recognised in both the top-level `mcpServers` and project-scoped registration paths. ### #2370 — swarm.ts MCP-down hint `swarm_init` failure hint changed from: ``` claude mcp add claude-flow npx claude-flow@v3alpha mcp start ``` to: ``` claude mcp add claude-flow -- npx -y ruflo@latest mcp start ``` The `--` separator avoids claude-mcp flag ambiguity; the `-y` forces a fresh fetch so npx doesn't pick a stale local install. ### #2371 — ContainerWorkerPool worker spawn `buildWorkerCommand()` was returning `['npx', 'claude-flow@v3alpha', 'daemon', 'trigger', ...]`. Two problems: the deprecated dist-tag, and the missing `-y` meaning npx could silently fall back to any locally-installed `claude-flow` (e.g. 2.7.35) without fetching the published version. Container workers were running pre-rename builds without knowing. **Now**: `['npx', '-y', 'ruflo@latest', 'daemon', 'trigger', ...]`. ## Tests `v3/@claude-flow/cli/__tests__/stale-mcp-key-2369.test.ts` — 10 tests pin all three runtime contracts plus a comment-stripped sanity sweep over the entire `cli/src/` tree (legitimate legacy-key recognition lists excepted) so a future grep-and-replace can't silently re-introduce the deprecated dist-tag. All 11 existing `init-wizard-bugs` tests still pass — no regression in the surrounding init paths. ## Still open from today's triage - **#2373** (HIGH `agentic-flow/transport/loader` missing from `@latest`) — in-repo half already in v3.10.44 (PR #2364 capped the federation plugin peer). Remaining fix is upstream `ruvnet/agentic-flow#153`. Commented on the issue. - **#2372** — user question about the project, not a code bug. ## Install / upgrade ```bash npx ruflo@latest init # 3.10.46 npx @claude-flow/cli@latest # 3.10.46 ``` All three packages (`@claude-flow/cli`, `claude-flow`, `ruflo`) and all three dist-tags (`latest`, `alpha`, `v3alpha`) verified at 3.10.46. ## Diff main…v3.10.45 — PR #2375 plus the release bump. Thanks @dskarasev for the rigorous per-bug write-up with proposed fixes! 🤖 Generated with [RuFlo](https://github.com/ruvnet/ruflo)