Finding disagreement
Contradiction flags, not verdicts
Lexical overlap plus opposite negation marks a conflict for a human. It never picks a winner.
The signal
On write, the new memory is compared with up to the 200 most recent live memories in the same space. Two conditions must both hold:
- Lexical similarity ≥ 0.55, computed as term-frequency cosine over the normalised term vectors.
- Opposite negation polarity. One text contains a negation marker and the other does not.
What a flag contains
{
"memory_id": "mem_...",
"similarity": 0.71,
"resolution": "unresolved",
"note": "lexical overlap with opposite negation polarity; review, not a verdict"
}
What it refuses to do
- It does not delete, hide or supersede the prior memory.
- It does not choose which statement is true.
- It does not change
status: the new memory remainsactive. - It does not claim semantic entailment. Every flag says
resolution: unresolved.
Known false positives and negatives
A genuine update (“the limit was 500; it is now 800”) may not be flagged at all, because the two sentences share little vocabulary. A nuanced correction may be flagged when the negation is incidental. This is a triage signal whose only promise is that it never silently overwrites.
memory-integrity is the deeper auditor in this stack: it reads a full write history and scores corroboration. AETHER-33's inline check is deliberately cheap so that write latency stays flat.
AETHER-33 is a product over CAIN-42's governed-memory stack, not a new architecture moat.
Memory never carries authority: every response is annotated
grants_authority: false.
No third-party audit has been performed. Limits ·
FAQ · what is live now