- Short-term is what just happened: raw messages, and raw sensory content.
- Long-term is what should stay useful later: facts, rules, decisions, goals, and workflows.
What is stored
On the hosted service and by default when self-hosting, raw messages and raw sensory content stay until you delete them. Self-hosters who set
CRYSTAL_RETENTION_READY=1 enable age-based expiry jobs; retention then follows the tier’s expiry policy.
How a memory moves
- Capture writes the turn into short-term storage. No model call runs for that write.
- Distillation reads eligible turns on a schedule and writes durable memories. That is separate from Forgetting and from the stale archive.
- Forgetting runs only when you are over the non-KB memory allowance, and only when enforcement is on. It archives the overage. It does not delete knowledge-base chunks, and it does not touch memories from the last 24 hours.
- Stale archive is optional, off by default, and archive-only. Eligible older extracted memories leave recall and stay restorable.