ADR: allow memory to be served by an external backend - #600
Open
nicwn wants to merge 1 commit into
Open
Conversation
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.
Adds an ADR proposing a seam for external memory backends:
adrs/external-memory-backend.md.Today memory is one markdown notebook per scope, with the backend fixed in
wiring.ts(Postgres whenDATABASE_URLis set, else a file workspace) and no turn-lifecycle hooks on thechassisplugin surface. A deployment that wants to reuse an existing layered/vector memory system has no integration point short of forking core.The ADR keeps the built-in notebook as the zero-config default and asks for the project's direction between two shapes:
MemoryServicevia config (MEMORY_BACKEND=http) delegating to an HTTP sidecar — minimal, butrecall's markdown-body return forces a layered backend to flatten its atoms/persona into one block; andmemoryprovider returning structured recall the orchestrator renders, plusonTurnEndfor capture) with the notebook as the built-in provider — more surface, but preserves a layered backend's tiers.Seeking a decision on whether to take either, both behind one config, or neither. No code yet; implementation follows whichever direction the project prefers.
Need help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled.