The HUD core glows while JARVIS speaks; the system diagnostics panel beside it reads CORE SPEAKING. Captions give the exchange: a fact is remembered, recalled, forgotten, and then correctly not recalled.

Memory

JARVIS keeps several distinct kinds of memory behind one write door. Every row records where it came from, how confident it is and when it is valid. Corrections supersede old facts instead of silently overwriting them, and forgetting is governed and visible to the owner.

TESTED , rung 3 of 8 One memory journey (a correction supersedes an old memory and deletion propagates) was verified live before 17 September 2026, a historical reading. Otherwise memory rows are TESTED, and the capability model rated memory implemented but unproven on 16 September 2026.

PARTIAL Parts of this system sit at different rungs. The breakdown below shows each one.

As of
Parts tracked
8
Catalogued capabilities
7
On the unmerged branch
3
Real capture, captured 22 September 2026. Four typed turns: remember a fact, recall it, forget it, ask again. After the forget, JARVIS answers “I don’t know. You asked me to forget the earlier information, so I no longer retain it.” Captions quote the turn records. ShowsAn explicit forget removes the fact from what JARVIS will recall. Does not showThe exchange is spoken, so the words are in captions; the HUD’s conversation panel stayed empty during these turns.
What happens, step by step
  1. 0:00 “Remember that the website launch footage was recorded tonight on monitor two.” → “Noted, sir.”
  2. 0:06 “What do you remember about the website launch footage?” → “You told me it was recorded tonight on monitor two.”
  3. 0:11 “Forget what I told you about the website launch footage.” → “Forgotten, sir.”
  4. 0:17 Asked again → “I don’t know. You asked me to forget the earlier information, so I no longer retain it.”

Captured at revision 893913a9c

Status breakdown

Where each part stands

1 live-proven 2 integrated 4 tested 1 implemented

  1. Correction supersedes; deletion propagates (journey J4) Acceptance journey J4 LIVE_VERIFIED from a reading that predates 2026-09-17. Historical, not current.
    LIVE-PROVEN , rung 6 of 8 RECORDED Where: Production branch
  2. Obsidian projection A read-only human-readable mirror. Not merged into production.
    INTEGRATED , rung 4 of 8 TESTED Where: Advanced Systems branch (not merged)
  3. Failure Atlas Searchable failure patterns marked as inferred from reports. Not merged into production.
    INTEGRATED , rung 4 of 8 TESTED Where: Advanced Systems branch (not merged)
  4. Memory router with provenance, confidence and validity Registry memory probes passed, but an August reachability audit found no production entry point at the time. Capability model: IMPLEMENTED_UNPROVEN (2026-09-16).
    TESTED , rung 3 of 8 TESTED Where: Production branch
  5. Hard forgetting and write-time contradiction handling Body-matrix rows A13 and A25 are TESTED.
    TESTED , rung 3 of 8 TESTED Where: Production branch
  6. Hybrid retriever (BM25, dense, rank fusion, reranker) Its probe passed. Whether the production runtime constructs it is uncertain.
    TESTED , rung 3 of 8 TESTED Where: Production branch
  7. Eight-layer memory hierarchy Cognition lane of the Advanced branch, with atomic supersession. Not merged into production.
    TESTED , rung 3 of 8 TESTED Where: Advanced Systems branch (not merged)
  8. Causal grades Present in the world model; the project notes the distinctions are not fully integrated (A14).
    IMPLEMENTED , rung 2 of 8 DOCUMENTED Where: Production branch

Pipeline

How it flows

A memory write

  1. Input utterance, observation or document
  2. MemoryRouter origin gate red-team, synthetic and untrusted origins refused (can stop the request)
  3. SQLite row provenance, confidence, validity
  4. Reconcile supersede or contest, never newest-wins
  5. Stale propagation dependents marked stale
  6. Retrieval current or as of a past instant
  7. Context compiler and owner model
  8. Obsidian projection Advanced branch only, read-only mirror
There is one door in. Untrusted origins are stopped at it.

Diagrams are simplified from the code paths named in the sources below. They are illustrative, not screenshots.

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.

Invariants

Rules the code enforces

  • ONE INTERACTION IS NEVER A FACT

    jarvis/understanding/owner_model.py

  • an edge without its source is refused

    jarvis/understanding/world.py

  • reported STALE, never dropped silently

    jarvis/understanding/working_context.py

  • The vault is a human-readable projection, never a second memory authority.

    Advanced Systems memory docs (branch, not merged)

  • No reported root cause is silently upgraded into verified causation.

    Advanced Systems Failure Atlas (branch, not merged)

Capabilities

Related capabilities

All 7 catalogued capabilities in this area

Sources

Sources

Paths are relative to the private JARVIS repository. They are listed so the claims above can be audited by the owner and reviewers; the files themselves are not published.

  • doc docs/constitution/JARVIS_CONSTITUTION.md
  • doc docs/analysis/JARVIS_CAPABILITY_MODEL_2026-09-16.md
  • ledger docs/ledger/CAPABILITY_TRUTH.json
  • ledger docs/ledger/CURRENT_BODY_EVIDENCE_MATRIX.md
  • ledger docs/orders/post-lm/ACCEPTANCE_JOURNEYS.json