Plugin already at v0.2.0 with 1 agent + 2 skills + 1 command. The contract pieces were missing. RVF (RuVector Format) cognitive containers appear in three plugins. ADR-0001 makes the ownership explicit: - Portable memory + session persistence → ruflo-rvf (this plugin) - Browser sessions as RVF → ruflo-browser ADR-0001 (each session is an RVF container with manifest, trajectory, screenshots, snapshots, cookies, findings) - RVF tooling (10 subcommands) → ruflo-ruvector ADR-0001 (ruvector rvf create/ingest/query/status/segments/derive/compact/ export/examples/download) This plugin sits on top of ruvector's tooling and feeds browser's session-as-RVF model. - ADR-0001 (Proposed) at docs/adrs/0001-rvf-contract.md - README adds Compatibility (pin v3.6), Cross-plugin RVF ownership table (3 sibling-ADR cross-references), Namespace coordination (claims rvf-sessions; defers to ruflo-agentdb ADR-0001), Verification + Architecture Decisions - plugin.json keywords add mcp, cognitive-containers, lineage-tracking (already at v0.2.0) - scripts/smoke.sh — 10 structural checks: version + keywords, both skills + agent + command present, v3.6 pin, namespace coordination, rvf-sessions claimed, browser-RVF cross-reference, ruvector RVF tooling cross-reference, encryption-at-rest (ADR-096) block intact, ADR Proposed, no wildcard tools Verification: bash plugins/ruflo-rvf/scripts/smoke.sh → 10/10 Co-Authored-By: RuFlo <ruv@ruv.net>
3.8 KiB
ruflo-rvf
RVF format for portable agent memory, session persistence, and cross-platform transfer.
Install
/plugin marketplace add ruvnet/ruflo
/plugin install ruflo-rvf@ruflo
Features
- RVF format: Portable vector memory with embeddings, metadata, and causal graphs
- Session persistence: Save and restore complete agent sessions across conversations
- Cross-project transfer: Export and import knowledge between projects
- Claude memory bridge: Import Claude Code auto-memories into AgentDB
- Format migration: Upgrade RVF files across versions
Encryption at rest (ruflo 3.6.25+)
Sessions persisted by this plugin land at .claude-flow/sessions/*.json, which are written through fs-secure.writeFileRestricted({encrypt:true}) per ADR-096. Behavior under the gate:
- Off by default (
CLAUDE_FLOW_ENCRYPT_AT_RESTunset / falsy) — sessions are plaintext JSON at mode 0600, same as ruflo 3.6.24 and earlier. - On (
CLAUDE_FLOW_ENCRYPT_AT_REST=1+CLAUDE_FLOW_ENCRYPTION_KEYset to 64-char hex or 44-char base64) — each session save is AES-256-GCM withRFE1magic-byte prefix. Session restore transparently decrypts via the magic sniff; legacy plaintext sessions still load unchanged during migration.
When exporting RVF files for cross-machine transfer, the encryption gate does NOT apply to the exported bytes — the encryption is at-rest on the originating host. If the RVF is itself sensitive, transport security (sealed boxes / signed blobs) is the next phase per the ADR roadmap.
Confirm the gate state with ruflo doctor -c encryption.
Commands
/rvf-- Memory stats, saved sessions, storage metrics
Skills
rvf-manage-- Manage RVF files for portable memorysession-persist-- Persist and restore agent sessions
Compatibility
- CLI: pinned to
@claude-flow/cliv3.6 major+minor. - Verification:
bash plugins/ruflo-rvf/scripts/smoke.shis the contract.
Cross-plugin RVF ownership
RVF (RuVector Format) cognitive containers appear in three plugins. Each owns a different slice:
| Slice | Owner | What it does |
|---|---|---|
| Portable memory + session persistence | ruflo-rvf (this plugin) |
High-level skills for save/restore, cross-machine transfer |
| Browser sessions as RVF | ruflo-browser ADR-0001 | Each browser session is allocated as an RVF container at session-start (manifest, trajectory, screenshots, snapshots, cookies, findings) |
| RVF tooling (10 subcommands) | ruflo-ruvector ADR-0001 | `ruvector rvf create |
This plugin sits on top of ruvector's tooling and feeds browser's session-as-RVF model.
Namespace coordination
This plugin owns the rvf-sessions AgentDB namespace (kebab-case, follows the convention from ruflo-agentdb ADR-0001 §"Namespace convention"). Reserved namespaces (pattern, claude-memories, default) MUST NOT be shadowed.
rvf-sessions indexes saved session manifests + their RVF container paths. Accessed via memory_* (namespace-routed).
Verification
bash plugins/ruflo-rvf/scripts/smoke.sh
# Expected: "10 passed, 0 failed"
Architecture Decisions
Related Plugins
ruflo-ruvector— exposes theruvector rvf *tooling this plugin sits on top ofruflo-browser— uses RVF containers for session-as-skill artifacts (ADR-0001 there)ruflo-agentdb— namespace convention owner