ruvector/docs
ruv 4c6da3b30d fix(context): make the index root private and enforce it
Four rounds of security review kept finding the same shape: a sensitive
thing placed under a NAME in the attacker-writable root, defended by a
check on that name, and the next round swapped the next name. The scratch
name moved inside a private staging directory -- and then the staging
directory was itself a name in the root, so it was swappable too. The
review demonstrated 274 victim rows readable outside the root after
erase_scope reported success.

There is no fixed point on that path, because every component under the
root is re-resolved on every syscall and this crate holds none of them by
descriptor. Two things terminate it: descriptor-anchored I/O, which needs
an fd- or directory-relative open in the vector engine and is therefore an
engine-level change, or removing the hostile directory from the threat
model. This takes the second.

It also settles a finding that made the rest academic: under a normal umask
shards were published 0644 inside a 0755 root, so a different-uid attacker
could read every tenant's vectors with no exploit at all. The staging
directory was protecting a shard for the milliseconds it was being built
and then publishing it world-readable.

The root is now created 0700 by mkdir itself, shards and the lock are
created 0600, and open refuses a root that is group- or other-accessible,
reporting the offending mode without the path. An existing root is
inspected and never modified, so an operator's deliberate permissions are
reported rather than silently widened or narrowed. Observed on disk under
both umask 022 and umask 000: root 0700, lock 0600, shard 0600, staging
0700.

The staging directory, the inode identity check, the lone-regular-file
requirement and the reserved-name sweep are all kept, but they are now
defence in depth against operator error rather than the boundary itself,
and their docs say so. The nlink documentation is corrected in particular:
a link count of one means only that no second name existed at the instant
of the lstat, not that the file is this index's, and the private root
rather than that check is what prevents a second name.

An attacker running as the same uid remains conceded, and content forgery
remains out of scope for want of a MAC over stored vectors. Both are stated
in the crate docs, the tests, and ADR-334.

Note for reviewers: tempfile::tempdir() creates 0755, so the new check
refused every existing test root and the suite now builds its roots at
0700 explicitly. That default is exactly the class of mistake that produced
the world-readable shards.

