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>
- Create npm/packages/rudag with TypeScript SDK
- WASM-accelerated DAG operations via ruvector-dag-wasm
- IndexedDB persistence for browser environments
- MemoryStorage fallback for Node.js
- CLI tool for DAG operations (rudag command)
- Restore patches/hnsw_rs for WASM builds
Features:
- DagOperator enum (SCAN, FILTER, PROJECT, JOIN, etc.)
- AttentionMechanism enum (TOPOLOGICAL, CRITICAL_PATH, UNIFORM)
- RuDag class with auto-save to IndexedDB
- BrowserDagManager for browser-specific management
- NodeDagManager with file-based persistence
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Brief section highlighting the self-learning query DAG with:
- Key benefits (automatic optimization, 50-80% latency reduction)
- Core features (7 attention mechanisms, SONA learning, MinCut control)
- Quick code example
- Link to full documentation
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add user-friendly introduction explaining:
- What the library does in plain language
- Who should use it (use cases table)
- Key benefits with concrete examples
- Simple "how it works" diagram
Keeps all technical details intact while making the project
more accessible to newcomers.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add README.md to patches/ explaining the critical hnsw_rs patch
- Run cargo fmt on ruvector-postgres to fix formatting issues
The patches/hnsw_rs directory is REQUIRED for builds as it provides
a WASM-compatible version of hnsw_rs (using rand 0.8 instead of 0.9).
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The benchmark workflow was failing because pgrx-pg-sys requires
PostgreSQL development headers. Added PostgreSQL 17 installation
and pgrx initialization to both the main benchmarks job and the
baseline comparison job.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Remove tests for PostgreSQL 14, 15, and 16 from CI workflows.
Only PostgreSQL 17 is now tested to simplify the CI matrix.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Adjusted command-failed metrics in patterns.json for better accuracy.
- Added new trajectories for failed commands and successful edits in trajectories.json.
- Refined hooks configuration in settings.json to streamline command execution.
- Enhanced documentation in CLAUDE.md and ruvector/README.md for self-learning hooks integration.
- Updated ruvector version to 0.1.38 and added publish script for ruvector-cli.
- Add pqcrypto-dilithium (v0.5) and pqcrypto-kyber (v0.8) as optional deps
- Update production-crypto feature to enable real PQ implementations
- ML-DSA-65: Uses Dilithium3 when production-crypto enabled
- ML-KEM-768: Uses Kyber768 when production-crypto enabled
- Update security_notice.rs with dynamic status based on feature flag
- Export check_crypto_security() from lib.rs for startup checks
- is_production_ready() returns true when feature enabled
Usage:
# Enable production post-quantum crypto
ruvector-dag = { version = "0.1", features = ["production-crypto"] }
# Check at startup
fn main() {
ruvector_dag::check_crypto_security();
}