MEMORY-AUGMENTATION-PLAN.md
markdown
sha256:65ccb454656ea5acdea0a10e559b78bcde1eb6ff753ecc2911bc99d1c3d7cadd
feat(calendar): enforce agent context tiers in retrieval AP…
Human
minor
⚠ breaking
1 day ago
Memory Augmentation — Phase 8 Implementation
Phase 8 expands Knowtation's memory layer from a minimal 2-key JSON file stub to a multi-tier memory system with timestamped event log, optional vector-backed semantic recall, Mem0 API provider support, full CLI/MCP/hosted surface, and privacy controls.
Architecture
Three-Tier Provider System
| Provider | Config value | Storage | Semantic recall | Dependency |
|---|---|---|---|---|
file (default) |
memory.provider: file |
memory/{vault_id}/events.jsonl + state.json |
No (key lookup only) | None |
vector |
memory.provider: vector |
Same JSONL + embeddings in existing vector store | Yes — memory_search |
Existing embedding infra |
mem0 |
memory.provider: mem0 |
Delegates to Mem0 API at memory.url |
Yes (Mem0 built-in) | External Mem0 instance |
Storage Layout
- Event log (
events.jsonl): Append-only JSONL, one event per line. Never silently overwritten. - State overlay (
state.json): Latest event per type for O(1) lookup. - Per-vault isolation:
{data_dir}/memory/{vault_id}/ - Hosted per-user:
{DATA_DIR}/memory/{sanitizedUserId}/{vaultId}/
Event Taxonomy
| Type | Trigger | Auto-captured by default |
|---|---|---|
search |
After search | Yes |
export |
After export | Yes |
write |
After note write | Yes |
import |
After import | Yes |
index |
After re-index | Yes |
propose |
After proposal | Yes |
agent_interaction |
MCP tool call | No (opt-in) |
capture |
After inbox capture | No (opt-in) |
error |
On failure | No (opt-in) |
session_summary |
Explicit/periodic | No (opt-in) |
user |
Manual store | Always allowed |
Configuration
memory:
enabled: true
provider: file # file | vector | mem0
url: null # for mem0 provider; env KNOWTATION_MEMORY_URL
retention_days: null # null = forever; number = auto-prune
capture: # which events to auto-capture (default below)
- search
- export
- write
- import
- index
- propose
CLI Commands
| Command | Description |
|---|---|
memory query <key> |
Read latest value for event type |
memory list |
List recent events. --type, --since, --until, --limit, --json |
memory store <key> <value> |
Store user-defined entry (type=user) |
memory search <query> |
Semantic search (vector/mem0 only) |
memory clear |
Clear events. --type, --before, --confirm required |
memory export |
Export log. --format jsonl\|mif, --since, --until, --type |
memory stats |
Event counts, storage size, oldest/newest |
MCP Tools
| Tool | Description |
|---|---|
memory_query |
Read latest value for a key |
memory_store |
Store a value (agent write-back) |
memory_list |
List events with filters |
memory_search |
Semantic search (vector/mem0) |
memory_clear |
Clear with confirmation |
MCP Resources
| URI | Description |
|---|---|
knowtation://memory/ |
Summary: enabled, provider, event counts |
knowtation://memory/events |
Recent event log (last 50) |
knowtation://memory/last_search |
Latest search memory |
knowtation://memory/last_export |
Latest export memory |
Hosted Path
- Gateway:
/api/v1/memory/*routes proxy to bridge - Bridge: Implements memory with per-user/vault file storage under
DATA_DIR/memory/{userId}/{vaultId}/ - Auth: All routes require JWT; X-Vault-Id header for multi-vault scoping
Privacy and Security
- Per-user isolation on hosted (sanitized userId + vaultId partitioning)
- Secret detection:
storeMemoryrejects data with common secret key patterns - Configurable capture types via
memory.capture memory clearrequires--confirm- Memory entries store metadata, not full note bodies
- Retention limits via
memory.retention_days
Files
Core Library
lib/memory-event.mjs— Event types, ID generation, validation, secret detectionlib/memory-provider-file.mjs— File provider (JSONL + state.json)lib/memory-provider-vector.mjs— Vector provider (extends file with embeddings)lib/memory-provider-mem0.mjs— Mem0 API providerlib/memory.mjs— MemoryManager class + backward-compatible wrappers
CLI
cli/index.mjs— Expandedmemorysubcommand with 7 actions
MCP
mcp/tools/memory.mjs— 5 MCP toolsmcp/resources/register.mjs— Memory resourcesmcp/resources/metadata.mjs— Resource builders
Hosted
hub/gateway/server.mjs— Memory proxy routeshub/bridge/server.mjs— Memory endpoints with per-user storage
Tests
test/memory.test.mjs— Core engine tests (46 tests)test/memory-cli.test.mjs— CLI integration tests (14 tests)test/memory-mcp.test.mjs— MCP resource tests (9 tests)test/memory-hosted.test.mjs— Hosted isolation tests (11 tests)
File History
2 commits
sha256:65ccb454656ea5acdea0a10e559b78bcde1eb6ff753ecc2911bc99d1c3d7cadd
feat(calendar): enforce agent context tiers in retrieval AP…
Human
minor
⚠
1 day ago
sha256:9103f98c89257ed2b01c237cea895dabb3e85ea337dccb1161c175e4422355b6
docs: accept Calendar Events v0 spec with Phase 0 security …
Human
1 day ago