- Check this.data exists before accessing properties
- Initialize trajectories array if missing
- Add try/catch around engine and save operations
- Null-check trajectory objects in filter
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add defensive check for this.data.stats
- Initialize with defaults if missing
- Fixes "Cannot read properties of undefined (reading 'last_session')"
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
New features in this release:
- 13 new CLI hooks commands (AST, Diff, Coverage, Graph, Security, RAG)
- 16 new MCP tools for Claude Code integration
- Enhanced hooks init with v2.0 templates
- 9-phase pretrain with attention/GNN capabilities
- Comprehensive CLAUDE.md documentation generation
🤖 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>
- 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>
Fixes PreToolUse:Read hook error by supporting --silent flag
for Read/Glob/Task hooks that should not produce output.
Published ruvector@0.1.54
🤖 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>
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>
- Added hooks feature summary near top of README.md
- Created comprehensive HOOKS.md documentation
- Links to detailed docs for pretrain, build-agents, verify, etc.
- Intelligence now saves to .ruvector/intelligence.json in project dir
- Falls back to ~/.ruvector/ only if no project context found
- Prefers project-local when .ruvector/ or .claude/ exists
- Fixes verify showing 'will be created' after pretrain
- Added CLAUDE.md creation to 'hooks init' command
- Includes complete hooks documentation and CLI commands
- Added --no-claude-md flag to skip CLAUDE.md creation
- Respects existing CLAUDE.md unless --force is used
- Fixes $schema to correct URL
- Removes invalid Start/End hooks (renamed to SessionStart/Stop)
- Preserves other existing settings when merging
Bumps to v0.1.43
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add chrono dependency to Cargo.toml
- Replace pgrx::TimestampWithTimeZone with chrono::Utc strings
- Fix temporary reference error in analysis.rs
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Format fixes based on Claude Code validation:
- matcher: string regex (e.g., "Edit|Write|MultiEdit") not object
- SessionStart/Stop: require { hooks: [...] } wrapper
Bumps to v0.1.42
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Updates hooks to use new object-based format:
- matcher: { tools: [...] } instead of string
- hooks: [{ type: "command", command: "..." }] instead of string array
Required by Claude Code's updated hooks schema.
Bumps to v0.1.41
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The hooks init command now generates settings.json with
npx ruvector hooks instead of ruvector hooks, ensuring
commands work without global installation.
Bumps to v0.1.40
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Updates all hook commands to use npx ruvector instead of ruvector
for portability (no global install required).
Updated files:
- .claude/settings.json - all hooks now use npx ruvector
- CLAUDE.md - documentation updated to npx ruvector
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Comprehensive documentation for hooks including:
- init, session-start, session-end
- pre-edit, post-edit with success/error recording
- pre-command, post-command with risk analysis
- route for agent recommendations
- remember/recall for vector memory
- suggest-context for relevant context
- stats for intelligence statistics
- swarm-recommend for task routing
- Configuration example for .claude/settings.json
- Explanation of how self-learning works
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Prevents wasm-pack from regenerating .gitignore files that block npm
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Remove wasm-pack generated .gitignore files that were blocking
npm from including the pkg/ and pkg-node/ WASM binaries.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Feature comparison table showing:
- Performance (WASM advantage)
- Unique features (critical path, attention, persistence)
- TypeScript support
- Bundle sizes
Plus 'When to Use What' guide for choosing the right library
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Quote-style hook question
- 3-line code snippet showing value immediately
- Box-style ASCII diagram (more professional)
- Question/Method/Answer table format
- Expanded use cases with examples
- Added Game AI and Workflow Engines
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Lead with the problem, not technical jargon
- Visual task dependency diagram
- Show what each method answers
- Real-world use cases with emojis
- Before/after comparison table
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Easy introduction to DAGs and rudag
- Features and benefits overview
- Detailed use cases (SQL optimizer, task scheduler, build system, ETL)
- Integration examples (Express, React, D3.js, Bull, GraphQL, RxJS)
- CLI documentation
- Full API reference
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
SECURITY FIXES (HIGH):
- Path traversal prevention in CLI (validateFilePath)
- Path traversal prevention in FileDagStorage (ensureWithinBase)
- Input validation for all public APIs (isValidDagId, isValidStorageId)
- Type guards for WASM output (isCriticalPath) to prevent prototype pollution
- Extension restrictions (.dag, .json only) in CLI
MEMORY LEAK FIXES (HIGH):
- Static methods now properly close owned storage connections
- WASM cleanup on initialization failures
- Cache invalidation on dispose()
PERFORMANCE OPTIMIZATIONS:
- Single-transaction IndexedDB saves (atomic read-modify-write)
- Batch save API for bulk operations (saveBatch)
- Result caching for topoSort and criticalPath
- Lazy module loading in CLI for faster startup
OTHER IMPROVEMENTS:
- onblocked/onversionchange handlers for IndexedDB
- Background save error handler (onSaveError option)
- Comprehensive input validation with clear error messages
- Convert sync to async file operations in Node.js
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>