Commit Graph

1 Commits

Author SHA1 Message Date
Alexander Whitestone
75e31bee27 feat(atlas): lossless context + memory subsystem from hermes-lcm and gbrain
All checks were successful
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