feat: supermemory-local provider (self-hosted supermemory-server)#20
Merged
Conversation
Targets the supermemory-server local binary (Memory API on localhost:6767, pin v0.0.2) as a head-to-head competitor provider. - Auth via SUPERMEMORY_API_KEY (printed on server first boot); skipped cleanly when the key is missing or the server is unreachable. - Ingestion is async server-side (queued -> extracting -> chunking -> embedding -> done|failed): the provider polls every document to a terminal state before returning, treats poll 404s as failures (the server reaps failed docs after ~2 min), and raises on any failed document — partial ingestion must fail the run loudly, not silently skew retrieval metrics. - Run-scoped container tags (bm-bench-<run_id>) isolate groups in grouped mode for free; cleanup bulk-deletes the container. - Search via POST /v3/search; hits normalized from documentId/chunks/ metadata with our source_doc_id round-tripped through document metadata. - Provider takes an injectable httpx transport: the test suite runs a full fake v3 server (add/poll/search/bulk-delete) via MockTransport. 9 tests cover poll-to-done, run scoping, failed-doc and 404 handling, timeout, cleanup, skip paths, and factory registration. Empirical validation against the real binary is pending operator authorization to install it; the API contract follows the official self-hosting docs. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Signed-off-by: Drew Cain <groksrc@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds
supermemory-localas a competitor provider, targeting the self-hosted supermemory-server binary (Memory API onlocalhost:6767, pinned v0.0.2).Design
SUPERMEMORY_BASE_URL+SUPERMEMORY_API_KEY; skips cleanly (recorded reason) when unconfigured or unreachable.queued → extracting → chunking → embedding → done|failed. The provider polls every document to a terminal state before returning — searching earlier silently misses content. Poll 404s = failure (server reaps failed docs after ~2 min). Any failed document fails the run loudly instead of silently scoring partial ingestion.bm-bench-<run_id>) — grouped (LongMemEval) runs get per-group isolation for free; cleanup bulk-deletes the container.MockTransport.SUPERMEMORY_DATA_DIRper run (upstream #1103: upgraded stores return empty searches) and LLM viaOPENAI_BASE_URL.Status
API contract follows the official self-hosting docs + release assets. Empirical validation against the real binary is pending — installing third-party binaries needs operator authorization (install one-liner already provided in-session). Known upstream risk for our Ollama config: issue #1096 (their extraction pipeline speaks the Responses API, which Ollama rejects); if confirmed locally, the documented shim-proxy workaround is the next change.
Verification
🤖 Generated with Claude Code