Guide
Why AI memory goes stale, and how to keep it current
ChatGPT and Claude can remember what you told them. They can't know what changed since. Here's why saved memory drifts out of date, what context needs in order to stay fresh, and how to get there by hand or automatically.
What stale memory looks like
You ask for help with a launch, and the answer uses the date from three weeks ago, before it moved on a call. You ask what's open on a project, and it lists the thing you shipped on Tuesday. You ask it to write to a client, and it uses the contact who has since handed the account to someone else.
Nothing here is a hallucination. The model is faithfully repeating something that was true once. That makes it harder to catch: it sounds right, because it used to be.
Why it happens
- Memory is written once. A saved fact is a snapshot from the moment it was saved. Nothing goes back and checks it.
- It only learns from the chat. Built-in memory in ChatGPT and Claude comes from your conversations. Most change happens elsewhere: calls, email, docs, code, someone else's message.
- New notes pile on old ones. When the plan changes, the usual fix is adding a note. Now both versions are in memory, and the model has to guess which wins.
- Search doesn't know what's newer. Retrieval finds what matches your question best, not what's most recent. An old, detailed note can beat a short, current one.
- Nobody closes loops. To-dos, open questions and "waiting on" items stay open in memory long after they're done.
What fresh context needs
| Saved memory | Fresh context | |
|---|---|---|
| Where it comes from | What you said in a chat | Where the work happens: calls, screen, files, sessions |
| When something changes | A new note is added | The current state is rewritten |
| Finished items | Stay until deleted | Close themselves, with why |
| Dates and sources | Often missing | Every item says when and where it came from |
| Months of history | Grows without limit | Summarized by day, week and month |
The key difference is rewrite, don't append. A project's status should be one short, current description, replaced as things change, not a log the model has to replay.
Keeping it current by hand
- Keep one "current state" note per project and overwrite it, rather than adding dated notes underneath. A
CLAUDE.mdor a pinned project doc works. - Date everything. "Launch moved to Nov 12 (call, Oct 14)" lets the model, and you, tell which fact is newer.
- Delete what's finished. A done item left in memory reads as open.
- Say what wins. Tell the model to prefer the newest dated source when two disagree.
- Review it monthly, and whenever a project changes direction.
This works, but it's a job, and it falls apart on the busy weeks when things change most. That's the gap a human cache is built to close.
Keeping it current automatically
Cachejay builds context from what happens on your Mac and in your calls, then keeps it current in your Cachejay account:
- When new work comes in for a project, its status is rewritten from the last one within about half an hour: what's still true stays, what's finished or stale goes, what's new is added.
- Open to-dos are checked against what you did after they were added, and finished ones are ticked off with the reason. Untick one and it stays open.
- A recap of today is rewritten through the day, and every day, week and month gets its own summary, each written from the one below it.
- Every to-do carries who asked, which project, when, and a link back to where it came from.
ChatGPT, Claude, Cursor and Codex read it over MCP, so they start from where things stand now. See how it works, or set it up for Claude or ChatGPT.