Memories don't disappear — they archive first. Expired by TTL, swept by forget, or explicitly archived: every path lands the row in archived_memories with full metadata and a reason. Restore brings it back to live storage. Purge removes it irreversibly. Compliance-ready: soft-delete with an audit trail, then hard-delete on a schedule.
A memory has three durable states: live (in memories), archived (in archived_memories), or gone (purged or hard-deleted). Five archive MCP tools cover every transition.
memories. FTS5 + HNSW are rebuilt for the restored row. Federation fanout propagates the un-archive to peers.older_than_days is the safety knob — only rows whose archived_at is older than the threshold get purged. None means purge everything in the archive (rare; usually scoped). Federation fanout removes peer copies.archive_on_gc = true in configarchived_memoriesmemory_archive_restorearchived_at, reason, full original rowarchive_on_gc = false in configDELETE FROM memories