Commit graph

9 commits

Author SHA1 Message Date
rUv
53a567f957 docs: optimize 12 crate READMEs and add SONA learning loop diagram
Standardize all linked crate READMEs to match root README style:
plain-language taglines, comparison tables, key features tables.
Add SONA feedback loop diagram to root README intro.

Crates updated: ruvector-gnn, ruvector-core, ruvector-graph,
ruvector-graph-transformer, sona, ruvector-attention, ruvllm,
ruvector-solver, ruvector-replication, ruvector-postgres,
rvf-crypto, examples/dna.

Co-Authored-By: claude-flow <ruv@ruv.net>
2026-02-27 03:38:42 +00:00
rUv
d102bb87ab fix: apply cargo fmt across workspace and fix CI issues
- Run cargo fmt --all to fix formatting in 362 files across the entire workspace
- Add PGDG repository for PostgreSQL 17 in CI test-all-features and benchmark jobs
- Add missing rvf dependency crates to standalone Dockerfile for domain-expansion
- Add sona-learning and domain-expansion features to standalone Dockerfile build
- Create npu.rs stub for ruvector-sparse-inference (fixes rustfmt resolution error)

Co-Authored-By: claude-flow <ruv@ruv.net>
2026-02-21 20:56:38 +00:00
rUv
9304568753 fix: publish-readiness for 6 solver crates + npm package
- Remove duplicate workspace members (solver/solver-wasm/solver-node)
- Add ruvector-attn-mincut to workspace members
- Switch ruvector-solver and ruvector-solver-wasm to workspace version/metadata
- Add version pin on ruvector-solver dep for solver-wasm and solver-node
- Remove stale version pins in examples/dna and examples/prime-radiant
- Fix unused assignment and unused mut warnings in neumann.rs
- Remove publish = false from ruvector-profiler, add keywords/categories
- Bump @ruvector/rvf-solver to 0.1.4
- Add Publishing section to CLAUDE.md

Published to crates.io: ruvector-solver, ruvector-solver-wasm,
ruvector-solver-node, ruvector-coherence, ruvector-attn-mincut,
ruvector-profiler (all v2.0.3)
Published to npm: @ruvector/rvf-solver v0.1.4

Co-Authored-By: claude-flow <ruv@ruv.net>
2026-02-20 19:02:50 +00:00
Claude
5a7974610c
fix: implement remaining 4 audit findings for ruvector-solver
- Remove KahanAccumulator from forward_push hot paths, use plain Vec<f64>
  (halves working set from 16 to 8 bytes/element for cache efficiency)
- Standardize near-zero thresholds in bmssp.rs: replace hardcoded 1e-30
  with NEAR_ZERO_F64 = 1e-15 constant matching other solver modules
- Add f64→f32 overflow checks in neumann.rs and true_solver.rs
  SolverEngine::solve() before downcasting matrix/rhs values
- Add cfg-gated rayon parallelism for random walks in random_walk.rs
  with per-chunk RNG seeding and fold/reduce aggregation

All 171 tests pass. Downstream crates (wasm, node) compile clean.

https://claude.ai/code/session_01TiqLbr2DaNAntQHaVeLfiR
2026-02-20 12:49:58 +00:00
Claude
b19d050619
fix: implement security audit findings for ruvector-solver (25 fixes)
Address 25 findings from the security and performance audit across 10 files:

CRITICAL:
- neumann.rs: fix .max() → .min() tolerance bug with f32 precision floor
  to prevent requesting impossible accuracy from f32 internal computation

HIGH (security):
- forward_push.rs: replace debug_assert! with runtime validate_params()
  returning Result<(), SolverError> with proper ValidationError variants
- cg.rs: upgrade all debug_assert_eq! to assert_eq! in dot_product_f64,
  dot_f64, axpy, axpy_f64, apply_preconditioner
- bmssp.rs: upgrade debug_assert_eq! to assert_eq! in sparse_matmul
- router.rs: upgrade debug_assert_eq! to assert_eq! with descriptive message
- forward_push.rs, backward_push.rs: add MAX_GRAPH_NODES (100M) limit
  to prevent OOM denial-of-service on untrusted graph inputs

HIGH (speed):
- neumann.rs: deduplicate extract_diag_inv_f32 by extracting
  estimate_spectral_radius_with_diag helper, reusing D^{-1} across
  spectral check and Jacobi iteration
