--- title: "What is fact supersession in agent memory?" description: "Fact supersession replaces an outdated fact by closing its validity window and linking the successor, instead of overwriting or deleting. Definition and mechanics." canonical: https://past.dev/glossary/fact-supersession last-updated: 2026-10-15 --- # Fact supersession Source: https://past.dev/glossary/fact-supersession Fact supersession records a replacement for an existing fact. The previous fact's validity window closes, the new fact receives its own window and a link records the replacement. Current-state queries select the new fact. Historical queries can still retrieve the previous fact. ## The three ways systems handle a changed fact | Strategy | Current state | History | Failure mode | | --- | --- | --- | --- | | Overwrite | Clear | Lost | As-of questions unanswerable; silent rewrites | | Append only | Ambiguous | Kept as text | Retrieval surfaces old and new with equal confidence | | Supersession | Clear | Kept as structured windows | Storage grows with change frequency | Append-only vector storage retains both statements without recording which one is current. An overwrite removes history. Supersession retains both facts and records their validity periods. ## Supersession vs deletion Deletion removes information. Supersession marks a fact as no longer current while preserving it for historical queries. Use deletion for information that must be removed, such as a privacy erasure request. See [privacy](/privacy) for deletion behavior in past.dev. ## How past.dev exposes source updates A caller-supplied ingest `id` is stable within a project. Sending changed content under that id creates a new source revision; sending unchanged content returns `unchanged: true`. Recall exposes ranked documents with dates and source excerpts rather than internal update records. When returned sources disagree and neither clearly supersedes the other, the application should present both documents with their dates and source excerpts. [What is agent memory?](/what-is-agent-memory) describes common memory designs. The [benchmarks page](/benchmarks) covers update tests. Integration examples are in the [docs](/docs/memory-api/quickstart). ## Why retrieval alone cannot substitute Ranking and recency settings change retrieval order. They do not record that one statement replaced another. The system must record the change, date and source during ingestion because query-time retrieval cannot recover data that was overwritten. ## Frequently asked questions ### What happens when two facts conflict and neither is clearly newer? Recall can return both documents with dates and source excerpts. The application can then present the disagreement or route it for review. ### Is supersession the same as Zep's fact invalidation? The ideas are close. Graphiti, Zep's open-source engine, marks an edge invalid when new information contradicts it, as their documentation describes. past.dev exposes source replacement and recall behavior through its public API instead of returning internal links. ## Related - [Validity window](https://past.dev/glossary/validity-window) - [Temporal knowledge graph](https://past.dev/glossary/temporal-knowledge-graph) - [Point-in-time recall](https://past.dev/glossary/point-in-time-recall) - [past.dev vs Zep](https://past.dev/vs/zep) - [Quickstart](https://past.dev/docs/memory-api/quickstart)