v3.15.0

ruvnet/ruflov3.15.0Jun 29, 2026by ruvnet

AI Summary

MINOR release integrating agenticow for Copy-On-Write memory branching via 4 new MCP tools, addressing a critical 3.3 GB tarball-bloat regression.

Key Highlights

  • Added 4 new MCP tools for COW memory branching (branch, checkpoint, rollback, promote)
  • Fixed 3.3 GB tarball-bloat regression by implementing 162-byte branches
  • Verified performance benchmarks confirming constant-size branches

New Features

  • agenticow_branch
  • agenticow_checkpoint
  • agenticow_rollback
  • agenticow_promote

Full Release Notes

## What's new in 3.15.0

This is a **MINOR** release adding [`agenticow@~0.2.3`](https://www.npmjs.com/package/agenticow) — Copy-On-Write memory branching — as 4 new MCP tools. No breaking changes; the new dep is in `optionalDependencies` with graceful-degraded fallbacks.

### New MCP tools (4)

| Tool | Purpose |
|------|---------|
| `agenticow_branch` | COW-fork a base `.rvf` memory at ~162 bytes regardless of base size |
| `agenticow_checkpoint` | Freeze a labelled restore point that survives close+reopen |
| `agenticow_rollback` | Discard edits since the most recent checkpoint, O(edits) not O(N) |
| `agenticow_promote` | Atomically merge a branch's edits (with tombstones) into a base or target |

Read-through semantics on every branch: **parent ∪ edits, child wins**. Persisted via `<file>.agenticow.json` lineage manifest.

### Motivation

v3.14.4 uncovered a **3.3 GB tarball-bloat regression** where Darwin loops' git-worktree-per-agent pattern accumulated full-copy snapshots. agenticow is the structural fix — 162-byte branches instead of full copies.

### Measured perf vs. published claims

Full bench harness: [`scripts/bench-agenticow.mjs`](https://github.com/ruvnet/ruflo/blob/main/scripts/bench-agenticow.mjs)
Findings doc: [`docs/agenticow/findings.md`](https://github.com/ruvnet/ruflo/blob/main/docs/agenticow/findings.md) ([gist mirror](https://gist.github.com/ruvnet/2d6c1c9944f8da5b3f9e69ef1c5a0b3a))

| Claim | Result | Detail |
|-------|--------|--------|
| 162-byte branches | ✅ Confirmed exact | Constant at N=1k, 10k, 50k |
| ≥3,000× smaller than full-copy | ✅ Confirmed and exceeded | 3,214× at N=1k → 181,930× at N=50k |
| "0.5ms branch" | ❌ Not reproduced | Measured ~10 ms (fixed cost, not size-proportional) |
| "83× faster" | ❌ Crossover N≈30k | Below crossover, full-copy wins |

We measured, not parroted — per CLAUDE.md's source-of-truth rule.

### Architectural constraint (zero hard runtime dep)

`agenticow` is in `optionalDependencies`. When missing, every tool returns `{success: true, degraded: true, reason: 'agenticow-not-found'}` and exits 0. Same posture as the metaharness integration (ADR-150). Verified by the `no-metaharness-smoke` CI gate on every PR.

### What this enables in ruflo

- **Darwin loops without worktree bloat** — branch-per-iteration at 162 B instead of full git-worktree clones
- **Speculative agent edits with O(1) rollback** — checkpoint → try → rollback if the JUDGE step rejects
- **Per-user / per-session memory personalization** — federation primitive for fork-and-merge
- **A/B routing experiments on real memory** — branch candidate routers, bench each, promote the winner

### Tests

- 7/7 vitest unit tests pass (`v3/@claude-flow/cli/__tests__/agenticow-tools.test.ts`)
- 8/8 bash smoke contract pass (`scripts/smoke-agenticow.sh`)
- 108/108 CI checks green on PR #2500 before merge

### Install / upgrade

```bash
npx ruflo@latest             # 3.15.0
npx @claude-flow/cli@latest  # 3.15.0
npx claude-flow@latest       # 3.15.0
```

Or via `package.json`:

```json
{
  "dependencies": {
    "@claude-flow/cli": "^3.15.0"
  }
}
```

### Verified npm dist-tags

```
@claude-flow/cli   latest=3.15.0  alpha=3.15.0  v3alpha=3.15.0
claude-flow        latest=3.15.0  alpha=3.15.0  v3alpha=3.15.0
ruflo              latest=3.15.0  alpha=3.15.0  v3alpha=3.15.0
```

### Related

- PR #2500 — feat(mcp): integrate agenticow@~0.2.3 — COW memory branching (4 MCP tools)
- PR #2501 — chore(release): 3.14.4 → 3.15.0