v3.6.26

ruvnet/ruflov3.6.26May 4, 2026by ruvnet

AI Summary

Release v3.6.26 focuses on ADR-098 plugin capability sync with 4 of 5 remediation parts shipped, including capability updates to 7 plugins (versions bumped to 0.2.x), token optimization saving ~2,400 tokens per spawn, model rightsizing (security-auditor downgraded from opus to sonnet), and neural-learning hook standardization. Also adds encryption status reporting to `ruflo doctor` and expands verification witnesses from 27 to 55.

Key Highlights

  • 7 plugins updated with capability sync (0.1.0 → 0.2.x): aidefence, security-audit, rag-memory, rvf, cost-tracker, agentdb, knowledge-graph
  • Token diet optimization saves ~2,400 tokens per spawn across 4 agents (iot-cognitum, ddd, adr, cost-tracker)
  • `ruflo doctor` now reports encryption-at-rest status with gate state, key fingerprint, and per-store breakdown
  • Model rightsizing: security-auditor downgraded from opus to sonnet (~5× cheaper)
  • Verification system expanded from 27 to 55 witnesses covering all MCP source files

Breaking Changes

  • Model downgrade: `ruflo-security-audit/security-auditor` changed from `model: opus` to `model: sonnet` (may affect security review quality for complex cases)

New Features

  • Encryption status reporting via `ruflo doctor -c encryption` with gate state, key fingerprint, and per-store breakdown
  • Neural-learning hook standardization added to 7 previously-missing plugins
  • Reference content moved to per-plugin `REFERENCE.md` files for on-demand loading
  • New verification helpers: `sign-witness-from-inventory.mjs` and `regenerate-witness.mjs`
  • 5 new tests for encryption state detection including encrypted-blob on-disk detection

Full Release Notes

13 commits on top of [3.6.25](https://github.com/ruvnet/ruflo/releases/tag/v3.6.25). Test baseline: **1938 / 1938 passing**, 0 failures, 46 intentionally skipped. Build clean (tsc --noEmit: 0 errors).

## What's new

### ADR-098: Plugin capability sync + 5-part remediation pass

[ADR-098](v3/docs/adr/ADR-098-plugin-capability-sync-and-optimization.md) audited all 32 plugins under `plugins/ruflo-*` and shipped four of the five remediation parts:

**Part 1 — Capability sync (4 slices, 7 plugins)**:
- `ruflo-aidefence` 0.1.0 → 0.2.0 — defense-in-depth pairing with `validateEnv`, file-mode 0600, encryption-at-rest gate
- `ruflo-security-audit` 0.1.0 → 0.2.0 — patterns to scan for from audit_1776853149979
- `ruflo-rag-memory` 0.1.0 → 0.2.0 — encryption-at-rest gate notes
- `ruflo-rvf` 0.1.0 → 0.2.0 — session encryption + cross-machine transfer caveat
- `ruflo-cost-tracker` 0.1.0 → 0.2.1 — federation budget breaker pairing (ADR-097)
- `ruflo-agentdb` 0.1.0 → 0.2.0 — G7 controller table (gnnService, rvfOptimizer, mutationGuard, attestationLog, GuardedVectorBackend)
- `ruflo-knowledge-graph` 0.1.0 → 0.2.0 — G7 controllers from a graph-traversal angle

**Part 2 — Token diet (4 slices)**:
- `iot-cognitum/device-coordinator`: 69 → 30 lines (~470 tokens saved per spawn)
- `ruflo-ddd/domain-modeler`: 93 → 54 lines (~565 tokens saved)
- `ruflo-adr/adr-architect`: 96 → 45 lines (~600 tokens saved)
- `ruflo-cost-tracker/cost-analyst`: 105 → 41 lines (~770 tokens saved)

Cumulative: **~2,400 tokens saved per spawn** across the 4 agents. Reference content moved to per-plugin `REFERENCE.md` files, loaded on-demand.

**Part 3 — Model rightsizing**:
- `ruflo-security-audit/security-auditor` from `model: opus` → `model: sonnet`. ~5× cheaper per token; bounded-scope security review is sonnet-tier work.

**Part 4 — Neural-learning hook standardization**:
- 7 plugin agents that were missing `hooks post-task --train-neural true` got the canonical 3-line tail with role-appropriate context. Re-audit confirms 0/43 missing (was 7/43).

Part 5 (worker dispatch on completion) remains for a future iteration.

### ADR-096 Phase 5 — `ruflo doctor` encryption status

`ruflo doctor` (and `ruflo doctor -c encryption`) now reports encryption-at-rest status:
- Gate state (off / on / fail-closed for missing key)
- Key fingerprint (truncated SHA-256 of resolved key, **never the key itself**)
- Per-store breakdown: `sessions/=enc terminals=plain memory.db=enc` etc.

5 new tests pin the 4 states + on-disk encrypted-blob detection.

### Verification: per-source-file MCP witnesses

`verification.md.json` extended from 27 fix witnesses to **55 total**: 27 regression-fix + 28 capability witnesses (one per source file under `src/mcp-tools/`). `ruflo verify` now confirms the 300-tool surface byte-for-byte against signed dist hashes, not just the recently-fixed slice.

New helpers:
- `scripts/sign-witness-from-inventory.mjs` — appends `CAP-MCP-*` entries from `verification-inventory.json`
- `scripts/regenerate-witness.mjs` — re-hashes + re-signs the manifest after a release bump

## Verify

```bash
ruflo verify
```

55 fixes / 55 verified for `ruflo@3.6.26`.

## Packages

| Package | Version |
|---|---|
| `@claude-flow/cli` | 3.6.26 |
| `claude-flow` (umbrella) | 3.6.26 |
| `ruflo` (umbrella) | 3.6.26 |
| `@claude-flow/plugin-agent-federation` | 1.0.0-alpha.5 (unchanged from 3.6.25) |

## Marketplace plugins bumped

| Plugin | Before | After |
|---|---|---|
| `ruflo-aidefence` | 0.1.0 | 0.2.0 |
| `ruflo-security-audit` | 0.1.0 | 0.2.0 |
| `ruflo-rag-memory` | 0.1.0 | 0.2.0 |
| `ruflo-rvf` | 0.1.0 | 0.2.0 |
| `ruflo-cost-tracker` | 0.1.0 | 0.2.1 |
| `ruflo-agentdb` | 0.1.0 | 0.2.0 |
| `ruflo-knowledge-graph` | 0.1.0 | 0.2.0 |
| `ruflo-iot-cognitum` | 0.1.0 | 0.1.1 |
| `ruflo-ddd` | 0.1.0 | 0.1.1 |
| `ruflo-adr` | 0.1.0 | 0.1.1 |

## Install

```bash
npx ruflo@latest init --wizard
# or
npm install -g ruflo@3.6.26
```

The `flo.ruv.io` MCP bridge picks up 3.6.26 automatically on next container rebuild (`npm install -g ruflo` resolves `latest`).