- bmssp.rs: pre-allocate ax_buf to eliminate redundant SpMV allocation
  in V-cycle outer loop

MODERATE (security):
- forward_push.rs: guard float-to-usize overflow with .min(usize::MAX as f64)
- random_walk.rs: use saturating_mul(10) to prevent integer overflow
- neumann.rs: add tracing::warn! for zero/near-zero diagonal entries

MODERATE (speed):
- true_solver.rs: pre-allocate JL entries with Vec::with_capacity
- true_solver.rs: hoist dense row accumulators outside loops in
  project_matrix and compute_reduced_matrix
- router.rs: use binary_search instead of linear .any() for symmetry check
- bmssp.rs: optimize row swap with split_at_mut + swap_with_slice

LOW:
- types.rs: sort_by_key → sort_unstable_by_key in from_coo_generic
- types.rs: upgrade debug_assert! to assert! for bounds checks
- simd.rs: add complete f64 SIMD path (spmv_simd_f64, spmv_avx2_f64,
  spmv_scalar_f64) with AVX2 intrinsics and tests
- true_solver.rs: document structural cloning limitation with future
  refactoring note

https://claude.ai/code/session_01TiqLbr2DaNAntQHaVeLfiR
2026-02-20 12:40:13 +00:00
Claude
c3e90d68a5
docs: Polish crate READMEs with badges, comparison tables, and collapsed tutorials
- ruvector-solver: Added comparison table vs dense solvers, tutorials
- ruvector-attn-mincut: Added softmax vs min-cut comparison, end-to-end tutorial
- ruvector-coherence: Added metrics summary table, evaluation pipeline tutorial
- ruvector-profiler: Added dimension table, benchmark tutorial with output structure
- Added sparse_matrix_store.rs RVF example

https://claude.ai/code/session_01TiqLbr2DaNAntQHaVeLfiR
2026-02-20 07:10:14 +00:00
Claude
08f57d5e84
docs: Add crate READMEs, AGI optimization review, and root README update
- ruvector-solver README with algorithm table, performance optimizations
- ruvector-attn-mincut README with min-cut gating architecture
- ruvector-coherence README with metrics and comparison docs
- ruvector-profiler README with profiling hooks documentation
- AGI sublinear optimization review (18-agi-sublinear-optimization.md)
- Root README updated with sublinear solver section
- Enhanced solver_witness RVF example

https://claude.ai/code/session_01TiqLbr2DaNAntQHaVeLfiR
2026-02-20 07:07:37 +00:00
Claude
e011fa2c59
perf: Add zero-overhead SpMV and fused Neumann iteration kernel
Critical sublinear latency optimizations:
- CsrMatrix::spmv_unchecked: bounds-check-free SpMV inner loop
- CsrMatrix::fused_residual_norm_sq: computes r=b-Ax and ||r||^2
  in a single memory pass (3 traversals -> 1 per iteration)
- Neumann solver: uses fused kernel + 4-wide unrolled Jacobi update
- CsrMatrix<f64>::spmv_unchecked: matching f64 variant
- Agent refinements to attn-mincut gating and mincut modules

All 177 tests pass.

https://claude.ai/code/session_01TiqLbr2DaNAntQHaVeLfiR
2026-02-20 06:58:03 +00:00
Claude
5dcafd2dbc
feat: Implement complete sublinear-time sparse solver crate
Add ruvector-solver with 8 iterative solver algorithms:
- Jacobi-preconditioned Neumann series for diagonally dominant systems
- Conjugate Gradient (CG) for symmetric positive definite systems
- Forward/Backward Push for Personalized PageRank
- Hybrid Random Walk with Monte Carlo sampling
- TRUE solver with JL projection and spectral sparsification
- BMSSP multigrid preconditioner for ill-conditioned systems
- Jacobi and Gauss-Seidel iterative solvers

Includes intelligent algorithm router (SolverRouter/SolverOrchestrator),
WASM bindings (ruvector-solver-wasm), Node.js NAPI bindings
(ruvector-solver-node), Criterion benchmark suite, comprehensive
validation, audit logging, and 143 passing tests.

https://claude.ai/code/session_01TiqLbr2DaNAntQHaVeLfiR
2026-02-20 06:49:14 +00:00