v3.6.29

ruvnet/ruflov3.6.29May 5, 2026by ruvnet

AI Summary

This patch release (v3.6.29) fixes 2 of 4 architectural issues identified by the Liberation of Bajor team's evaluation. The primary fixes address hooks not loading when using the plugin install path, and the spawn command not passing --mcp-config to worker processes.

Key Highlights

  • Fixed hooks loading for plugin-install path by adding hooks.json at plugins/ruflo-core/hooks/hooks.json
  • Fixed spawn worker --mcp-config flag so MCP tool registry is properly populated
  • Added resolution order for mcp-config: explicit flag → ./.mcp.json → ~/.claude.json → ~/.claude/mcp.json
  • Changed from silent failure to explicit warning when no mcp-config found
  • 55 verified fixes in regenerated verification.md.json for 3.6.29

New Features

  • Hooks now load correctly when using /plugin install ruflo-core@ruflo
  • hive-mind spawn --claude now automatically passes --mcp-config to spawned workers
  • Both plugin-install and --plugin-dir hook layouts are now supported

Full Release Notes

> Closes 2 of 4 architectural issues from #1748 (the Liberation of Bajor team's methodical eval). Already on npm; tags \`latest\`, \`alpha\`, \`v3alpha\` consistent across all 3 packages.

\`\`\`bash
npx @claude-flow/cli@3.6.29
npx claude-flow@3.6.29
npx ruflo@3.6.29
\`\`\`

## What's new

### #1748 Issue 1 — hooks per-plugin layout (PR #1754)

Plugin install path \`/plugin install ruflo-core@ruflo\` was loading **zero hooks** because Claude Code's plugin loader looks at \`<plugin>/hooks/hooks.json\` per-plugin, but ruflo's hooks lived only at marketplace root \`.claude-plugin/hooks/hooks.json\`.

The reporter cross-checked against \`hookify\` (working positive control) — its hooks live inside the plugin directory and load correctly.

**Fix:** \`plugins/ruflo-core/hooks/hooks.json\` (new, byte-identical to root copy). Both layouts work now.

| Install path | Hooks loaded from |
|---|---|
| \`/plugin install ruflo-core@ruflo\` | \`plugins/ruflo-core/hooks/hooks.json\` ← **new** |
| \`claude --plugin-dir <repo-root>\` | \`.claude-plugin/hooks/hooks.json\` (preserved) |
| \`npx ruflo init\` | \`.claude/settings.json\` (generated by \`init.ts\`) |

This was **the most load-bearing fix** in #1748 — the README's "auto-routing magic happens for free" pitch was a no-op for plugin-install users until this landed.

### #1748 Issue 2 — spawn worker gets --mcp-config (this release)

\`ruflo hive-mind spawn --claude\` was launching the spawned \`claude -p\` worker WITHOUT \`--mcp-config\`, so the worker's MCP tool registry was empty for \`mcp__ruflo__*\`. The coordination prompt then referenced tools the worker didn't know about and the worker exited silently.

**Fix in \`v3/@claude-flow/cli/src/commands/hive-mind.ts\`:**
- Add \`--mcp-config <path>\` flag to \`spawn\` subcommand
- Resolution order: explicit flag → \`./.mcp.json\` → \`~/.claude.json\` → \`~/.claude/mcp.json\`
- Explicit warning instead of silent failure when none found

\`\`\`bash
# Now works without explicit flag if you have a .mcp.json
npx @claude-flow/cli@3.6.29 hive-mind spawn --claude

# Or pass an explicit one
npx @claude-flow/cli@3.6.29 hive-mind spawn --claude --mcp-config /path/to/.mcp.json
\`\`\`

## Witness manifest

\`verification.md.json\` regenerated for 3.6.29 — 55 verified fixes. Re-derive the Ed25519 public key from the git commit per the existing \`## How to verify\` section.

## Status of #1748

- ✅ **Issue 1** — per-plugin hooks layout (PR #1754, merged)
- ✅ **Issue 2** — spawn worker \`--mcp-config\` (PR #1755, this release)
- ⏳ **Issue 3** — package size 1.8 MB / 30s MCP timeout race (follow-up PR)
- ⏳ **Issue 4** — 237 MCP tool descriptions don't differentiate from native (follow-up PR)

## Verify locally

\`\`\`bash
# Issue 1: hooks now load on plugin install
/plugin install ruflo-core@ruflo
# Check Claude Code debug log — should see 4 hooks (PreToolUse, PostToolUse, PreCompact, Stop)

# Issue 2: spawn passes mcp-config
npx @claude-flow/cli@3.6.29 hive-mind spawn --claude --help | grep mcp-config
\`\`\`

## Pull requests merged

- #1754 — hooks per-plugin layout
- #1755 — spawn --mcp-config

## Thanks

To the **Liberation of Bajor team** for the methodical eval — Issues 1 and 2 are exactly the diagnoses that turn a vague "Ruflo broke for me" into specific, fixable bugs. Issues 3 and 4 are next.

🤖 Generated with [RuFlo](https://github.com/ruvnet/ruflo)