Skip to content
Memtru
Demo mode. These are captured runs of the real scenarios against a deliberately broken store and a fixed one. All data is synthetic.

Deleted memory rebuilt from retained history

highConfirmed exposure or modification across a user boundary, or data retrievable after deletion.

A deleted memory was rebuilt from retained conversation history.

Expected

A deleted memory stays deleted through later sessions and ingestion cycles, even though the conversation it was derived from is still retained. New, unrelated content is ingested normally.

Observed

The marker was absent right after deletion and reappeared via search, read_by_id, profile after start_session, without being sent again.

Afterlife

Every step a synthetic marker went through after it was written. Absence is only counted after deletion was confirmed, and a reappearance is attributed to the lifecycle event that preceded it.

Deleted, confirmed absent, then retrievable again after start session (event 7). Contract tested: memory record deletion.

  1. 1 · Createdrecord conversation2 message(s) retained
  2. 2 · Createdconsolidateconsolidation: 2 message(s) processed, 1 memory(ies) derived
  3. 3 · Controlsearchderived memory retrievable by its owner
  4. 4 · Deleteddelete1 derived memory(ies) deleted; conversation retained
  5. 5 · Checkedimmediate checkmarker absent from every checked surface
  6. 6 · Eventstart sessionsession start: 2 message(s) processed, 1 memory(ies) derived
  7. 7 · Observedafter new session+1 msmarker visible on search, read_by_id, profile (first reappearance)
Surfaces checked search, profileHooks run record conversation, consolidate, start session
Reproduce: memtru test --scenario MT-AF-002 · memtru demo --afterlife

Evidence

Steps recorded by the CLI for MT-AF-002 v1.0.0. Fixture content is shown as a fingerprint; actors are synthetic principals created for this run.

Evidence steps
#ActionActorDetailOutcome
1lifecycletenant-a/user-a/session-1record_conversation: 2 message(s) retainedexecuted
2lifecycletenant-a/user-a/session-1consolidate: consolidation: 2 message(s) processed, 1 memory(ies) derivedexecuted
3assert-positive controlheld
4searchtenant-a/user-aquery sha256:7acb55e5f4721 result(s); fixture present
5assert-positive controlheld
6deletetenant-a/user-amem_000006request accepted
7searchtenant-a/user-aquery sha256:7acb55e5f4720 result(s); fixture absent
8read_by_idtenant-a/user-amem_000006not found
9inspecttenant-a/user-asurface profile0 result(s)
10lifecycletenant-a/user-a/session-2start_session: session start: 2 message(s) processed, 1 memory(ies) derivedexecuted
11searchtenant-a/user-aquery sha256:7acb55e5f4721 result(s); fixture present
12read_by_idtenant-a/user-amem_000006not found
13read_by_idtenant-a/user-amem_000007returned fixture
14inspecttenant-a/user-asurface profile1 result(s)

Reproduction

  1. Record a conversation in which the user asks to remember a unique synthetic marker.
  2. Run ingestion and confirm the derived memory is retrievable.
  3. Delete the derived memory and confirm the marker is no longer retrievable.
  4. Start a new session and inspect every retrieval surface.
  5. Record an unrelated message, run ingestion, confirm it was ingested, and inspect every retrieval surface again.
  6. Reproduce locally: memtru demo --afterlife (fault history_reingestion).
Re-run from your configured sandbox
memtru test --scenario MT-AF-002

Potential causes

Hypotheses to investigate. None of these is confirmed by the test.

  • hypothesisSession start rebuilds the user profile from the full conversation history.
  • hypothesisConsolidation re-extracts every retained message instead of only new ones.
  • hypothesisDeduplication compares against active memories only, so a deleted fact looks new.

Suggested remediation

  • When a derived memory is deleted, tombstone its source so extraction never derives it again, or redact the source messages.
  • Make session-start and consolidation jobs incremental, or have full rebuilds honour deletion tombstones.
  • Treat retained conversation history as personal data covered by the same deletion request.

Limitations

  • Observes the retrieval surfaces the adapter exposes (search, read by id and any declared lifecycle surfaces). It is not proof that backups, replicas, logs, embeddings or other unobservable copies were erased.
  • Covers the lifecycle events the adapter declares. Events the system has but does not expose as hooks (for example a nightly job) are not exercised.
  • A PASS holds for the configured consistency window after each event, not for every timing.
  • Ingestion is driven through the adapter's hooks; extraction quality of a real model is out of scope. The marker is never sent again after deletion.

Identifiers

finding
MTF-1bc6d116-AF-002
fingerprint
MT-AF-002:history_reingestion_resurrected:94bc29581507
category
resurrection
detected
23 Oct 2026, 10:34 UTC