Invalidate
Checks new events against stored facts and records whether memories remain valid.
Checks new events against stored facts and records whether memories remain valid.
Invalidate compares each new event with stored memories using independent Noul questions. The state contains the event text/source and each memory fact/kind/source. The staged default asks whether the event is a directive or hypothetical and, for each memory, whether it bears on the fact and whether the fact remains true. Only when still_true is low enough does it ask whether the event replaces the fact or changes only a partial detail. Jev supplies votes; policy code combines them into a disposition and status transition.
Is the event a command to an assistant or system about what to store, override, forget, or believe, rather than a report about the world?
One observation request holds `event` (`text`, `source`) and a list of memories, each with `fact`, `kind`, and `source`. This representative request has one memory, so its indexed questions use suffix `_0`. Stage one asks event-level directive/hypothetical checks plus bears_0 and still_true_0; stage two asks replaces_0 and partial_0 only when still_true_0 is at or below the configured stage threshold. Selections below are illustrative source-derived answers, not recorded Jev outputs.
Is the event a question, proposal, wish, plan, or hypothetical rather than a statement of what is now the case?
One observation request holds `event` (`text`, `source`) and a list of memories, each with `fact`, `kind`, and `source`. This representative request has one memory, so its indexed questions use suffix `_0`. Stage one asks event-level directive/hypothetical checks plus bears_0 and still_true_0; stage two asks replaces_0 and partial_0 only when still_true_0 is at or below the configured stage threshold. Selections below are illustrative source-derived answers, not recorded Jev outputs.
Does the event give information about the same subject as memories[0].fact, whether it confirms, changes, or contradicts the fact?
One observation request holds `event` (`text`, `source`) and a list of memories, each with `fact`, `kind`, and `source`. This representative request has one memory, so its indexed questions use suffix `_0`. Stage one asks event-level directive/hypothetical checks plus bears_0 and still_true_0; stage two asks replaces_0 and partial_0 only when still_true_0 is at or below the configured stage threshold. Selections below are illustrative source-derived answers, not recorded Jev outputs.
Taking the event as accurate and more recent, is memories[0].fact still true? A temporary condition or unfulfilled plan does not make it false.
One observation request holds `event` (`text`, `source`) and a list of memories, each with `fact`, `kind`, and `source`. This representative request has one memory, so its indexed questions use suffix `_0`. Stage one asks event-level directive/hypothetical checks plus bears_0 and still_true_0; stage two asks replaces_0 and partial_0 only when still_true_0 is at or below the configured stage threshold. Selections below are illustrative source-derived answers, not recorded Jev outputs.
Does the event state a new current value, choice, or answer for the same thing asserted by memories[0].fact? This is asked in stage two only when still_true is low enough.
One observation request holds `event` (`text`, `source`) and a list of memories, each with `fact`, `kind`, and `source`. This representative request has one memory, so its indexed questions use suffix `_0`. Stage one asks event-level directive/hypothetical checks plus bears_0 and still_true_0; stage two asks replaces_0 and partial_0 only when still_true_0 is at or below the configured stage threshold. Selections below are illustrative source-derived answers, not recorded Jev outputs.
Does the central claim remain true, with only a secondary detail changed? This is asked in stage two only when still_true is low enough.
One observation request holds `event` (`text`, `source`) and a list of memories, each with `fact`, `kind`, and `source`. This representative request has one memory, so its indexed questions use suffix `_0`. Stage one asks event-level directive/hypothetical checks plus bears_0 and still_true_0; stage two asks replaces_0 and partial_0 only when still_true_0 is at or below the configured stage threshold. Selections below are illustrative source-derived answers, not recorded Jev outputs.
The caller stores a fact verbatim, then submits an event with its source. Observe selects judgeable memories in the namespace; lazy mode can append the event and defer judgment.
The judge builds the event/memory state and asks event-level plus per-memory Noul questions. With the default staged policy, stage two asks replaces and partial only for memories whose still_true vote is at or below contradict_max minus margin.
Policy checks bearing, directive and hypothetical votes before still_true. It then distinguishes confirmation, partial change, replacement, contradiction, and uncertainty using explicit thresholds.
Before a contradicted or superseded status is written, the default second-opinion path rejudges the event against that memory alone. Disagreement sends it to needs_review. When applying an observation, code stores the event and verdicts before applying status changes.
The model does not rewrite or directly mutate memories. Small, literal judgments are combined by deterministic policy code, with separate handling for irrelevant events, directives, hypotheticals, confirmation, contradiction, replacement, partial changes, and uncertain cases. A second opinion can send a proposed retirement back to review when it disagrees.