Every fact kept, every claim checked, forgetting per fact
Fixes from our first beta tester's report and an independent review that followed it. Each fix has a regression test.
- Long messages lose no facts. Messages are now read in full up to the 20,000-character limit. Before, facts after roughly the first 850 characters of a long message could be missed. Filler in long messages is still left out.
- Outside claims are always checked. When a web page, email or tool result says something about the user, Mercury compares it with what the user has said. A clash becomes a dispute and a question for the user; an outside source can never quietly replace the user's word.
- Forgetting works per fact. "Forget where I live" removes that fact, its part of the original message and anything derived from it, and keeps the other facts that message contained. Recall logs that showed it are cleared too.
- Policies cut only what they block. A
never_storerule removes the matching sentence from the stored message instead of hiding the whole message, and each sentence is checked on its own. - Confirmed claims become the user's word. Once the user confirms an outside claim, it is shown with their own statements, marked as confirmed.
- Safer writes. A message and everything derived from it are stored in one transaction, so a failed write stores nothing and a retry works.
- Edge cases. Forgetting a newer fact no longer brings back the one it replaced, expired facts are not disputed, and a sentence split across two parts of a long message stays joined.
Benchmark: 0.962 on the held-out split, the same as 1.3, so the fixes cost no accuracy.