Aura Memory v1.5.7 makes persistent agent memory safer, more explainable, and more resistant to stale or contradictory knowledge.
Highlights
Crash-safe temporal memory versioning
Aura now treats fact replacement as an atomic operation. The old version’s validity boundary, the new version, and their causal links are written together as one durable journal transaction.
If a process crashes during the write, Aura keeps the previous fact valid instead of leaving a broken superseded_by="pending" chain.
Legacy interrupted supersessions are automatically repaired on startup:
an existing successor is linked correctly;
if no successor was committed, the previous version is reopened;
incomplete or corrupted atomic journal tails are safely ignored.
Historical recall
Records can now carry explicit temporal validity:
valid_from
valid_until
superseded_at
The new recall_as_of() API reconstructs which version of a fact was valid at a specific business-time timestamp. Normal recall, search, and context capsules continue to return only currently valid records.
Safer contradiction resolution
Aura no longer forces every contradiction graph into two artificial sides.
A belief remains Unresolved when the conflict contains:
odd contradiction cycles such as A ↔ B ↔ C ↔ A;
multiple independent conflict components;
isolated claims that cannot be assigned to either side;
non-binary conflicts without sufficient directional evidence.
A winner is selected only when the explicit contradiction graph forms one connected bipartite component.
Governed memory promotion
Memory level controls durability—not truth.
Promotion into Domain or Identity is now blocked for records that are contradictory, unstable, temporally inactive, or lack sufficient supporting evidence. Retrieving an old rule no longer makes its evidence appear recent.
This prevents stale policies from becoming permanent simply because they were recalled frequently or had already survived for a long time.
Inspectable recall decisions
explain_recall() now shows both surfaced and suppressed evidence, including:
the selected and rejected hypotheses;
the winning hypothesis and competing score;
temporal rejection reasons;
strength and top-K admission decisions;
suppressed_by_belief_resolution;
a correlation-safe trace_id.
Records from other namespaces or tenants are never exposed in the trace, even by ID.
Persistence reliability
Critical persistence failures are no longer silently discarded in temporal supersession, standalone decay, reflection, shared import, promotion, or namespace moves.
Promotion and namespace migration update live memory only after the corresponding journal write succeeds. Multi-record namespace changes are persisted as one atomic batch.
Compatibility
Existing temporal version chains remain supported. Aura automatically migrates legacy supersession boundaries and repairs incomplete legacy pending markers during startup.
Validation
622 automated tests passed
0 failures
crash and truncated-journal recovery tested
Python 3.12 Windows wheel installation tested
persistence verified across close and reopen
release metadata verified across Rust, Python, and the changelog
Installation
pip install --upgrade aura-memory
Project: https://github.com/teolex2020/aura-memoryPyPI: https://pypi.org/project/aura-memory/