Co-Authored-By: claude-flow <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_016QSCkKnxDjqU49NVVpWMK5
2026-08-22 18:21:20 -04:00
..
adr fix(context): make the index root private and enforce it 2026-08-22 18:21:20 -04:00
analysis fix(brain): defer sparsifier build on startup for large graphs 2026-03-24 12:29:52 +00:00
api fix: SONA zero-vector bug, RVF wasm persistence, metadata safety, doc gaps (#708) 2026-07-17 13:34:16 -04:00
architecture feat: ADR-280/281/282 — durable RVF metadata, role-aware embeddings, nightly research quality gate (#774) 2026-08-03 14:13:37 -03:00
benchmarks fix(brain): defer sparsifier build on startup for large graphs 2026-03-24 12:29:52 +00:00
cloud-architecture fix(brain): defer sparsifier build on startup for large graphs 2026-03-24 12:29:52 +00:00
cnn feat(demo): add Self-Learning tab with 6 interactive training demos 2026-03-11 19:31:23 -04:00
code-reviews docs: reorganize into subfolders 2026-01-21 23:43:50 -05:00
dag docs(dag): add comprehensive Neural DAG Learning implementation plan 2025-12-29 22:15:55 +00:00
decisions feat(benchmark): SOTA benchmark suite — 5 runners, 11 SOTA claims, Darwin/MetaHarness integration (ADR-265/266/267) (#596) 2026-06-21 22:53:56 -04:00
development feat(micro-hnsw-wasm): Add Neuromorphic HNSW v2.3 with SNN Integration (#40) 2025-12-01 22:30:15 -05:00
evidence feat(sonic_ct): acoustic digital human workbench — Rust/WASM USCT + R3F UI (#595) 2026-06-22 09:54:22 -04:00
examples fix(security): eliminate Rust and npm dependency advisories (#739) 2026-07-28 00:07:41 -04:00
gnn fix(brain): defer sparsifier build on startup for large graphs 2026-03-24 12:29:52 +00:00
guides fix: SONA zero-vector bug, RVF wasm persistence, metadata safety, doc gaps (#708) 2026-07-17 13:34:16 -04:00
hailo feat(ruvector-hailo): NPU embedding backend + multi-Pi cluster (ADRs 167-170) (#413) 2026-05-04 08:30:40 -04:00
hnsw fix(brain): defer sparsifier build on startup for large graphs 2026-03-24 12:29:52 +00:00
hooks feat(cli): Implement full hooks system in Rust CLI 2025-12-27 01:08:36 +00:00
implementation fix(brain): defer sparsifier build on startup for large graphs 2026-03-24 12:29:52 +00:00
integration fix(brain): defer sparsifier build on startup for large graphs 2026-03-24 12:29:52 +00:00
nervous-system docs: reorganize into subfolders 2026-01-21 23:43:50 -05:00
optimization fix(brain): defer sparsifier build on startup for large graphs 2026-03-24 12:29:52 +00:00
plans BET 5 (SepRAG #534): PQ/IVFADC within-list pruning vs tuned IVF nprobe — scale-gated WIN (ADR-206) (#542) 2026-06-17 22:48:32 -04:00
postgres fix(brain): defer sparsifier build on startup for large graphs 2026-03-24 12:29:52 +00:00
project-phases Clean up repository structure and organize documentation 2025-11-20 19:50:03 +00:00
publishing fix(brain): defer sparsifier build on startup for large graphs 2026-03-24 12:29:52 +00:00
releases feat: ADR-280/281/282 — durable RVF metadata, role-aware embeddings, nightly research quality gate (#774) 2026-08-03 14:13:37 -03:00
research docs(adr): Wave-4 ADRs — AI4AI recursive-improvement bench, schema-resource cache, correlation-aware memory arbitration, VoI routing (PIR) 2026-08-22 09:39:17 -04:00
reviews perf(ruvllm): optimize MoE routing with buffer reuse and optional metrics 2026-03-12 23:27:00 -04:00
ruvllm docs: reorganize into subfolders 2026-01-21 23:43:50 -05:00
rvagent feat(rvagent): Hermes-class harness architecture — research, ADRs 273-279, harness repair + review fixes (#752) 2026-08-02 12:39:59 -03:00
rvforge docs(rvforge): host the illustrated walkthrough on GitHub Pages (#799) 2026-08-05 10:39:44 -03:00
sdk docs(sdk): add deep planning review for ruvector Python SDK 2026-04-25 20:28:54 -04:00
security feat(rvAgent): Complete DeepAgents Rust Conversion (ADR-093 → ADR-103) (#262) 2026-03-16 09:52:32 -04:00
sonic-ct feat(sonic_ct): acoustic digital human workbench — Rust/WASM USCT + R3F UI (#595) 2026-06-22 09:54:22 -04:00
sparse-inference feat: Add PowerInfer-style sparse inference engine with precision lanes (#106) 2026-01-04 23:40:31 -05:00
sql feat(postgres): Add ruvector-postgres extension with SIMD optimizations (#42) 2025-12-02 09:55:07 -05:00
testing Clean up repository structure and organize documentation 2025-11-20 19:50:03 +00:00
training fix(brain): defer sparsifier build on startup for large graphs 2026-03-24 12:29:52 +00:00
.gitkeep Clean up repository structure and organize documentation 2025-11-20 19:50:03 +00:00
.nojekyll fix: add .nojekyll to disable Jekyll processing 2026-03-11 17:53:19 -04:00
agi-container.md feat(rvAgent): Complete DeepAgents Rust Conversion (ADR-093 → ADR-103) (#262) 2026-03-16 09:52:32 -04:00
C2-shell-execution-hardening.md feat(rvAgent): Complete DeepAgents Rust Conversion (ADR-093 → ADR-103) (#262) 2026-03-16 09:52:32 -04:00
C8_RESULT_VALIDATION_IMPLEMENTATION.md feat(rvAgent): Complete DeepAgents Rust Conversion (ADR-093 → ADR-103) (#262) 2026-03-16 09:52:32 -04:00
consciousness-api.md feat(consciousness): SOTA IIT Φ, causal emergence, quantum collapse crate (ADR-131) 2026-03-31 16:36:25 -04:00
IMPLEMENTATION-C5.md feat(rvAgent): Complete DeepAgents Rust Conversion (ADR-093 → ADR-103) (#262) 2026-03-16 09:52:32 -04:00
index.html refactor: move CNN demo to docs/cnn/ for shorter URL 2026-03-11 17:52:13 -04:00
INDEX.md fix(brain): defer sparsifier build on startup for large graphs 2026-03-24 12:29:52 +00:00
METAHARNESS-ARCHITECTURE-SUMMARY.md feat(benchmark): SOTA benchmark suite — 5 runners, 11 SOTA claims, Darwin/MetaHarness integration (ADR-265/266/267) (#596) 2026-06-21 22:53:56 -04:00
metaharness-implementation-plan.md feat(benchmark): SOTA benchmark suite — 5 runners, 11 SOTA claims, Darwin/MetaHarness integration (ADR-265/266/267) (#596) 2026-06-21 22:53:56 -04:00
moe-routing-optimization-analysis.md perf(ruvllm): optimize MoE routing with buffer reuse and optional metrics 2026-03-12 23:27:00 -04:00
README.md fix(brain): defer sparsifier build on startup for large graphs 2026-03-24 12:29:52 +00:00
REPO_STRUCTURE.md fix(brain): defer sparsifier build on startup for large graphs 2026-03-24 12:29:52 +00:00
research-openfang.md Add OpenFang project research document 2026-02-26 14:14:58 +00:00

RuVector Documentation

Complete documentation for RuVector, the high-performance Rust vector database with global scale capabilities.

📚 Documentation Structure

docs/
├── adr/                    # Architecture Decision Records
├── analysis/               # Research & analysis docs
├── api/                    # API references (Rust, Node.js, Cypher)
├── architecture/           # System design docs
├── benchmarks/             # Performance benchmarks & results
├── cloud-architecture/     # Cloud deployment guides
├── code-reviews/           # Code review documentation
├── dag/                    # DAG implementation
├── development/            # Developer guides
├── examples/               # SQL examples
├── gnn/                    # GNN/Graph implementation
├── guides/                 # User guides & tutorials
├── hnsw/                   # HNSW index documentation
├── hooks/                  # Hooks system documentation
├── implementation/         # Implementation details & summaries
├── integration/            # Integration guides
├── nervous-system/         # Nervous system architecture
├── optimization/           # Performance optimization guides
├── plans/                  # Implementation plans
├── postgres/               # PostgreSQL extension docs
├── project-phases/         # Development phases
├── publishing/             # NPM publishing guides
├── research/               # Research documentation
├── ruvllm/                 # RuVLLM documentation
├── security/               # Security audits & reports
├── sparse-inference/       # Sparse inference docs
├── sql/                    # SQL examples
├── testing/                # Testing documentation
└── training/               # Training & LoRA docs

Getting Started

Architecture & Design

API Reference

Performance & Benchmarks

Security

Implementation

Specialized Topics

Development

Research

  • research/ - Research documentation
    • cognitive-frontier/ - Cognitive frontier research
    • gnn-v2/ - GNN v2 research
    • latent-space/ - HNSW & attention research
    • mincut/ - MinCut algorithm research

For New Users

  1. Start with Getting Started Guide
  2. Try the Basic Tutorial
  3. Review API Documentation

For Cloud Deployment

  1. Read Architecture Overview
  2. Follow Deployment Guide
  3. Apply Performance Optimizations

For Contributors

  1. Read Contributing Guidelines
  2. Review Architecture Decisions
  3. Check Migration Guide

For Performance Tuning

  1. Review Optimization Guide
  2. Run Benchmarks
  3. Check Analysis

📊 Documentation Status

Category Directory Status
Getting Started guides/ Complete
Architecture architecture/, adr/ Complete
API Reference api/ Complete
Performance benchmarks/, optimization/, analysis/ Complete
Security security/ Complete
Implementation implementation/, integration/ Complete
Development development/, testing/ Complete
Research research/ 📚 Ongoing

Total Documentation: 460+ documents across 60+ directories


🔗 External Resources


Last Updated: 2026-02-26 | Version: 2.0.4 (core) / 0.1.100 (npm) | Status: Production Ready