The octopoda_recall_similar MCP tool returns an empty result set for every query
regardless of matching content in the database.
How to reproduce:
- Store a memory with octopoda_remember
- Query with octopoda_recall_similar using text that should match
- Observe count=0, items=[]
Tested queries against a database with 77+ memories:
- "kernel crash null pointer dereference" -> 0 results
- "octopoda verification test" -> 0 results
- "RAID storage" -> 0 results
- "octopoda recall_similar semantic search bug" -> 0 results
Expected behavior: semantic search returns semantically related memories.
Actual behavior: empty result set every time.
Root cause analysis:
The README documents that semantic search in local mode requires the
octopoda[ai] extra (33MB on-device embedding model). Without it,
recall_similar silently returns nothing instead of:
(a) raising an error saying the embedding model is not installed
(b) falling back to keyword/FTS5 search
(c) emitting a log warning
At minimum the function should:
- Check whether the embedding model is available at call time
- Return a clear error if it is not, or fall back to FTS5/LIKE matching
- Never silently return empty results -- that makes the tool indistinguishable
from "no matching content found" vs "search is completely non-functional"
Environment:
octopoda 3.1.3
synrix_runtime 3.1.0
SQLite (local mode, no OCTOPODA_API_KEY)
Linux x86_64
I'll send a fix if you agree on the approach.
The octopoda_recall_similar MCP tool returns an empty result set for every query
regardless of matching content in the database.
How to reproduce:
Tested queries against a database with 77+ memories:
Expected behavior: semantic search returns semantically related memories.
Actual behavior: empty result set every time.
Root cause analysis:
The README documents that semantic search in local mode requires the
octopoda[ai] extra (33MB on-device embedding model). Without it,
recall_similar silently returns nothing instead of:
(a) raising an error saying the embedding model is not installed
(b) falling back to keyword/FTS5 search
(c) emitting a log warning
At minimum the function should:
from "no matching content found" vs "search is completely non-functional"
Environment:
octopoda 3.1.3
synrix_runtime 3.1.0
SQLite (local mode, no OCTOPODA_API_KEY)
Linux x86_64
I'll send a fix if you agree on the approach.