@ruvector/rvagent-wasm 0.2.0 — ruflo ADR-129 integration support#512
Closed
ruvnet wants to merge 2282 commits into
Closed
@ruvector/rvagent-wasm 0.2.0 — ruflo ADR-129 integration support#512ruvnet wants to merge 2282 commits into
ruvnet wants to merge 2282 commits into
Conversation
Built from commit e19d846 Platforms updated: - linux-x64-gnu - linux-arm64-gnu - darwin-x64 - darwin-arm64 - win32-x64-msvc 🤖 Generated by GitHub Actions
Built from commit 2cc08a8 Platforms updated: - linux-x64-gnu - linux-arm64-gnu - darwin-x64 - darwin-arm64 - win32-x64-msvc 🤖 Generated by GitHub Actions
Built from commit 1bd4619 Platforms updated: - linux-x64-gnu - linux-arm64-gnu - darwin-x64 - darwin-arm64 - win32-x64-msvc 🤖 Generated by GitHub Actions
Built from commit b6b15bc Platforms updated: - linux-x64-gnu - linux-arm64-gnu - darwin-x64 - darwin-arm64 - win32-x64-msvc 🤖 Generated by GitHub Actions
- Add collapsed deep dive section explaining GNN self-learning in plain language (temporal learning, three learning speeds, HNSW shortcut, Day 1 vs 100K queries improvement) - Add Embeddings row to AI OS table (contrastive training, triplet loss, real-time fine-tuning) - Add Verified Training row (formal proofs, invariant checking, cryptographic certificates) - Simplify Sublinear-Time Solver description Co-Authored-By: claude-flow <ruv@ruv.net>
Break flat table into Intelligence, Data & Search, AI & ML, Infrastructure, Routing & Observability, Security & Trust. Add Domain Models, Routing, Observability, Safety, Lineage layers. Co-Authored-By: claude-flow <ruv@ruv.net>
Built from commit 560c5e4 Platforms updated: - linux-x64-gnu - linux-arm64-gnu - darwin-x64 - darwin-arm64 - win32-x64-msvc 🤖 Generated by GitHub Actions
Co-Authored-By: claude-flow <ruv@ruv.net>
Co-Authored-By: claude-flow <ruv@ruv.net>
Built from commit 960abf9 Platforms updated: - linux-x64-gnu - linux-arm64-gnu - darwin-x64 - darwin-arm64 - win32-x64-msvc 🤖 Generated by GitHub Actions
Built from commit b943018 Platforms updated: - linux-x64-gnu - linux-arm64-gnu - darwin-x64 - darwin-arm64 - win32-x64-msvc 🤖 Generated by GitHub Actions
…System Co-Authored-By: claude-flow <ruv@ruv.net>
Co-Authored-By: claude-flow <ruv@ruv.net>
Built from commit ca1de23 Platforms updated: - linux-x64-gnu - linux-arm64-gnu - darwin-x64 - darwin-arm64 - win32-x64-msvc 🤖 Generated by GitHub Actions
Built from commit 494ab00 Platforms updated: - linux-x64-gnu - linux-arm64-gnu - darwin-x64 - darwin-arm64 - win32-x64-msvc 🤖 Generated by GitHub Actions
Co-Authored-By: claude-flow <ruv@ruv.net>
Built from commit a4d891a Platforms updated: - linux-x64-gnu - linux-arm64-gnu - darwin-x64 - darwin-arm64 - win32-x64-msvc 🤖 Generated by GitHub Actions
Built from commit 4f70c24 Platforms updated: - linux-x64-gnu - linux-arm64-gnu - darwin-x64 - darwin-arm64 - win32-x64-msvc 🤖 Generated by GitHub Actions
- New README for domain expansion crate (cross-domain transfer learning) - All 20 AI OS table layer titles now link to their crate READMEs Co-Authored-By: claude-flow <ruv@ruv.net>
Built from commit c82f72f Platforms updated: - linux-x64-gnu - linux-arm64-gnu - darwin-x64 - darwin-arm64 - win32-x64-msvc 🤖 Generated by GitHub Actions
Built from commit 79ea21a Platforms updated: - linux-x64-gnu - linux-arm64-gnu - darwin-x64 - darwin-arm64 - win32-x64-msvc 🤖 Generated by GitHub Actions
Built from commit 926aa52 Platforms updated: - linux-x64-gnu - linux-arm64-gnu - darwin-x64 - darwin-arm64 - win32-x64-msvc 🤖 Generated by GitHub Actions
Built from commit 89c4f2d Platforms updated: - linux-x64-gnu - linux-arm64-gnu - darwin-x64 - darwin-arm64 - win32-x64-msvc 🤖 Generated by GitHub Actions
…infrastructure map Add genomics, trading, quantum, neuromorphic, graph intelligence, nervous systems, scientific OCR, knowledge graphs, GNN, and SONA as specialized domains with transfer value explanations. Add cross-domain transfer examples table, domain connectivity diagram, and underlying infrastructure layer map. Co-Authored-By: claude-flow <ruv@ruv.net>
…WTA partial select - Fix all 35 compiler warnings across 23 files (unused imports, dead code, unused vars, unnecessary parens) — build is now warning-clean - Optimize NeuromorphicBackend::kuramoto_step O(n²)→O(n): use sin/cos sum identity so coupling_i = (K/N)[cos(φ_i)·ΣsinΦ - sin(φ_i)·ΣcosΦ], eliminates inner loop for 1000-neuron network (1M→1K ops per tick) - Optimize k_wta: full sort O(n log n) → select_nth_unstable O(n avg) using Rust's pdqselect partial sort - Add #[inline] to hot paths: kuramoto_step, k_wta, hd_encode, lif_tick - Fix federation: correctly swap unused FederationError (crdt.rs) and unused HashMap (consensus.rs) — both in opposite files from first guess https://claude.ai/code/session_019Lt11HYsW1265X7jB7haoC
The DRY refactor that extracted shared clustering code accidentally removed the HashMap import still needed by merge_scenes. https://claude.ai/code/session_01H1GkTK5z9ppVVQDQukjBsY
Built from commit cff4349 Platforms updated: - linux-x64-gnu - linux-arm64-gnu - darwin-x64 - darwin-arm64 - win32-x64-msvc 🤖 Generated by GitHub Actions
…ross-domain transfer Performance optimizations (net -134 lines): - BinaryHeap kNN: O(n log k) vs O(n log n) full sort in SpatialIndex - Zero-clone behavior tree tick via pointer-based borrow splitting - VecDeque percept buffer for O(1) front eviction - HashSet assigned_robots for O(1) membership checks - Shared clustering module eliminates 3 duplicate implementations Correctness fixes: - UntilFail decorator 10k iteration guard prevents infinite loops - OccupancyGrid bounds-checked get() returns Option<f32> - Pipeline position_history capped at 1000 entries - Skill learning gracefully handles empty demonstrations - Anomaly type gets Serialize/Deserialize derives Dead code removal: - Remove unused TrajectoryPoint struct - Remove unused tracing and rand dependencies Domain expansion integration (behind `domain-expansion` feature flag): - RoboticsDomain implements domain::Domain trait with 5 task categories: PointCloudClustering, ObstacleAvoidance, SceneGraphConstruction, SkillSequencing, SwarmFormation - 64-dim embedding space compatible with planning/orchestration/synthesis - Reference solutions, difficulty scaling, cross-domain transfer tests - Enables Meta Thompson Sampling transfer between robotics and existing domains (Rust synthesis, structured planning, tool orchestration) All 257 tests pass (231 unit + 25 integration + 1 doc-test). https://claude.ai/code/session_01H1GkTK5z9ppVVQDQukjBsY
…ical Implements Phase 1 of the EXO-AI × domain-expansion integration plan: register EXO classical operations as first-class transfer-learning domains so Thompson Sampling can discover optimal retrieval/traversal strategies. New: crates/exo-backend-classical/src/domain_bridge.rs ExoRetrievalDomain (implements Domain trait) - Vector similarity search as a 3-arm bandit: exact / approximate / beam_rerank - Tasks parameterized by dim (64-1024), k (3-50), noise (0-0.5) - Evaluation: correctness = Recall@K, efficiency = inverse-latency, elegance = k-precision - reference_solution: selects optimal arm based on dim+noise+k ExoGraphDomain (implements Domain trait) - Hypergraph traversal as a 3-arm bandit: bfs / approx / hierarchical - Tasks parameterized by n_entities (50-1000), max_hops (2-6), min_coverage (5-100) - Evaluation: correctness = coverage ratio, efficiency = hops saved, elegance = headroom - reference_solution: hierarchical for large graphs, approx for medium Aligned 64-dim embeddings (dims 5/6/7 = strategy one-hot in both domains) enables meaningful cross-domain transfer priors: "approximate wins on high-dim noisy retrieval" → "approx expansion wins on large sparse graphs" ExoTransferAdapter - Wraps DomainExpansionEngine, registers both EXO domains - warmup(N): trains both domains N cycles via evaluate_and_record - transfer_ret_to_graph(N): initiate_transfer then measure acceleration - All 8 domain_bridge unit tests pass + doctest compiles https://claude.ai/code/session_019Lt11HYsW1265X7jB7haoC
Three-tier value framework: - Tier 1 (practical): Agent memory, drift detection, distillation, retrieval - Tier 2 (if works): Conservative vs aggressive compression paths - Tier 3 (exotic): Semantic nervous system, swarm memory, web archaeology Conservative claims: - PiQ3 quantization: 10.7x (validated) - SimHash dedup: 3-5x on news, 1.5-2x diverse (validated) - HNSW: indexing, not compression (clarified) - Attractor distillation: 100x (hypothesis, requires validation) Use case prioritization table with value/risk/fit scoring. Failure modes: edge case destruction, HNSW complexity, temporal hallucination, provenance loss. Acceptance test: 3 monthly crawls, measure recall@10 >= 0.90 with >= 10x storage reduction before claiming aggressive ratios. Cost estimates: $150/mo conservative, $75/mo aggressive. Co-Authored-By: claude-flow <ruv@ruv.net>
Built from commit 3cd3fb5 Platforms updated: - linux-x64-gnu - linux-arm64-gnu - darwin-x64 - darwin-arm64 - win32-x64-msvc 🤖 Generated by GitHub Actions
Fixes per review feedback: 1. Crawl ID hygiene: - Changed all CC-MAIN-2026-10 references to CC-MAIN-2026-08 (latest public) - Acceptance test uses CC-MAIN-2026-06, 07, 08 (all publicly available) 2. Memorystore cost correction: - $8/mo → $5-200/mo with footnote - Notes ~$160/mo for 8 GiB Basic tier (actual Google pricing) - Offers disk-backed SQLite as $5-50/mo alternative 3. Cloud Run costs now usage-dependent: - Split by workload type: ingest ($20-50), retrieval ($100-200), backfill - Total estimates: $160-340/mo (disk cache), $230-480/mo (Memorystore) - Optimization options table with trade-offs 4. Tightened acceptance test: - Exact dataset: 1M pages × 3 crawls - Required measurements table: Recall@10, nDCG@10, storage, p95/p99, provenance - Pass criteria: all targets met simultaneously 5. Added mandatory exemplar retention rule (§9.0): - At least one raw exemplar per cluster - At least one provenance anchor per cluster - Preserve high-novelty outliers - Never merge without preserving lineage edges 6. Updated decision summary to engineering language: - Phase 1 scope explicitly limited to validated techniques - Research scope marked experimental pending benchmark gates - Acceptance gate with specific crawl IDs and metrics Co-Authored-By: claude-flow <ruv@ruv.net>
Built from commit 68c69a0 Platforms updated: - linux-x64-gnu - linux-arm64-gnu - darwin-x64 - darwin-arm64 - win32-x64-msvc 🤖 Generated by GitHub Actions
…DR-115) Implements tier-aware product quantization for embedding compression: - 3-bit (CentroidMerged): 8.68x compression, 99.05% recall - 4-bit (DeltaCompressed): 6.83x compression, 99.78% recall - 2-bit (Archived): 11.91x compression, 95.43% recall Key changes: - Add quantization.rs with PiQQuantizer and QuantizedEmbedding types - Integrate quantization into web_ingest.rs Phase 5 - Add quantized_embedding field to WebMemory struct - Update ADR-115 with POC validation results Throughput: 97K-134K embeddings/sec on Apple Silicon Co-Authored-By: claude-flow <ruv@ruv.net>
- Add web_store and crawl_adapter fields to AppState (types.rs) - Initialize persistent adapter and web store in create_router (routes.rs) - Update crawl/discover endpoint to use persistent adapter - Update crawl/stats endpoint to include WebMemoryStore metrics - Stats now show tier distribution (full/delta/centroid/archived) This enables persistent stats accumulation across requests and prepares for production Common Crawl ingestion per ADR-115. Co-Authored-By: claude-flow <ruv@ruv.net>
- Add CdxCacheEntry struct with TTL (24h expiration) - Add cdx_cache DashMap to CommonCrawlAdapter - Cache CDX query results before URL filtering - Track cache hits/misses in CommonCrawlStats - Expose cache stats in /v1/pipeline/crawl/stats endpoint - Calculate and display cache hit rate percentage This eliminates redundant CDX API calls when querying the same domain pattern multiple times, reducing latency and API load. Co-Authored-By: claude-flow <ruv@ruv.net>
Common Crawl CDX API returns length and offset as strings, not integers. Add custom deserialize_string_to_u64 function to handle the type conversion. Co-Authored-By: claude-flow <ruv@ruv.net>
- Increase request timeout to 120s for slow CDX responses - Add connect_timeout (30s) and pool_idle_timeout (90s) - Disable default MIME/status filters for simpler queries - Update default crawl index to CC-MAIN-2026-08 - Use expect() instead of unwrap_or_default() for clearer errors Co-Authored-By: claude-flow <ruv@ruv.net>
- Add /v1/pipeline/crawl/test endpoint for diagnosing CDX issues - Add tracing for CDX query URLs and errors - Tests connectivity to Common Crawl index API Co-Authored-By: claude-flow <ruv@ruv.net>
Common Crawl servers don't send proper TLS close_notify, causing rustls to error. Switch to native-tls which is more lenient. - Change reqwest feature from rustls-tls to native-tls - Add openssl to build dependencies - Add libssl3 to runtime image Co-Authored-By: claude-flow <ruv@ruv.net>
…n Crawl Common Crawl CDX servers have issues with HTTP/2 and connection reuse: - Force HTTP/1.1 with http1_only() to avoid protocol issues - Disable connection pooling (pool_max_idle_per_host=0) since CC closes connections - Add tcp_nodelay for lower latency
The diagnostic endpoint was using reqwest::get() which creates a new client with default settings, potentially using rustls instead of our configured native-tls client. Now uses adapter.test_connectivity() which uses the properly configured HTTP client.
Compare Common Crawl connectivity against httpbin.org to determine if the issue is Cloud Run networking or specifically Common Crawl.
The discover endpoint was calling query_cdx twice: 1. Once explicitly to get cdx_records_found 2. Again inside discover_domain Due to URL deduplication in query_cdx, the second call returned 0 records. Fixed by adding discover_from_records() which accepts pre-fetched CDX records.
Common Crawl CDX servers are flaky and sometimes return incomplete responses. Added 3-attempt retry with exponential backoff (1s, 2s) for both CDX queries and connectivity tests.
Test Internet Archive CDX, data.commoncrawl.org, and httpbin.org to diagnose if the issue is specific to index.commoncrawl.org.
Try adding HTTP headers that might help with server compatibility: - Accept: application/json - Connection: close (avoid keep-alive issues)
When the CDX API at index.commoncrawl.org is unreachable from Cloud Run, fall back to pre-computed sample CDX records for demonstration purposes. This allows testing the full pipeline (WARC fetch, extraction, injection) while the CDX connectivity issue is being investigated.
…wasm Security: - Fix #256: Add sanitizeShellArg() to MCP workers_create handler preventing shell command injection via name/preset/triggers params Bug fixes: - Fix #257: Add fallback parser in sona-wrapper.js for Rust debug format strings from SonaEngine.getStats() - Fix #258: Add force parameter to BackgroundLoop::run_cycle() so forceLearn() bypasses 100-trajectory minimum requirement Features: - Fix #254: Build and publish @ruvector/mincut-wasm@0.1.0 to npm - Add Wayback Machine fallback for Common Crawl CDX API Published: - @ruvector/mincut-wasm@0.1.0 - ruvector@0.2.13 Co-Authored-By: claude-flow <ruv@ruv.net>
Merging with admin override - x86_64-apple-darwin CI failure is infrastructure issue (macos-13-us-default not supported), not code issue. All other 11 platform builds pass.
Built from commit 5c4c97d Platforms updated: - linux-x64-gnu - linux-arm64-gnu - darwin-x64 - darwin-arm64 - win32-x64-msvc 🤖 Generated by GitHub Actions
- Replace f64 ln() calls with integer-based geometric distribution - Add wasm_random_u64() to avoid f64 intermediate values - Add wasm_ln() approximation (unused but available) - Bump version to 2.0.1, published to npm Also adds README for rvagent-wasm package. Co-Authored-By: claude-flow <ruv@ruv.net>
Built from commit 084954f Platforms updated: - linux-x64-gnu - linux-arm64-gnu - darwin-x64 - darwin-arm64 - win32-x64-msvc 🤖 Generated by GitHub Actions
HNSW fix (ruvllm-wasm v2.0.2): - Fixed panic at 12+ patterns caused by entry_point referencing non-existent index before pattern was pushed to array - Added bounds checking in search_layer() as defensive measure ONNX routing fix (ruvector v0.2.14): - Fixed IntelligenceEngine.route() using sync embed() instead of async embedAsync(), causing fallback to hash embeddings - Route now correctly uses ONNX 384-dim semantic embeddings π.ruv.io hooks integration: - Added SessionStart hook to sync LoRA weights from π.ruv.io - Added Stop hook to share session summary - Added PostToolUse[Task] hook to share successful completions - Generated Pi key for authentication Co-Authored-By: claude-flow <ruv@ruv.net>
The WASM build was panicking in Node.js because std::time::Instant is not supported on wasm32-unknown-unknown target. This fix: - Adds time_compat module with PortableInstant/PortableTimestamp - Uses monotonic counter in WASM mode (sufficient for ordering/stats) - Uses std::time::Instant on native platforms (accurate timing) - Updates algorithm, canonical, certificate, optimization, subpolynomial modules The fix uses conditional compilation via the existing `wasm` feature flag. Closes #267 Co-Authored-By: claude-flow <ruv@ruv.net>
Update Claude agent definitions, streamline statusline helper, improve hook handler routing, and fix native worker compatibility. Co-Authored-By: claude-flow <ruv@ruv.net>
…port - Bump version 0.1.0 → 0.2.0 in Cargo.toml and test_version_string - Add CHANGELOG.md with 0.1.0 history and 0.2.0 changes - Update README: correct package name (@ruvector/rvagent-wasm, not rvagent-wasm) - Update README: Node.js target docs, JsModelProvider + addMcpTools examples (ADR-129) - Update README: ruflo/@claude-flow/cli >=3.10.4 compatibility note - Add .github/workflows/publish-rvagent-wasm.yml for one-shot npm publish via CI No Rust logic changes. All ADR-129 gap APIs (JsModelProvider, set_model_provider, addMcpTools, get_state, get_todos, reset, WasmGallery full surface) were already implemented in 0.1.0. Gaps are purely ruflo TypeScript wiring issues. Co-Authored-By: RuFlo <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
@ruvector/rvagent-wasmfrom 0.1.0 to 0.2.0CHANGELOG.mdwith full historyJsModelProvider+addMcpToolswiring patterns@claude-flow/cli >= 3.10.4compatibility note and ADR-129 reference.github/workflows/publish-rvagent-wasm.ymlfor one-shot npm publish via CINo Rust changes. All ADR-129 gap APIs were already implemented in 0.1.0:
JsModelProvider+set_model_provider(Gap 1 wiring — ruflo TS issue, not WASM)WasmRvfBuilder.addMcpTools()(Gap 2 — already exported, ruflo just never calls it)get_state,get_todos,reset(Gap 3 — already exported)WasmGallerysurface (Gap 4 — already exported)Publish
After merge to main, trigger
publish-rvagent-wasmworkflow withversion=0.2.0.The workflow uses
secrets.NPM_TOKEN(same token used bypublish-all.yml).Test plan
cargo test— 61 tests passwasm-pack build --target nodejs --release— builds successfully (~543 KB WASM)publish-rvagent-wasmworkflow to publish to npmnpm view @ruvector/rvagent-wasm versionreturns0.2.0@ruvector/rvagent-wasmin ruflo'sv3/@claude-flow/cli/package.json(separate PR)🤖 Generated with RuFlo