v0.6.0

Storage

Locate every file KuraDB keeps under ~/.config/kuradb/ and know which ones are authoritative and which can be rebuilt.

Storage topology

Durable stores

Store Authority Contents
db.json Durable registry Database names and UTC creation timestamps
config.json Durable configuration Optional pinned HTTP port and remote MCP flag
{db}/data.db Source of truth file_data rows: source, chunk index and total, content, embedding, embed and dismiss flags
global.db Durable cache store query_cache rows: query text to embedding blob

Each database also owns {db}/inbox/, the watched folder, exposed as the ~/Kura_{db} symlink.

Process and watcher state

File Authority Contents
{db}/record.json Watcher snapshot Size, mtime, directory flag, and child snapshots for every inbox entry
runtime.uid Ephemeral process state UID, PID, and start time; removed on shutdown
endpoint Ephemeral discovery Current local HTTP base URL; removed on shutdown
daemon.log Operational log Daemon stdout and stderr, appended across runs

In-memory caches

vector.Cache (per-database buckets of chunk and source vectors) and openai.Cache (query text to embedding) are accelerators, not authoritative stores. The vector cache is rebuilt from file_data.embedding at startup, and the query cache is preloaded from global.db; both must stay reconstructible from SQLite.

See Data Consistency for how writes keep these stores aligned.

中文