sqlite-memory compatibility assessment

Issue: SNUG-131 ↗

Upstream inspected: sqliteai/sqlite-memory tag 1.3.5 (released 2026-06-10).

Decision

Reject as a Hippo runtime dependency. Adapt its proven design ideas.

The extension solves a similar problem, but adopting it would create a second memory/retrieval subsystem inside Hippo. Its useful ideas—Markdown-heading boundaries, content-hash no-ops, path-preserving identity, savepoint-scoped replacement, deferred embeddings, and cleanup on directory reconciliation—fit Hippo’s existing SQLite architecture and should be implemented against Hippo’s own source, knowledge-node, FTS5, sqlite-vec, inference, and MCP contracts.

Evidence

What aligns

What conflicts

Concernsqlite-memory 1.3.5Hippo contract / impact
Vector extensionRequires sqlite-vector for semantic searchHippo already owns sqlite-vec tables, migrations, integrity checks, and retrieval
Storage schemaOwns dbmem_* settings/content/vault/FTS tablesWould duplicate knowledge_nodes, link tables, FTS5, queue state, and source provenance
RetrievalOwn virtual table and weighted vector/text mergeHippo uses filter pushdown, RRF, MMR, source hydration, and existing MCP/RAG APIs
EmbeddingsBuilt-in llama.cpp or vectors.space; custom provider requires C callbacksHippo uses configurable OpenAI-compatible local providers and 768d embeddings from Python
Revision historyModified files replace prior contentSNUG-130 requires bounded revision metadata, summaries, and diffs
Source healthDirectory sync state, not Hippo watchdog/probe semanticsHippo requires independent source health, alarms, doctor output, and synthetic-row exclusion
PackagingC/C++ dynamic extension; full local build includes llama.cpp/Metal and optional curlAdds binaries, submodules, signing/loading, release, and cross-platform support burden
Schema stabilityUpstream documents a rebuild requirement for databases created before 1.0Hippo requires ordered migrations and rollback-compatible ownership

License blocker

The upstream README says “MIT License,” but tag 1.3.5’s LICENSE.md is a modified Elastic License 2.0. It grants free use when incorporated into an OSI-licensed open-source project but requires a commercial license for non-open-source or commercial production use and restricts managed-service use. That mismatch is enough to reject direct dependency until upstream publishes a single unambiguous license. Hippo should not advertise or inherit an MIT-only dependency claim from the README.

Maturity

At inspection time the repository showed 66 commits, 21 releases, approximately 74 stars, five forks, and version 1.3.5. Rapid releases are positive, but the small adoption base, recent pre-1.0 schema break, and license contradiction make it unsuitable as a foundational storage dependency today.

Behavior matrix

BehaviorUpstream evidenceHippo spike evidenceRequired Hippo behavior
UpdateHash check and savepoint replacementScratch replacement removes stale FTS chunksPreserve old searchable projection until new enrichment commits
DeleteDirectory cleanup removes stored file/chunksCascading delete removes FTS rowsTombstone current document; retain bounded history
RenameExplicit logical rename without reprocessingScratch rename preserves content and changes stable path IDsPreserve document history only when identity is unambiguous
Duplicate path/contentOptional path-scoped hashTwo identical files remain separately searchablePath identity is authoritative; content hash is revision identity
Transaction failureSavepoint rollbackInjected failure restored old document/chunksNo partial source, chunks, vectors, or node links
Deferred embeddingStores unindexed content pending later embeddingDeferred document is durable but not searchableKeep last known-good projection visible during pending replacement
Revision historyNot providedOutside scratch-index scopeBounded metadata/summary/diff, explicit-history query only

Build limitation

The planned local clone/build could not start because the execution environment could not resolve github.com. Source, Makefile, API, release, and license files were inspected through the configured GitHub connector at tag 1.3.5. No claim is made that the extension compiled or loaded on this host.

Sources