Soul Memory
Subjective character continuity: what the character experienced, misread, feared, wanted, trusted, resisted, and emotionally carried forward.
Project
Local-first memory architecture for persistent AI characters.
LLM characters lose continuity because normal chat is the wrong storage layer.
Raw chat history looks simple at first: keep sending the conversation back to the model and let the context window do the work. That fails as the session grows. Old prose gets the same weight as current state, completed actions can replay, hidden-state residue can leak back into the prompt, and the most dramatic line can overpower the most accurate fact.
Summaries fail in the opposite direction. They are smaller, but they flatten emotional rhythm. A summary can say trust improved or the scene moved to the kitchen without preserving the pressure, hesitation, timing, and last exchange that made the next response feel alive.
Mnemosyne also had to solve a harder split: character memory and world state are not the same thing. A Soul should remember subjective history, fear, trust, shame, attachment, and changed expectations. A World Log should remember locations, objects, plot threads, time, and objective continuity. If those buckets mix, characters become omniscient or world facts start behaving like emotional memories.
Fresh sessions add another failure mode. A new setup can inherit stale relationship warmth, old props, previous locations, or scenario-specific memories unless the app knows what should persist and what should reset.
Then there is the prompt problem. Every bug invites another rule. Too many prompt rules can make the narrator worse: cautious, overexplained, less alive. Mnemosyne’s job is not to bury the model under machinery. It is to put the right machinery in the right layer.
The narrator writes. The state map remembers.
Mnemosyne separates visible narration from memory, world state, relationship state, and debugging machinery. The model writes the next scene from a compiled brief. The app carries the continuity, records what changed, and keeps the machine-readable parts out of the player’s transcript.
That means the narrator can focus on prose while the engine handles state: Soul memory, World Log facts, relationship pressure, recent events, hidden patches, payload history, and repair trails.
The loop is intentionally inspectable. If a response goes wrong, the failure can be traced to the compiled input, the model output, the hidden-state parse, the applied patch, or stale state carried into the next turn.
Subjective character continuity: what the character experienced, misread, feared, wanted, trusted, resisted, and emotionally carried forward.
Objective story continuity: location, active objects, plot threads, time pressure, recent events, and facts the narrator needs without making the character omniscient.
Builds the model payload from clean recent chat plus structured state, avoiding raw-chat bloat while preserving immediate scene texture.
Separates visible prose from machine-readable state changes so memory, world, and relationship updates can be traced, rejected, regenerated, or restored.
Shows the exact prompt and state packet sent to the model, turning continuity bugs into debuggable input/output problems.
Recovery workflows for bad generations, including the harder state question: discarded responses should not quietly mutate the Soul.
Lets long-term Soul continuity persist while clearing volatile scenario residue: stale locations, old props, recent events, and relationship temperature from prior tests.
Refines the narrator brief so characters can initiate pressure and act decisively without resolving the user's reaction or stealing user agency.
A mode-aware visibility layer for player, reader, GM, and developer views, with redaction instead of deleting useful state.
Mnemosyne is a working alpha, not a polished public release.
The core memory/state/payload/debug loop exists: local desktop shell, structured continuity concepts, compiled model payloads, hidden-state parsing, inspection surfaces, recovery flows, and fresh-session boundaries.
The active work is long-session stability, memory provenance, cleaner entity separation, safer state import/export, and State Map V1. The product direction is becoming clearer too: fiction surfaces should feel paper/editorial; developer surfaces should feel terminal and inspectable.
Architecture / System Shape
Screenshots / Demo Proof

App shell and session entry point for persistent worlds, recent sessions, and engine status.

The main writing surface where the user interacts with the narrator while the engine maintains state behind the scene.

Inspectable continuity state separated from the visible transcript.

Developer view for model payload, pipeline state, repair controls, and benchmark diagnostics.

Scenario and session launch flow with explicit world, character, and isolated-session boundaries.
Planned screenshot slot for recovery workflows around bad generations and state repair.
Planned screenshot slot for model/provider configuration once the public UI is capture-ready.
Proof Notes
Links