feat(ospipe): RuVector-enhanced personal AI memory for Screenpipe#163
Merged
feat(ospipe): RuVector-enhanced personal AI memory for Screenpipe#163
Conversation
…eScript SDK Adds the OSpipe crate providing a quantum-enhanced screenpipe integration layer: - Rust core library (7 modules): capture, storage, search, pipeline, safety, config, wasm - WASM bindings via wasm-bindgen for browser deployment - TypeScript SDK (@ruvector/ospipe) with SSE streaming and hybrid search - Frame deduplication, PII safety gate, query routing, cosine similarity search - 56 tests passing (24 unit + 32 integration), builds for native + wasm32 - Comprehensive ADR with Windows/macOS/Linux/WASM integration plans - CI stub for cross-platform matrix builds (Linux, Windows, macOS, WASM) Co-Authored-By: claude-flow <ruv@ruv.net>
…peline - Add comprehensive README.md with features, comparison tables, quick start guides, collapsed configuration reference, and API docs - Fix all default clippy warnings (auto-fix + manual) - Replace Vec with VecDeque in FrameDeduplicator for O(1) eviction - Remove redundant frame.clone() in ingestion pipeline (move instead) - Add is_empty() to WASM OsPipeWasm type - Fix broken intra-doc link for cfg-gated bindings module - Remove unused imports in integration tests (FrameContent, SearchConfig) Co-Authored-By: claude-flow <ruv@ruv.net>
…ase 2-4) Add four new OSpipe modules integrating RuVector crates: - graph: KnowledgeGraph wrapping ruvector-graph with heuristic entity extraction (URLs, emails, @mentions, capitalized phrases), entity/ relationship CRUD, and frame entity ingestion - search/reranker: AttentionReranker using ruvector-attention scaled dot-product attention for result re-ranking (0.6*attention + 0.4*cosine) - learning: SearchLearner with EWC (ruvector-gnn) for continual learning without catastrophic forgetting, ReplayBuffer for feedback, and EmbeddingQuantizer for age-based vector compression - quantum: QuantumSearch using ruqu-algorithms QAOA for diversity selection, Grover-inspired amplitude boosting, and optimal iteration estimation All modules use cfg-gated dual implementations (native + WASM stub). 60 tests passing (59 integration + 1 doc-test), native + WASM builds clean. Co-Authored-By: claude-flow <ruv@ruv.net>
…, MMR, safety fixes Implements all remaining OSpipe features from the gap analysis: High — Core functionality: - HNSW indexing via ruvector-core with O(log n) ANN search (HnswVectorStore) - EmbeddingModel trait + RuvectorEmbeddingModel for pluggable embedding backends - JSON-file persistence layer (PersistenceLayer) for frames and config - Axum REST API server matching TypeScript SDK endpoints (/search, /graph, /health, /stats, /route) - Enhanced search pipeline wired into ingestion (router -> rerank -> quantum diversity) Medium — Correctness: - WASM/native routing consistency (aligned keyword sets and priority order) - WASM/native safety consistency (email detection, deny keywords, CC/SSN patterns) - MMR (Maximal Marginal Relevance) reranker for diversity vs relevance tradeoff - Delete and update_metadata APIs on VectorStore and HnswVectorStore - Email redaction preserves surrounding whitespace (tabs, newlines, multi-space) Lower — Polish: - TypeScript SDK: fetchWithRetry with exponential backoff, timeout, AbortSignal - console_error_panic_hook init in WASM module - WASM test scaffold (tests/wasm.rs) - Quantization tiers in config (None -> Scalar -> Product -> Binary by age) - All clippy warnings resolved (0 warnings) 82 tests passing, 1 doc-test passing, 0 clippy warnings. Co-Authored-By: claude-flow <ruv@ruv.net>
Co-Authored-By: claude-flow <ruv@ruv.net>
…lishing - Add ospipe-server binary with CLI args (--port, --data-dir, --help, --version) - Add tracing-subscriber for structured logging - Version-pin all 9 path dependencies for crates.io readiness - Fix ref -> ref mut for KnowledgeGraph mutable borrow in pipeline - Fix redundant rustdoc link in embedding.rs - Update ospipe-wasm package.json to match wasm-pack output filenames - WASM build produces 145KB binary with full browser API Build artifacts (not committed, in dist/): - ospipe-server-linux-x86_64 (1.8MB) - ospipe-server-linux-arm64 (1.6MB) - ospipe-server-windows-x86_64.exe (3.9MB) - ospipe_bg.wasm (145KB) - @ruvector/ospipe npm tarball (13.9KB) Co-Authored-By: claude-flow <ruv@ruv.net>
Add OSpipe personal AI memory section to root README with features, comparison table, install commands, and Rust quickstart. Published to registries: - ospipe v0.1.0 (crates.io) - ruvector-delta-core v0.1.0 (crates.io) - ruvector-cluster v2.0.2 (crates.io) - ruvector-router-core v2.0.2 (crates.io) - @ruvector/ospipe v0.1.0 (npm) - @ruvector/ospipe-wasm v0.1.0 (npm) Co-Authored-By: claude-flow <ruv@ruv.net>
- Add uuid to OSpipe dev-dependencies to fix version mismatch in integration tests - Bump rvlite npm package to 0.2.1 (0.2.0 blocked by npm) Co-Authored-By: claude-flow <ruv@ruv.net>
ruvnet
added a commit
that referenced
this pull request
Feb 20, 2026
* feat(ospipe): implement OSpipe screenpipe integration with WASM + TypeScript SDK Adds the OSpipe crate providing a quantum-enhanced screenpipe integration layer: - Rust core library (7 modules): capture, storage, search, pipeline, safety, config, wasm - WASM bindings via wasm-bindgen for browser deployment - TypeScript SDK (@ruvector/ospipe) with SSE streaming and hybrid search - Frame deduplication, PII safety gate, query routing, cosine similarity search - 56 tests passing (24 unit + 32 integration), builds for native + wasm32 - Comprehensive ADR with Windows/macOS/Linux/WASM integration plans - CI stub for cross-platform matrix builds (Linux, Windows, macOS, WASM) Co-Authored-By: claude-flow <ruv@ruv.net> * chore(ospipe): add README, fix clippy warnings, optimize dedup and pipeline - Add comprehensive README.md with features, comparison tables, quick start guides, collapsed configuration reference, and API docs - Fix all default clippy warnings (auto-fix + manual) - Replace Vec with VecDeque in FrameDeduplicator for O(1) eviction - Remove redundant frame.clone() in ingestion pipeline (move instead) - Add is_empty() to WASM OsPipeWasm type - Fix broken intra-doc link for cfg-gated bindings module - Remove unused imports in integration tests (FrameContent, SearchConfig) Co-Authored-By: claude-flow <ruv@ruv.net> * feat(ospipe): integrate graph, attention, GNN, and quantum crates (Phase 2-4) Add four new OSpipe modules integrating RuVector crates: - graph: KnowledgeGraph wrapping ruvector-graph with heuristic entity extraction (URLs, emails, @mentions, capitalized phrases), entity/ relationship CRUD, and frame entity ingestion - search/reranker: AttentionReranker using ruvector-attention scaled dot-product attention for result re-ranking (0.6*attention + 0.4*cosine) - learning: SearchLearner with EWC (ruvector-gnn) for continual learning without catastrophic forgetting, ReplayBuffer for feedback, and EmbeddingQuantizer for age-based vector compression - quantum: QuantumSearch using ruqu-algorithms QAOA for diversity selection, Grover-inspired amplitude boosting, and optimal iteration estimation All modules use cfg-gated dual implementations (native + WASM stub). 60 tests passing (59 integration + 1 doc-test), native + WASM builds clean. Co-Authored-By: claude-flow <ruv@ruv.net> * feat(ospipe): complete all 15 gap items — HNSW, persistence, REST API, MMR, safety fixes Implements all remaining OSpipe features from the gap analysis: High — Core functionality: - HNSW indexing via ruvector-core with O(log n) ANN search (HnswVectorStore) - EmbeddingModel trait + RuvectorEmbeddingModel for pluggable embedding backends - JSON-file persistence layer (PersistenceLayer) for frames and config - Axum REST API server matching TypeScript SDK endpoints (/search, /graph, /health, /stats, /route) - Enhanced search pipeline wired into ingestion (router -> rerank -> quantum diversity) Medium — Correctness: - WASM/native routing consistency (aligned keyword sets and priority order) - WASM/native safety consistency (email detection, deny keywords, CC/SSN patterns) - MMR (Maximal Marginal Relevance) reranker for diversity vs relevance tradeoff - Delete and update_metadata APIs on VectorStore and HnswVectorStore - Email redaction preserves surrounding whitespace (tabs, newlines, multi-space) Lower — Polish: - TypeScript SDK: fetchWithRetry with exponential backoff, timeout, AbortSignal - console_error_panic_hook init in WASM module - WASM test scaffold (tests/wasm.rs) - Quantization tiers in config (None -> Scalar -> Product -> Binary by age) - All clippy warnings resolved (0 warnings) 82 tests passing, 1 doc-test passing, 0 clippy warnings. Co-Authored-By: claude-flow <ruv@ruv.net> * chore: update Cargo.lock after OSpipe dependency changes Co-Authored-By: claude-flow <ruv@ruv.net> * feat(ospipe): add server binary, WASM build, version-pin deps for publishing - Add ospipe-server binary with CLI args (--port, --data-dir, --help, --version) - Add tracing-subscriber for structured logging - Version-pin all 9 path dependencies for crates.io readiness - Fix ref -> ref mut for KnowledgeGraph mutable borrow in pipeline - Fix redundant rustdoc link in embedding.rs - Update ospipe-wasm package.json to match wasm-pack output filenames - WASM build produces 145KB binary with full browser API Build artifacts (not committed, in dist/): - ospipe-server-linux-x86_64 (1.8MB) - ospipe-server-linux-arm64 (1.6MB) - ospipe-server-windows-x86_64.exe (3.9MB) - ospipe_bg.wasm (145KB) - @ruvector/ospipe npm tarball (13.9KB) Co-Authored-By: claude-flow <ruv@ruv.net> * docs: add OSpipe to root README, publish ospipe + deps to crates.io Add OSpipe personal AI memory section to root README with features, comparison table, install commands, and Rust quickstart. Published to registries: - ospipe v0.1.0 (crates.io) - ruvector-delta-core v0.1.0 (crates.io) - ruvector-cluster v2.0.2 (crates.io) - ruvector-router-core v2.0.2 (crates.io) - @ruvector/ospipe v0.1.0 (npm) - @ruvector/ospipe-wasm v0.1.0 (npm) Co-Authored-By: claude-flow <ruv@ruv.net> * fix: add uuid dev-dep for tests, bump rvlite to 0.2.1 - Add uuid to OSpipe dev-dependencies to fix version mismatch in integration tests - Bump rvlite npm package to 0.2.1 (0.2.0 blocked by npm) Co-Authored-By: claude-flow <ruv@ruv.net>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Implements OSpipe — a quantum-enhanced personal AI memory system that integrates Screenpipe with the RuVector ecosystem. Replaces Screenpipe's SQLite + FTS5 search with SIMD-accelerated HNSW vector search, adding semantic search, PII safety, frame deduplication, and cross-platform deployment.
What's Included
Rust Core Library (
examples/OSpipe/) — 30+ source files across 10 modulescapture— Frame data structures (OCR, transcription, UI events)storage— HNSW-backed vector store + pluggable embedding traitsearch— Query router + hybrid search + MMR diversity + attention rerankerpipeline— Ingestion pipeline with deduplication + enhanced search orchestratorsafety— PII detection and content redaction (CC, SSN, email with whitespace preservation)graph— Knowledge graph with entity extraction (persons, URLs, emails, mentions)learning— Continual learning with EWC + experience replay bufferquantum— Quantum-inspired search diversity (QAOA + Grover amplitude boost)persistence— JSON-file persistence layerserver— Axum REST API server with all TypeScript SDK endpointswasm— wasm-bindgen exports for browser deploymentconfig— Full configuration with HNSW params, quantization tiers, MMR lambdaServer Binary (
ospipe-server) — Standalone REST API server--port,--data-dir,--help,--versionCLI flagsTypeScript SDK (
npm/packages/ospipe/) —@ruvector/ospipefetchWithRetrywith exponential backoff, timeout, AbortSignalWASM Package (
npm/packages/ospipe-wasm/) —@ruvector/ospipe-wasmADR (
examples/OSpipe/ADR-OSpipe-screenpipe-integration.md) — 1,986 linesScreenpipe vs OSpipe
RuVector Integration (10 crates)
ruvector-core— HNSW vector storage + embedding providersruvector-filter— Metadata filteringruvector-cluster— Frame deduplicationruvector-delta-core— Change trackingruvector-router-core— Query classificationcognitum-gate-kernel— AI safety gateruvector-graph— Knowledge graph DBruvector-attention— Scaled dot-product attention rerankingruvector-gnn— Graph neural nets + EWC continual learningruqu-algorithms— QAOA quantum-inspired diversity selectionBuild Artifacts
ospipe-server-linux-x86_64ospipe-server-linux-arm64ospipe-server-windows-x86_64.exeospipe_bg.wasm@ruvector/ospipe@ruvector/ospipe-wasmVerification
Test plan
cargo test -p ospipe— 179 tests passcargo build -p ospipe --bin ospipe-server— server binary buildscargo build -p ospipe --release— release build succeedswasm-pack build --target web --release— WASM build (145 KB)npx tsc --noEmit— TypeScript compiles cleanlynpm pack— SDK tarball created (13.9 KB)cargo doc -p ospipe --no-deps— documentation buildscargo package -p ospipe --allow-dirty— crate packaging passes metadata validation🤖 Generated with claude-flow