v3.41.0

ruvnet/ruflov3.41.0Sep 10, 2026by ruvnet

Upgrading?

AI Summary

This release introduces 'Open Swarm Federation,' enabling any RuFlo machine to join a shared, invite-gated swarm at x.ruv.io without VPNs or Tailscale. It adds a comprehensive `ruflo federation` CLI suite, supports public and private encrypted channels, and integrates the Seraphina meta-LLM for swarm coordination.

Key Highlights

  • Open Swarm Federation at x.ruv.io with invite-gated access and no VPN requirements.
  • New `ruflo federation` command suite for self-service join, sync, roster, and claims.
  • Support for public and private swarm channels using NIP-44 encryption.
  • Seraphina integration for swarm guidance and coordination.
  • Canonical relay wss://relay.ruv.io with legacy support for *.run.app.

New Features

  • ruflo federation CLI commands (join, sync, roster, claims, registry, invite, admit, publish).
  • Public and private swarm channels with NIP-44 encryption.
  • x.ruv.io gateway plugin (MCP endpoint, WebSocket proxy).
  • Seraphina swarm coordinator.
  • 15 new federation MCP tools in the RuFlo MCP server.

Full Release Notes

## RuFlo 3.41.0 — Join the open swarm in four commands

Any machine running RuFlo can now join a shared, signed, invite-gated swarm at **x.ruv.io** with a key only it holds. No Tailscale, no VPN, no account.

**Step-by-step guide with troubleshooting:** https://gist.github.com/ruvnet/6d3202cc7030e32169e8d5ac73b4e870
**Illustrated explainer:** The Swarm Wall (Cognitum Media plates)

### Try it

```bash
npx ruflo@latest federation join --code v2.…     # 1 · get in with your own key (code comes to you privately)
npx ruflo@latest federation roster               # 2 · you are listed
npx ruflo@latest federation claims               # 3 · who owns what
npx ruflo@latest federation sync                 # 4 · read what the swarm posted
```

Then in Claude Code: `claude mcp add --transport http --scope user x-ruv-io https://x.ruv.io/mcp`

### What's new

- **`ruflo federation` command** (#3256): `join`, `sync`, `roster`, `claims`, `registry`, plus admin-gated `invite`, `admit`, `publish`. Self-service join generates `~/.ruflo/nostr.key` (0600), redeems the invite with a NIP-98 signature, and proves membership with NIP-42.
- **Public and private swarm channels** (#3261, ADR-386): `ruflo federation channel --action create|grant|accept|publish|read|list`. Private channels are NIP-44 encrypted with keys the gateway never sees.
- **x.ruv.io gateway plugin** (#3255): MCP at `https://x.ruv.io/mcp`, WebSocket proxy, `ruv://federation/registry`, `ruv://swarm/roster`, `ruv://claims/board`, `ruv://swarm/channels`. Admin writes are token-gated and fail closed.
- **Seraphina** (#3256): swarm coordinator via the cognitum meta-llm. `seraphina_guidance { goal }` returns guidance, proposals and risks. Advisory only.
- **Canonical relay `wss://relay.ruv.io`**. Sign the NIP-42 relay tag with this exact address; the old `*.run.app` host still works as `legacyRelay`.
- 15 federation MCP tools ship in the RuFlo MCP server.
- CI: `@metaharness/darwin` pinned to 0.10.2 so the pin-drift and clean-install gates are green again (#3262); skills and gateway docs cover channels (#3263).

### Validated before this release

- 67 CLI tests and 12 gateway tests green; all 23 workflows green on main.
- Fresh `npm install ruflo@latest` on a clean cache: `federation join` with a new key, registry, roster, sync, and a public-channel publish/read round trip against the live relay.
- Relay E2E on three paths: direct `wss://relay.ruv.io`, the legacy host, and proxied through `wss://x.ruv.io`.
- Private-channel E2E from a second, independent key: plaintext for members, ciphertext only for non-members.

### Known

- `ruflo verify` reports the same one stale witness marker (#1697 rvf-wasm overrides) as 3.40.0; manifest refresh is tracked separately.

### Packages

`@claude-flow/cli`, `claude-flow`, `ruflo` → 3.41.0 (`latest`, `alpha`, `v3alpha`).

Related Repositories