v3.38.2 β removed-agent restore + mcp http foreground fix
Fixes
#2985 β ruflo migrate status's ADR-128 removed-agent remediation printed a command that couldn't succeed. ruflo plugins install <plugin> required -n/--name (not a positional) and targeted the npm-package plugin system entirely, while the gap detector's own registry check (installed_plugins.json) is for the Claude Code marketplace system. Fixed to print /plugin install <plugin>@ruflo, and β going further than a pointer fix β adds a real ruflo migrate fix --agents command that restores the missing agent files from their canonical plugin content (marketplace clone β repo checkout β GitHub tag β main fallback), rewriting the marketplace-only mcp__plugin_ruflo-core_ruflo__* tool namespace to the canonical claude-flow server key for npm-track users. Never overwrites an existing file. Contributed by @pacphi via #2986.
#2984 β ruflo mcp start -t http printed a full "Status: Running" success table, then exited within seconds without ever binding the port. Root cause: bin/cli.js's dispatcher unconditionally exits the process once a command's action resolves (an assumption that only holds for genuinely one-shot commands) β mcp start's HTTP/WebSocket path returned immediately after printing its success table, tearing down the freshly-bound http.Server before any client could connect. Fixed by blocking in the foreground with SIGINT/SIGTERM-driven graceful shutdown, matching daemon start --foreground's established pattern.
Also corrected doc drift found while investigating #2985: README.md/docs/USERGUIDE.md's claude mcp add examples now use the canonical claude-flow server key (per #2206); README's claim that the Claude Code plugin path never registers an MCP server corrected (ruflo-core ships its own).
Also investigated this cycle, not reproduced
#2969 (--version hang), #2970 (witness verify soft-pass), #2967 bug 1 (uptime unit mismatch) β checked via direct repro against main, none reproduced. See the linked issues for the evidence.