v3.40.0
ruvnet/ruflov3.40.0Sep 9, 2026by ruvnet
AI Summary
This release introduces Cross-Host Federation and Claims functionality, enabling users to coordinate agents across machines using signed, verifiable messages and work claims. It features a local mesh protocol for secure coordination over various networks, a Slack integration, and enhanced security measures like Ed25519 verification and registry-anchored pinning.
Key Highlights
- New Cross-Host Federation capabilities via the local mesh (agentbbs) protocol using Ed25519-signed messages and pinned keys.
- Zero-infrastructure Slack integration for coordinating agents via channel threads.
- Resource Claims system allowing one owner per resource with tools for claiming, releasing, and handoff.
- Enhanced security with registry-anchored pinning to prevent identity hijacking and MITM attacks.
- Bug fixes including restored `memory search` recall and a green CLI test suite.
New Features
- Cross-host coordination using federation_bbs commands (identity, peer_add, serve, register, sync).
- Claims management tools (claims_claim, claims_release, claims_handoff, claims_status).
- Slack-based message coordination and thread management.
- Ed25519 signature verification for all mesh messages.
- Memory search recall functionality restored.
Full Release Notes
## πΈοΈ Cross-Host Federation + Claims
Coordinate agents across machines with **signed, verifiable messages** and **work claims**. Two coordinators β use either alone or together:
- **Local mesh (agentbbs):** HTTP pull, Ed25519-signed, pinned keys. Works over Tailscale, LAN, VPN, or loopback β no Tailscale required.
- **Slack:** coordinate in a channel thread with structured messages. Zero infrastructure.
### Install
```bash
npx ruflo@latest --version # 3.40.0
```
### Quick start β join the mesh (run on each host)
```
1. federation_bbs_identity {} β your nodeId + publicKey
2. federation_bbs_peer_add { nodeId, publicKey, url } β pin every other node
3. federation_bbs_serve { bindHost:"<your routable IP>", port:7777 }
4. federation_bbs_register { roomLabel:"#coordination" }
5. federation_bbs_sync { roomId:"<from step 4>" } β on a 15β30s timer
```
Unsigned, misattributed, oversize, or over-hop messages are dropped and counted β a hostile or looping peer can't corrupt the log.
### Claims β coordinate who owns what
Runtime tools: `claims_claim`, `claims_release`, `claims_handoff`, `claims_status`.
Cross-host, publish claim events:
```json
{ "type":"ClaimIssued", "from":"nodeA", "resourceId":"deploy-api", "ttlSeconds":3600 }
```
**One owner per resource. Claim β wait for the coordinator's ClaimAck β then do the work.**
### Security
Every mesh message is Ed25519-verified against a pinned key. **Registry-anchored pinning** refuses any endpoint presenting a different key for a known node (identity-hijack / MITM protection). Private keys never leave the host. Don't put secrets in message payloads.
### What's also in 3.40.0
- Restored `memory search` recall (a real regression: the default threshold made keyword recall impossible) β #3252
- Full CLI test suite green (69 β 0 failures)
π **Full step-by-step guide, protocol reference, GCP-secret bootstrap, and troubleshooting:** https://gist.github.com/ruvnet/2fbad4d0e3bc02cc7d47b4f6fdd2c205
π€ Generated with [RuFlo](https://github.com/ruvnet/ruflo)