Skip to content

Commit 54a3b22

Browse files
committed
Hardening: Full Dynamic Kernel Transition (v0.2.0)
- Removed all static const-generics (D, MAX_RECORDS, MAX_NODES, MAX_EDGES) - Implemented dynamic heap-allocated pools for Record, Node, and Edge storage - Zero-Config: Model-agnostic dimension detection and locked-dimension runtime - Hardened WAL, Event Log, and Replication for dynamic resizing - V3 Self-describing Snapshot format with backward compatibility - Precision search and ingestion verified at 10k scale from Python - Updated README and Docs for the new Zero-Config architecture
1 parent 7af6cdf commit 54a3b22

45 files changed

Lines changed: 1874 additions & 3094 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

Cargo.lock

Lines changed: 7 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

README.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ Valori is a vector database built for **regulated industries** (healthcare, fina
2121

2222
**Valori's Solution:** We give you **cryptographic proof**. Bit-identical state hash before and after crash. Zero trust required.
2323

24+
**New in v0.2.0:** **Zero-Config Architecture**. No more hardcoded dimensions or record limits. The kernel adapts to your data on the fly.
25+
2426
---
2527

2628
## 🛡️ Crash Recovery: Proven, Not Claimed
@@ -182,8 +184,9 @@ Valori uses **Q16.16 Fixed-Point Arithmetic** instead of standard `f32` floats.
182184

183185
### 5. Crash Recovery & Durability
184186
- **WAL & Event Log**: Every operation is synced to disk via length-prefixed logs
185-
- **Batch Ingestion**: Atomic commits for high-throughput bulk inserts
186-
- **Snapshots**: Instant checkpointing and restoration
187+
- **Zero-Config Persistence**: WAL and Snapshots are self-describing, restoring state without manual config
188+
- **Batch Ingestion**: Atomic commits for high-throughput bulk inserts (10k+ vectors/sec)
189+
- **Dynamic Snapshots**: Instant checkpointing that scales to millions of records
187190

188191
### 6. Flexible Deployment
189192
- **Embedded (Python FFI):** Link directly into Python for microsecond latency

docs/core-concepts.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,10 @@ This hybrid approach allows AI agents to "remember" in two ways:
2222

2323
### 1. The Record (Vector)
2424
The fundamental atomic unit of memory.
25-
* **What it is**: A dense fixed-point vector (e.g., 16-dim or 768-dim) representing meaning.
26-
* **Storage**: Stored in a contiguous memory pool for O(1) access.
25+
* **What it is**: A dense fixed-point vector (e.g., 16-dim or 1536-dim) representing meaning.
26+
* **Storage**: Stored in a heap-allocated, dynamic memory pool that grows on demand.
2727
* **Addressing**: Identified by a `RecordId` (integer).
28+
* **Self-Describing**: The kernel auto-detects vector dimensions from the first ingestion, making it model-agnostic (Zero-Config).
2829
* **Metadata**: Optional binary blob (up to 64KB). Deterministically hashed and snapshotted.
2930

3031
### 2. The Knowlege Graph

docs/getting-started.md

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,17 +27,19 @@ maturin develop --release
2727

2828
---
2929

30-
## 2. Your First Memory (Local Mode)
30+
# 2. Your First Memory (Local Mode)
31+
32+
Valori is now **Zero-Config**. You don't need to declare vector dimensions or pool sizes upfront—the kernel auto-detects them on the first insertion.
3133

3234
Create a file `memory_test.py`:
3335

3436
```python
3537
from valori import ProtocolClient
3638

37-
# 1. Define a dummy embedder (In real apps, use OpenAI/SentenceTransformers)
39+
# 1. Define an embedder (SentenceTransformers example)
3840
def my_embed(text):
39-
# Returns a 16-dim zero vector for demo
40-
return [0.0] * 16
41+
# This returns 384 dimensions. Valori adapts automatically.
42+
return [0.0] * 384
4143

4244
# 2. Init Client
4345
client = ProtocolClient(embed=my_embed)

0 commit comments

Comments
 (0)