Three small fixes:
- memory README: switched the two new badges' hrefs from relative
(`../../../data/clone-data.proof.json`) to absolute GitHub URLs
so they render correctly on the npm.js package page (npm strips
relative links in README markdown)
- root README: added the same `ecosystem downloads 22.2M+` and
`git clones 14d 115k` badges alongside the existing per-package
ruflo/claude-flow download badges
- ruflo/README.md: same addition, since it's the umbrella that
users see first via `npx ruflo@latest`
All three badge URLs point to `data/clone-data.{proof,ledger}.json`
which the 13-day cron in .github/workflows/clone-tracker.yml will
keep updating.
Co-Authored-By: RuFlo <ruv@ruv.net>
GitHub only retains 14 days of clone-traffic data, and there's no
third-party archive of historic clones. So we ship our own tracker:
- `scripts/track-clones.mjs` — fetches clones for 5 ruflo-ecosystem
repos (ruflo, agentdb, agentic-flow, ruvector, ruv-FANN) and npm
downloads for headline packages. Produces three artifacts:
- `data/clone-data.rvf` — RuVector vector store (RvfDatabase,
10-dim per snapshot for similarity search across time)
- `data/clone-data.ledger.json` — append-only chronology with
per-repo breakdown (human-readable in PR diffs)
- `data/clone-data.proof.json` — provenance manifest with
SHA-256 over the ledger
- `.github/workflows/clone-tracker.yml` — runs every 13 days at
06:17 UTC + on workflow_dispatch + on edits to the tracker.
Commits the new snapshot back to main as `ruflo-bot`.
README badges now show:
- `ecosystem downloads 22.2M+` (sum across claude-flow + ruflo +
@claude-flow/* + agentdb + agentic-flow + ruvector/* — 152 npm
packages, last 12 months: 22,275,946 as of 2026-05-19)
- `git clones 14d 115k` (linked to the live ledger)
Initial snapshot captured at run time. Sources/formula documented
in `data/clone-data.proof.json` so any reader can verify the
claim by re-running the script.
Co-Authored-By: RuFlo <ruv@ruv.net>
Updated tally now includes `agentdb` (1.46M) and `agentic-flow`
(0.92M) — the two upstream packages this module depends on and
that the broader Ruflo ecosystem ships through. Last-year total
across all ruvnet-published packages (claude-flow + ruflo +
@claude-flow/* + agentdb + agentic-flow) is 5,610,780 as of
2026-05-19. Rounded down to 5.6M+ for conservative display.
Re-labeled "ecosystem downloads" to be clear this counts the
whole ruflo/claude-flow surface, not just @claude-flow/memory.
Links to ruvnet's npm profile page so the figure ages well.
Co-Authored-By: RuFlo <ruv@ruv.net>
Static badge citing the sum of last-year downloads across all
claude-flow + ruflo + @claude-flow/* packages (3,229,573 as of
2026-05-19 per npm registry API). Links to the org page so the
visual stays accurate even as the number grows.
Not using the dynamic `npm downloads` badge because it shows
single-package counts which understate the actual org reach.
Co-Authored-By: RuFlo <ruv@ruv.net>
The previous README pre-dated ADR-125 and showed `AgentDBAdapter` as
the canonical entry point with no mention of `MemoryService`, the real
hybrid default, persistent HNSW, the consolidator, or graceful FTS5
fallback. Perf claims ("150x-12,500x") had no committed referent.
Updated:
- Replace the "150x-12,500x Faster" badge with a real-measured one
citing the HNSW baseline (0.53 ms / 1,889 ops/s).
- Add a `What's new in 3.0.0-alpha.18` summary up top covering all
six ADR-125 deliverables plus the #1867 Node 26 install fix.
- Refresh Features list — drop dead claims, add the four new
capabilities (canonical service, real hybrid default, persistence,
consolidator, graceful FTS5), call out cross-platform install.
- Rewrite Quick Start to lead with `createHybridService` + showing
the new persist/restore round-trip; keep the raw `HNSWIndex` recipe
as the lower-level option (with `serialize`/`deserialize`).
- Add a `Migrating from 3.0.0-alpha.17` section documenting the
`UnifiedMemoryService` → `MemoryService` rename, the now-real
`createHybridService` semantics, and the no-throw `semanticSearch`
behavior change with the `health.embedder` event replacement.
- Add four new top-level sections — Persistence, Memory consolidation,
Graceful retrieval (FTS5 fallback), and a Performance Benchmarks
block that cites the committed `benchmarks/results/baseline-*.md`.
- Fix `MemoryMigration` → `MemoryMigrator` / `createMigrator` (the
old README referenced a class that didn't exist).
- Update Dependencies block to reflect `agentdb@^3.0.0-alpha.14`,
optional `better-sqlite3` for Node 24/26 install support, optional
`@claude-flow/embeddings` with the new graceful-degradation behavior.
- Remove `npm downloads` badge per maintainer preference.
Doc-only change. No code touched.
Refs #2061 (ADR-125)
Refs #1867 (Node 26 install support)
Co-Authored-By: RuFlo <ruv@ruv.net>
Adds a 'Standalone use (without the Ruflo CLI)' section to each
module's README right after Installation, with copy-pasteable
recipes verified against the published artifacts (fresh `npm install`
clean room, no patched dist, exit 0 for every example).
Recipes:
@claude-flow/memory (@3.0.0-alpha.16)
1. HNSWIndex — add 3 vectors, search top-2, no other deps
2. ControllerRegistry + injected AgentDB — proves the v3
governance layer works on a caller-owned AgentDB instance
(the agentdb injection field added in #2019)
@claude-flow/embeddings
1. MockEmbeddingService + cosineSimilarity — embed + compare
without network calls
2. Provider swap snippet showing OpenAI / Transformers / etc.
keep the same API surface
@claude-flow/security (@3.0.0-alpha.7)
1. InputValidator.validate(EmailSchema) +
new PasswordHasher({ rounds: 12 }) +
createCredentialGenerator().generateApiKey() — three of the
OWASP top 10 in ~15 lines
2. createDevelopmentExecutor — git through the allowlist gate;
createProjectPathValidator — refuses `../` traversal with
errors[] surfaced
Bugs uncovered by running the recipes against live npm:
- `embed()` returns { embedding, tokens, ... }, not a raw Float32Array
(recipe destructures `.embedding`).
- createPasswordHasher(rounds: number) accepts a NUMBER, not a
config object (passing `{ rounds: 12 }` made config.rounds nest
into `{ rounds: 12 }` and bcryptjs threw 'Illegal arguments:
string, object'). Switched recipe to `new PasswordHasher(...)`.
- generateCredentials() does NOT generate API keys — that lives
on `CredentialGenerator.generateApiKey(prefix)`. Recipe now
uses createCredentialGenerator().generateApiKey().
- PathValidator result is { isValid, errors[], ... }, not
{ valid, error }. Recipe matches the real shape.
Not included — @claude-flow/neural standalone recipe:
@claude-flow/neural@3.0.0-alpha.8 currently fails on fresh
install because @ruvector/sona@0.1.6 is an empty publish (only
README + package.json — no index.js, no native bins).
@ruvector/sona@0.1.5 had full content (index.js + 7 platform
bins), so this is a regression in the latest sona release that
blocks the entire neural package from loading.
Rather than ship a broken recipe, the neural README gains a
'Known issue' callout pointing at @ruvector/sona@0.1.6. Fix
path: republish @ruvector/sona with content or pin
@claude-flow/neural to @ruvector/sona@^0.1.5 in its next bump.
Co-Authored-By: RuFlo <ruv@ruv.net>
Automatic checkpoint created by Claude Code
- Branch: rebrand/ruvflow-umbrella
- Timestamp: 2026-02-08T16:52:34Z
- Changes: 1 file(s)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Automatic checkpoint created by Claude Code
- Branch: rebrand/ruvflow-umbrella
- Timestamp: 2026-02-08T16:52:20Z
- Changes: 1 file(s)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Automatic checkpoint created by Claude Code
- Branch: rebrand/ruvflow-umbrella
- Timestamp: 2026-02-08T16:50:27Z
- Changes: 1 file(s)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Automatic checkpoint created by Claude Code
- Branch: rebrand/ruvflow-umbrella
- Timestamp: 2026-02-08T16:49:34Z
- Changes: 1 file(s)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Automatic checkpoint created by Claude Code
- Branch: rebrand/ruvflow-umbrella
- Timestamp: 2026-02-08T01:03:06Z
- Changes: 1 file(s)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Automatic checkpoint created by Claude Code
- Branch: rebrand/ruvflow-umbrella
- Timestamp: 2026-02-08T01:02:40Z
- Changes: 6 file(s)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>