Step 1 of 4
Split memory into layers
Different lifetimes deserve different homes.
Restructure the memory store into two layers. WORKING: entries from recent sessions (default: last 14 days or last 5 sessions), loaded eagerly, expected to be noisy. LONG-TERM: consolidated entries with provenance, loaded via index/recall. Migrate the existing store: entries confirmed more than once or user-stated go to long-term; the rest goes to working with their dates. Update write paths (new observations land in working; direct user preferences may go straight to long-term) and read paths (session start loads working fully plus the long-term index). Verify layer counts and loading behavior after migration.
Expected after this step
A migrated two-layer store with correct write and read routing.
Should not happen
- ✕A single flat store aging into a landfill
- ✕Consolidation summaries that quietly destroy unique facts
- ✕Pruning by age alone, deleting rarely-used but critical knowledge
- ✕No metrics, so decay is discovered only when the agent gets visibly dumber
Verify before continuing
Do not move on until every check is true. The complete button stays locked until then.
Do not continue if…
- !A single flat store aging into a landfill
- !Consolidation summaries that quietly destroy unique facts
- !Pruning by age alone, deleting rarely-used but critical knowledge
- !No metrics, so decay is discovered only when the agent gets visibly dumber
If the AI messes this up
Use this when the AI fakes progress or breaks the feature. It forces a real fix.
Everything migrated to one layer. Re-check the rules: the split keys off evidence and confirmation, not just age - a day-old user-stated preference belongs in long-term.