Implements the three missing delete primitives on GraphDatabase.prototype,
unblocking the ruflo bridge from relying solely on the SQL fallback path.
**API additions:**
deleteNode(id, {cascade?}) → {deletedNode, deletedEdges}
deleteEdge(id) → {deleted}
deleteHyperedge(id) → {deleted}
cascade=true on deleteNode removes all incident hyperedges atomically
(no racy enumerate-then-delete required by callers).
**Rust changes:**
- ruvector-core/hypergraph: HypergraphIndex::remove_entity(cascade)
+ remove_hyperedge() with full bipartite-index + temporal-index cleanup
- ruvector-graph/graph: GraphDB::delete_hyperedge() + delete_hyperedges_by_node()
symmetric to create_hyperedge, propagates to GraphStorage when enabled
- ruvector-graph-node/lib: three new #[napi] async NAPI methods, each
propagating through HypergraphIndex → GraphDB → GraphStorage in order
- ruvector-graph-node/types: JsDeleteNodeOptions, JsDeleteNodeResult,
JsDeleteResult return types
**Versions:** workspace 2.2.1 → 2.2.2; @ruvector/graph-node 2.0.3 → 2.0.4
(platform optionalDependencies aligned to 2.0.4)
Co-Authored-By: claude-flow <ruv@ruv.net>
- 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>
- Remove async from &mut self methods in streaming.rs (NAPI limitation)
- Remove Debug derive from structs with Float32Array (not impl Debug)
- Remove Clone derive from string_enum types (conflicting implementations)
- Change Option<f32> to Option<f64> in JS types (NAPI doesn't support f32)
- Add f32/f64 conversions between JS layer and core Rust library
- Change avg_degree from f32 to f64 in JsGraphStats
These fixes allow the ruvector-graph-node crate to compile successfully.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Format all Rust code with cargo fmt
- Generate Cargo.lock for security audit
- Add build:wasm script to graph-wasm package.json
- Update npm/package-lock.json
The CI was failing due to:
1. Rust code formatting check failures
2. Missing Cargo.lock file for cargo audit
3. Missing build:wasm script expected by graph-ci.yml workflow
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Major new package implementing a distributed hypergraph database with:
## Core Components (crates/ruvector-graph/)
- Cypher-compatible query parser with lexer, AST, optimizer
- Query execution engine with SIMD optimization and parallel execution
- ACID transaction support with MVCC isolation levels
- Distributed consensus and federation layer
- Vector-graph hybrid queries for AI/RAG workloads
- Performance optimizations (100x faster than Neo4j target)
## Bindings
- WASM bindings (crates/ruvector-graph-wasm/)
- NAPI-RS Node.js bindings (crates/ruvector-graph-node/)
- NPM packages for both targets
## CLI Integration
- 8 new graph commands: create, query, shell, import, export, info, benchmark, serve
## CI/CD
- Updated build-native.yml for graph packages
- New graph-ci.yml for testing and benchmarks
- New graph-release.yml for automated publishing
## Data Generation
- OpenRouter/Kimi K2 integration (packages/graph-data-generator/)
- Agentic-synth benchmark suite integration
## Tests & Benchmarks
- 11 test files covering all components
- Criterion benchmarks for performance validation
- Neo4j compatibility test suite
## Architecture Highlights
- CSR graph layout for cache-friendly access
- SIMD-vectorized query operators
- Roaring bitmaps for label indexes
- Bloom filters for fast negative lookups
- Adaptive radix tree for property indexes
Note: This is a comprehensive implementation created by 15 parallel agents.
Some integration fixes may be needed to resolve cross-module dependencies.
Co-authored-by: Claude AI Swarm <swarm@claude.ai>