A personal system that remembers badly is worse than one that does not remember at all. It repeats stale facts with confidence, it cannot say where a belief came from, and it cannot really forget. JARVIS’s memory is built around those failure modes. It keeps several kinds of memory apart, admits writes through one door, and attaches provenance, confidence and time to every row.
Why memory is not one store
Different memories answer different questions and age differently. “What is ‘it’ right now?” expires in minutes. “What happened last Tuesday?” is a fixed record. “What does the owner prefer?” should change only with evidence. “How do I do this task?” is a versioned skill. Putting all of these into a single undifferentiated store, such as one vector index, would give every answer the same weight and the same lifetime. Staleness, correction and forgetting would then have no clear meaning.
So JARVIS keeps memory in SQLite, one file per kind of store, in write-ahead-log mode, with schema migrations that can be rolled back. A corrupt store refuses to open rather than pretending to be empty. That rule came from a real memory-database incident in July 2026, in an earlier generation of the project.
The kinds of memory
| Kind | What it holds | Production | Advanced branch |
|---|---|---|---|
| Working | Current referents with expiry; stale ones are reported, never dropped silently | Present | |
| Episodic | Episodes with a resume point | Present | |
| Semantic | Owner facts, an entity registry and a world graph that refuses unsourced edges | Present | |
| Project | Project scope, with suspend and resume of context | Present | |
| Procedural | Versioned skills; a skill cannot approve itself | Present | |
| Prospective | Commitments, timers and reminders | Partial (not a named memory type) | |
| Failure | A failure kind on each episode and a shared failure taxonomy | Partial | Failure Atlas |
| Owner preference | An owner model where explicit statements beat inferences | Present | |
| Causal | Graded causal links | Present, not fully integrated | |
| Obsidian vault | A human-readable projection | Absent | Present |
| Eight-layer hierarchy | A layered router on the cognition lane | Absent | Present |
One write door
MemoryRouter is the only way to write to memory. A direct write that bypasses it fails the project’s final gate. Every write carries an Origin. Writes from red-team, synthetic, mock and untrusted-input origins cannot reach owner memory. The constitution requires that the owner-memory mutation count during a red-team run be exactly zero.
A single door matters because it is the only place where these rules can be enforced once and trusted everywhere. Text read from a web page or recognised on screen cannot quietly become an owner “fact”.
Provenance, confidence and time on every row
Each row records its origin, its source, whether it was stated explicitly or derived, and what it was derived from. Its confidence is capped at the confidence of its weakest source, so a conclusion cannot be more certain than the evidence under it.
Each row also has a validity window, valid_from_utc and valid_until_utc. Once the window passes, the record turns STALE. Search can ask what was believed as of a given instant, which lets JARVIS answer “what did you think then?” separately from “what is true now?”.
Corrections use supersession. A new fact points back to the one it replaces, the old row is kept and marked superseded_by, and anything that depended on the old fact is marked stale in turn. Contradictions are reconciled when they are written, and the project states they are “never resolved by picking the newest”. Explicit owner statements take precedence over inferred ones.
Preferences and causes
The owner model uses a consolidation threshold of three. A single interaction never becomes a preference, and something the owner states outright overrides anything inferred.
Causal memory is graded. A link can be PRECEDED (one thing came before another), SUSPECTED, or REPRODUCED_INTERVENTION (changing one thing reproducibly changed the other). Only the last grade may be spoken as “because”. This follows a lesson the project wrote down elsewhere: “Adjacency in time is not relation.” The project itself notes that these grades are not yet fully integrated across the system.
Retrieval
Router search uses SQL filters, text matching and point-in-time queries. Documents are indexed with SQLite full-text search and return page citations. A hybrid retriever also exists, combining BM25, dense embeddings, reciprocal rank fusion and a reranker, and its probe passed. Whether the production runtime actually constructs it is uncertain, so this site describes it as an implemented module, not a running service.
Forgetting
Forgetting is governed and visible to the owner. Hard forgetting reaches the search index, caches and the training corpus, not just the primary row. A memory the owner has asked to be removed should not survive in a derived copy, and forgetting is only real when every copy goes.
Obsidian and the Failure Atlas (Advanced branch only)
Two memory surfaces exist only on the Advanced Systems branch, which is not merged into production.
- Obsidian projection. The memory can be mirrored into an Obsidian vault for human reading. “The vault is a human-readable projection, never a second memory authority.” A human edit made in the vault is treated as a conflict to resolve, not as permission to overwrite memory.
- Failure Atlas. Past failures become searchable patterns. Each pattern is marked as inferred from reports, and the project states that “No reported root cause is silently upgraded into verified causation.”
What is not proven yet
- Most memory evidence is test-level. The registry memory rows passed their probes, but an August audit found no production entry point for them at the time. The capability model rated memory implemented but unproven on 16 September 2026.
- The single live journey is historical. Journey J4 (a correction supersedes an old memory and deletion propagates) was verified live from a reading taken before 17 September 2026.
- Causal grades are not fully integrated.
- Hybrid retrieval wiring is uncertain.
- Obsidian, the Failure Atlas and the eight-layer hierarchy are not merged into production.
- Prospective memory exists as commitments and timers, not as a first-class memory type.