Verified by the sovseal team

LanceDB On-Device Database

Technical details of the serverless, Arrow-backed local vector store used by sovseal.

LanceDB is the default local vector database for sovseal. It runs as an embedded serverless library inside your agent or MCP server process, writing directly to your local file system.


File System Layout

All memory tables are stored on your local disk:

  • Default Database Location: ~/.sovseal/db/
  • Memories Table Path: ~/.sovseal/db/memories.lance/
  • You can override this location by setting the SOVSEAL_DB_DIR environment variable.

The table directories contain Arrow metadata files, schema configurations, and transaction logs. No database background process is run.


Arrow Table Schema

To ensure vector types, dimensions, and synchronization flags survive empty-table cold starts, sovseal initializes the memories table using an explicit Apache Arrow schema definition:

Column NameArrow Data TypePurpose
idUtf8 (non-nullable)Unique UUID generated client-side for each memory fact.
vectorFixedSizeList(384, Float32)The 384-dimensional ONNX normalized embedding vector.
textUtf8 (non-nullable)The plain text representation of the memory.
timestampInt64 (non-nullable)Epoch timestamp (Date.now()) recording when the memory was stored.
sync_statusUtf8 (non-nullable)Replication status indicator: "pending" or "synced".

Thread Safety & File Locking

Because LanceDB writes directly to files, the database handles concurrent access safely:

  • Reader Isolation: Multi-threaded read queries are completely non-blocking, ensuring multiple agents or editor panels can invoke recall_memory simultaneously.
  • Writer Coordination: Writes are serialized using internal file-locking mechanisms.
  • Transaction Log: LanceDB uses append-only transaction logs. If your machine crashes during a tool execution, the database recovers to the latest consistent sequence on next start.

On this page