From 912e00a627329a850eb712bea45f9f311d8b87e8 Mon Sep 17 00:00:00 2001 From: Alex Clarke Date: Tue, 11 Aug 2026 16:38:55 -0600 Subject: [PATCH] docs(rag): correct the duckdb concurrency note in the driver prompt MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The driver picker still told users a duckdb RAG can only be open in one Coyote process at a time. That stopped being true once the store began opening read-only for queries: any number of processes can now query it concurrently. The restriction that remains is narrower and only bites while writing, so the prompt now states that instead — several processes can query at once, but an ingest or rebuild locks the others out until it finishes. --- src/rag/mod.rs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/rag/mod.rs b/src/rag/mod.rs index 0d76481..0c49e2f 100644 --- a/src/rag/mod.rs +++ b/src/rag/mod.rs @@ -274,15 +274,17 @@ impl Rag { let driver = if prompt_for_driver { let options = vec![ "yaml — portable, in-memory HNSW; usable from several Coyote processes at once (default)", - "duckdb — persistent on-disk store; vectors and content survive restarts; HNSW approximate search. Can only be open in ONE Coyote process at a time, and its driver cannot be changed later without recreating the RAG", + "duckdb — persistent on-disk store; vectors and content survive restarts; HNSW approximate search. Several Coyote processes can query it at once, but ingesting or rebuilding it locks the others out until that finishes, and its driver cannot be changed later without recreating the RAG", ]; let sel = Select::new("RAG storage driver:", options) .with_starting_cursor(0) .prompt()?; if sel.starts_with("duckdb") { println!( - "Note: a duckdb RAG can only be open in one Coyote process at a time, \ - and changing its driver later means deleting and recreating the RAG." + "Note: several Coyote processes can query a duckdb RAG at the same time, \ + but while one process is ingesting or rebuilding it the others cannot \ + read it until that finishes. Changing its driver later means deleting \ + and recreating the RAG." ); "duckdb" } else {