Backtesting:
- Single-pass metrics calculation (was 10+ passes)
- Inline stats: mean, variance, win/loss counts computed together
- Combined drawdown metrics in one pass
- Removed redundant method calls
Risk Management:
- Ring buffers for trade history (O(1) vs O(n) shift/slice)
- Running sum for volatility average (O(1) vs O(n) reduce)
- Incremental loss count tracking
Reduces iteration overhead by ~5-10x for large datasets.
Backtesting:
- Single-pass metrics calculation (was 10+ passes)
- Inline stats: mean, variance, win/loss counts computed together
- Combined drawdown metrics in one pass
- Removed redundant method calls
Risk Management:
- Ring buffers for trade history (O(1) vs O(n) shift/slice)
- Running sum for volatility average (O(1) vs O(n) reduce)
- Incremental loss count tracking
Reduces iteration overhead by ~5-10x for large datasets.
- Added SIMD badge and documentation
- Added ParallelEmbedder API reference and usage examples
- Updated performance benchmarks with parallel vs sequential comparison
- Added browser compatibility table
- Added changelog section
- Added batch processing use case example
- Updated build instructions with SIMD flags
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Added SIMD badge and documentation
- Added ParallelEmbedder API reference and usage examples
- Updated performance benchmarks with parallel vs sequential comparison
- Added browser compatibility table
- Added changelog section
- Added batch processing use case example
- Updated build instructions with SIMD flags
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- ParallelEmbedder class using Node.js worker_threads
- Distributes batches across multiple CPU cores
- Benchmark results: 3.6-3.8x speedup on batch processing
- Per-text latency drops from ~390ms to ~103ms with 4 workers
- Published v0.1.2 to npm and crates.io
Usage:
import { ParallelEmbedder } from 'ruvector-onnx-embeddings-wasm/parallel';
const embedder = new ParallelEmbedder({ numWorkers: 4 });
await embedder.init();
const embeddings = await embedder.embedBatch(texts);
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- ParallelEmbedder class using Node.js worker_threads
- Distributes batches across multiple CPU cores
- Benchmark results: 3.6-3.8x speedup on batch processing
- Per-text latency drops from ~390ms to ~103ms with 4 workers
- Published v0.1.2 to npm and crates.io
Usage:
import { ParallelEmbedder } from 'ruvector-onnx-embeddings-wasm/parallel';
const embedder = new ParallelEmbedder({ numWorkers: 4 });
await embedder.init();
const embeddings = await embedder.embedBatch(texts);
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Enable WASM SIMD128 instructions for vectorized operations
- Update simd_available() to properly detect SIMD at compile time
- SIMD build is 180KB smaller than non-SIMD (more compact instructions)
- Published v0.1.1 to both npm and crates.io
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Enable WASM SIMD128 instructions for vectorized operations
- Update simd_available() to properly detect SIMD at compile time
- SIMD build is 180KB smaller than non-SIMD (more compact instructions)
- Published v0.1.1 to both npm and crates.io
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Added npm and crates.io version badges
- WebAssembly and MIT license badges
- Quick start examples for Browser, Node.js, and Cloudflare Workers
- Complete API reference for WasmEmbedder, WasmEmbedderConfig
- Model comparison table with 6 HuggingFace models
- Performance benchmarks and use case examples
Published to npm as ruvector-onnx-embeddings-wasm@0.1.0
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Added npm and crates.io version badges
- WebAssembly and MIT license badges
- Quick start examples for Browser, Node.js, and Cloudflare Workers
- Complete API reference for WasmEmbedder, WasmEmbedderConfig
- Model comparison table with 6 HuggingFace models
- Performance benchmarks and use case examples
Published to npm as ruvector-onnx-embeddings-wasm@0.1.0
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- gnn-correlation-network.js: Added RollingStats class for O(1) incremental
updates and correlation caching with TTL to avoid redundant O(n²) calculations
- attention-regime-detection.js: Optimized matmul with cache-friendly i-k-j
loop order and added empty matrix guards
- quantum-portfolio-optimization.js: Added ComplexPool for object reuse to
reduce GC pressure, plus in-place operations (addInPlace, multiplyInPlace,
scaleInPlace) to avoid allocations in hot loops
- multi-agent-swarm.js: Added RingBuffer for O(1) bounded memory operations
and SignalPool for signal object reuse
- gnn-correlation-network.js: Added RollingStats class for O(1) incremental
updates and correlation caching with TTL to avoid redundant O(n²) calculations
- attention-regime-detection.js: Optimized matmul with cache-friendly i-k-j
loop order and added empty matrix guards
- quantum-portfolio-optimization.js: Added ComplexPool for object reuse to
reduce GC pressure, plus in-place operations (addInPlace, multiplyInPlace,
scaleInPlace) to avoid allocations in hot loops
- multi-agent-swarm.js: Added RingBuffer for O(1) bounded memory operations
and SignalPool for signal object reuse
New optional companion package using Tract for inference:
- Runs in browsers, Cloudflare Workers, Deno, edge environments
- Same API as native crate
- JavaScript bindings via wasm-bindgen
- Supports all pooling strategies (Mean, Cls, Max, etc.)
Uses Tract instead of ONNX Runtime for WASM compatibility.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
New optional companion package using Tract for inference:
- Runs in browsers, Cloudflare Workers, Deno, edge environments
- Same API as native crate
- JavaScript bindings via wasm-bindgen
- Supports all pooling strategies (Mean, Cls, Max, etc.)
Uses Tract instead of ONNX Runtime for WASM compatibility.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Changed invalid category "machine-learning" to "algorithms".
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Changed invalid category "machine-learning" to "algorithms".
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The download logic would immediately fail if model.onnx wasn't at the
repo root, never trying the onnx/ subfolder where most sentence-transformer
models store their ONNX files.
Now tries both locations:
1. Root: {repo}/model.onnx
2. Subfolder: {repo}/onnx/model.onnx
Also applies fallback logic to auxiliary files (tokenizer.json, config.json).
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The download logic would immediately fail if model.onnx wasn't at the
repo root, never trying the onnx/ subfolder where most sentence-transformer
models store their ONNX files.
Now tries both locations:
1. Root: {repo}/model.onnx
2. Subfolder: {repo}/onnx/model.onnx
Also applies fallback logic to auxiliary files (tokenizer.json, config.json).
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Key fixes across exotic neural-trader examples:
- reinforcement-learning-agent.js: Fixed broken backpropagation that only
updated output layer. Now stores activations and flows gradients through
all hidden layers properly.
- quantum-portfolio-optimization.js: Fixed QAOA mixer Hamiltonian that was
incorrectly accumulating all qubit operations. Now applies Rx rotations
sequentially per-qubit with proper normalization.
- hyperbolic-embeddings.js: Fixed Math.acosh/atanh domain errors and
implemented proper Riemannian gradient descent using expMap in Poincaré
ball model.
- multi-agent-swarm.js: Added division-by-zero guards for linear regression,
z-score calculation, and iterator type fixes. Added memory bounds.
- gnn-correlation-network.js: Added guards for betweenness normalization
(n<3), density (n<2), and clustering/degree calculations (n=0).
- attention-regime-detection.js: Added empty array handling for softmax and
matrix validation for transpose operations.
- atomic-arbitrage.js: Added guard for flash loan spread calculation.
Key fixes across exotic neural-trader examples:
- reinforcement-learning-agent.js: Fixed broken backpropagation that only
updated output layer. Now stores activations and flows gradients through
all hidden layers properly.
- quantum-portfolio-optimization.js: Fixed QAOA mixer Hamiltonian that was
incorrectly accumulating all qubit operations. Now applies Rx rotations
sequentially per-qubit with proper normalization.
- hyperbolic-embeddings.js: Fixed Math.acosh/atanh domain errors and
implemented proper Riemannian gradient descent using expMap in Poincaré
ball model.
- multi-agent-swarm.js: Added division-by-zero guards for linear regression,
z-score calculation, and iterator type fixes. Added memory bounds.
- gnn-correlation-network.js: Added guards for betweenness normalization
(n<3), density (n<2), and clustering/degree calculations (n=0).
- attention-regime-detection.js: Added empty array handling for softmax and
matrix validation for transpose operations.
- atomic-arbitrage.js: Added guard for flash loan spread calculation.
The Rust example files (learning_demo.rs, simd_distance_benchmark.rs)
were causing linker errors during pgrx tests because they use pgrx
functions without proper PostgreSQL library context.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The Rust example files (learning_demo.rs, simd_distance_benchmark.rs)
were causing linker errors during pgrx tests because they use pgrx
functions without proper PostgreSQL library context.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add setup.ps1: Auto-installs espup, espflash, and ESP32 toolchain
- Add build.ps1: Auto-detects toolchain paths, no hardcoded values
- Add flash.ps1: Auto-detects COM ports with interactive selection
- Add env.ps1: Sets up environment for current session
- Add monitor.ps1: Serial monitor with auto port detection
- Update CLI to use PowerShell scripts on Windows
- Improve COM port detection using System.IO.Ports
- Update README with improved Windows workflow
Fixes Windows-specific issues:
- No more hardcoded paths (C:\Users\ruv\...)
- Dynamic libclang and Python path resolution
- Auto-detection of ESP toolchain location
- Better error handling and user feedback
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Run cargo fmt across all crates (468 files formatted)
- Add permissions for PR comments in benchmarks.yml
- Add continue-on-error for PR comment steps
- Remove Docker service from postgres-extension-ci (pgrx manages own postgres)
- Add permissions to postgres-extension-ci.yml
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add Option C: npx CLI quickstart section with all commands
- Add npm package link to Crate & Package Links table
- Add esp32-flash flashable project reference
- Update Related section with npm and esp32-flash links
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Replace static version badge with dynamic crates.io badge
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add value proposition section (why RuvLLM ESP32)
- Document all 10 major features with technical details
- Add supported hardware comparison table (ESP32 variants)
- Add npx quickstart as primary installation method
- Document all serial commands with examples
- Add complete feature guide with code samples
- Include memory/performance benchmarks
- Add project structure documentation
- Document feature flags and library API usage
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>