New request
#1980: Support provider-neutral external memory approval queues
We'll provision a sandbox, run an agent against the issue, and open a draft PR. You can pull the branch and iterate from there.
Problem
The Memory panel currently edits local profile memory files, but there is no generic WebUI surface for human-in-the-loop review of memory candidates produced by external systems.
Some memory systems need an approval queue before durable knowledge is indexed or marked active. The WebUI can support that without coupling to any specific provider implementation.
Proposed shape
Add a provider-neutral "External Memory Approval Queue" surface:
- Providers are opt-in and explicitly registered by the active Hermes profile.
- No built-in provider is assumed.
- No endpoint, hostname, model, collection, or infrastructure default is shipped.
- The WebUI renders a common candidate shape and common review actions.
Provider registration
{
"providers": [
{
"id": "custom_store",
"label": "Custom Store",
"db_path": "custom_memory/items.sqlite",
"config_path": "custom_memory/config.json"
}
]
}
Candidate table contract
candidates(
id text primary key,
text text not null,
source text not null default 'agent',
metadata_json text not null default '{}',
state text not null default 'candidate',
content_sha256 text not null,
created_at real not null,
updated_at real not null
)
Review actions
- list candidates
- list approved rows
- search rows
- edit candidate text before approval
- approve
- reject
- delete local row
Safety
Approval should be fail-closed. If optional indexing configuration is missing or indexing fails, the candidate should remain unchanged and the UI should show a clear not-configured/error state.
Related implementation
A candidate implementation is open in PR #1975.
Adding a provider-neutral memory approval queue requires new backend endpoints, frontend UI components, and persistence integration.
- api/routes.py
- api/profiles.py
- static/js/memory.js
- static/index.html
- api/memory_queue.py
- tests/test_memory.py