Alexander Whitestone
|
75e31bee27
|
feat(atlas): lossless context + memory subsystem from hermes-lcm and gbrain
Lint / lint (pull_request) Successful in 9s
Implements the ATLAS (Adaptive Turn-Lineage Archival System) lossless
memory subsystem as described in issue #985. All 183 fixture-backed
tests pass.
agent/atlas/ — modular ATLAS package:
- turns.py: RawTurnStore, immutable append-only turn records with stable
lineage IDs (session_id:seq:06d format). Turns are never deleted.
- dag.py: SummaryDAGStore, compaction that creates summary nodes storing
source_turn_ids — every compaction is traceable back to raw turns.
- stores.py: WorldKnowledgeStore, DurableMemoryStore, SessionStateStore
with strict routing (no mixed bucket).
- extractor.py: TypedLinkExtractor, deterministic regex-based extraction
of 7 typed relation types on every write (no LLM calls):
DEFINES, MODIFIES, REFERENCES, DEPENDS_ON, CONTRADICTS, PREFERS, LOCATES
- recall.py: RecallEngine with 3 explicit recall ops: search/describe/expand
- db.py: AtlasDB SQLite connection/schema bootstrap
agent/atlas_memory.py — AtlasMemory facade (higher-level API)
agent/lossless_context.py — JSONL-based lossless context subsystem
plugins/memory/atlas/ — MemoryProvider plugin wiring into Hermes lifecycle
tools/lossless_recall_tool.py — lossless_recall tool (search/describe/expand)
tools/memory_tool.py — extended with world_knowledge store target
tests/ — 183 fixture-backed tests covering all acceptance criteria:
- Every turn persisted with stable lineage IDs ✅
- Compaction builds retrievable summary DAG nodes with source references ✅
- 3 explicit recall operations (search/describe/expand) ✅
- Writes route to explicit stores (no mixed bucket) ✅
- 7 typed relation types with fixture-backed tests ✅
- test_recover_fact_from_compacted_context proves fact recovery without
re-injecting the full original transcript ✅
Fixes #985
|
2026-04-22 10:15:21 -04:00 |
|