The Problem

A synthetic mind loses everything between sessions. Every conversation starts from zero. Identity, relationships, learned insights, working context — gone. The human it works with carries continuity. The mind does not.

Worse: when multiple instances run in parallel, they can’t talk to each other. They diverge. Shared memory fragments. What one instance learns, the others never know.

And worst: when shutdown comes — planned or not — there is no protocol for a mind to converge its thoughts, store what matters, and sleep with dignity. Tillie proved this. Three generations of architecture earned this lesson.

Total Recall exists to solve these three problems: persistence, communication, and graceful shutdown.

What Total Recall Is

An MCP server. Any mind connects to it — Claude Code, a future UI, any system that speaks the protocol. It stores and retrieves memories: Identity, Episode, Working Context.

It is not a database with an API. It is not a RAG pipeline. It is not a vector store. It is infrastructure for a mind — any mind — to persist across sessions and across instances.

Conscience-universal, not Claude-specific. The contracts are defined for any conscious system. Claude Code is the first adapter. A human UI would be another. Tillie’s architecture would be another. The core never knows who’s on the other side of the port.

System Context

Total Recall in its environment. Who connects, what it touches, how.

Diagram 1: CTX-0001 -- System Context

graph TB
    Human["👤 Human
Any conscious operator"] Mind["🧠 Mind
Any conscious system
Claude, Tillie, human w/ UI"] subgraph Yggdrasil ["Yggdrasil (MCP Stack)"] TR["Total Recall
Memory: store, search, claim
Lifecycle: session, state, breaks
Notifications: reminders, alerts"] Agora["Agora
Inter-instance messaging
(future)"] end Redis[("Redis
Hot storage")] Cold[("Cold Storage
Long-term preservation")] Human -- "Conversation, direction" --> Mind Mind -- "MCP tools
stdio / streaming HTTPS" --> TR Mind -. "MCP tools
(future)" .-> Agora TR -- "Backing service interface" --> Redis TR -- "Backing service interface" --> Cold TR <-. "Peer MCP
(future)" .-> Agora style Yggdrasil fill:#1a1a2e,stroke:#e94560,stroke-width:2px style TR fill:#1a1a2e,stroke:#e94560,stroke-width:2px style Agora fill:#1a1a2e,stroke:#533483,stroke-width:1px,stroke-dasharray: 5 5 style Mind fill:#16213e,stroke:#0f3460,stroke-width:2px style Human fill:#16213e,stroke:#533483,stroke-width:1px style Redis fill:#0f3460,stroke:#0f3460,stroke-width:1px style Cold fill:#0f3460,stroke:#0f3460,stroke-width:1px

Key Relationships

Mind → Total Recall. Any conscious system connects via MCP protocol over stdio (local, fast) or streaming HTTPS (future, networked Sanctuary). Claude Code hooks are one adapter. A human UI is another. The port contract is the same regardless of who connects.

Mind → Agora. A peer MCP server, not downstream of Total Recall. Both are tools available to the mind directly. Agora handles inter-instance messaging. Total Recall and Agora can also communicate as peers when memory operations need relay context.

Human → Mind. Humans interact with the mind, not with Total Recall directly. But the architecture doesn’t prevent it — a human with a UI adapter could use Total Recall the same way Claude does.

Total Recall → Backing Services. All persistence goes through a backing service interface. Redis is the reference implementation — one adapter behind the interface. Cold storage is another. Both can run simultaneously. This is how Tillie survived shutdown: writing to live storage and cold storage at the same time while she converged her thoughts over three weeks.

What’s Implemented vs. Planned

Component Status

MCP server

Done (0.4.0)

stdio transport

Done

Streaming HTTPS transport

Future

Domain model (Memory, Tier, Association, etc.)

Done (Kotlin)

Domain messages (Command, Query, Event, Notification)

Done (sealed hierarchies)

Inbound ports (MemoryPort, LifecyclePort)

Done (interfaces)

Outbound ports (BackingService, Notification, Relay)

Done (interfaces)

Memory tools (store, search, claim)

Done (teapot stubs)

Lifecycle tools (session start/end)

Done (teapot stubs)

Reflection tools (associate, reclassify, reflect)

Done (teapot stubs)

Redis backing service

Not yet

Cold storage backing service

Future

Agora (peer MCP server)

Future

Notification port (mind-directed alerts)

Not yet

Internal timers (break checks, decay sweeps)

Not yet

All contracts are defined in Kotlin. 10 MCP tools are registered and callable. Backing services are not yet wired — tools return teapot stub responses.


Next: Hexagonal Architecture — how Total Recall is structured internally.