You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Adopt patterns from a deep-research scan of cocoindex-io, fixing real
correctness gaps surfaced by an adversarial uniformity audit.
Embedding cache (memo.go): key on namespace(provider.Name()) | mode |
sha256(content) instead of content alone. A model or chunker swap no
longer serves stale, incomparable vectors from the previous model.
EmbedWithMode is now memoized per-mode (was bypassing the cache).
Asymmetric retrieval: query paths (engine/search.go, engine/fused_recall.go)
now embed with ModeQuery and the ingest path (internal/server/rest.go) with
ModeDocument, so Cohere-v3-style search_query/search_document pairing is
honored. boundary.go stays document-mode (content-vs-content similarity).
Persisted vector store (storage): GetEmbeddingsBatch/AllEmbeddings take a
model filter ("" = all) and the brute-force vectorSearch scopes its scan to
the active provider's model, so a model swap can't mix incompatible spaces.
Brace chunker (ingest/chunker.go): pure-Go (no CGO/tree-sitter) splitter for
C-family languages. Handles Allman braces via forward lookahead, routes
Rust/Java/C/C++/C#/Kotlin/Swift/Scala via braceLangExts, and captures the
declared name (not a lifetime) for Rust impl<'a> generics. Ruby stays
generic (def/end, not brace-based).
0 commit comments