v3.0.0 — Full SDK fork, L5 knowledge graph, reasoning model compatibility
v2.0.0 → v3.0.0 — Full Upgrade Overview
A full architecture evolution. From patched dependency to owned system. From text summaries to living knowledge graph.
What v2 established (v2.0.0 + v2.1.0)
- L5 in-process knowledge graph writer — entities extracted into Qdrant during System2 digest
- L6 schemas + L7 intentions — schemas and intentions written to Kuzu graph with cross-domain collision detection
- 1024-d embeddings — bge-large-en-v1.5 (upgraded from 384-d)
- Hybrid v2 reader — better retrieval than the legacy pipeline
- Dashboard real graph counts — L5/L6/L7 counts from live Kuzu data
- Runtime layout consolidation —
HYATLAS_HOME(~/.hyatlas) root, config CLI, migration helpers - Multi-key LLM resilience —
llm.api_keysprobed at startup, first valid key wins
What v3 evolves (new in v3.0.0)
Architecture
- Full SDK fork. Entire hy-memory 1.2.20 SDK (70 files, 42K+ lines) forked into
src/hyatlas_memory/core/. Zero external pip dependency. Every line owned and maintained by HyAtlas. - 23 monkey-patches → 13 first-class integrations. No more runtime patching of upstream code. Native modules. Clean, maintainable, owned.
- Unified runtime layout. Scattered paths (7+ roots) consolidated into
HYATLAS_HOME(~/.hyatlas). Config CLI:hyatlas init,config show,config model,config validate.
New Features
- L5 Knowledge Graph. In-process entity/relation extraction → Kuzu graph database. Upstream hy-memory doesn't have this (their "L5" is just text summaries). Live endpoint at
/api/v1/graph. Verified: 1,444 nodes, 6,374 relations. - Emotion-Aware Memory. LLM-based valence/arousal scoring on every write. Emotionally significant memories resist time decay. Verified:
valence=0.95, arousal=0.9. - Auto-forgetting. Recency scoring + archival of stale memories.
Reliability Fixes
- Reasoning model compatibility. Think-block parsing for MiniMax-M3, DeepSeek-R1, o1-style models. Handles closed AND unclosed/truncated think blocks.
agent_max_tokensraised 1024 → 8192. - Kuzu WAL checkpoint.
close()now callsCHECKPOINT + db.close()instead of just nulling references. Upstream has the same bug. Verified: 0KB WAL after shutdown (was 7MB). - VDB circuit breaker. Protects against Qdrant failures. State: CLOSED (healthy).
- L1_RAW rolling delete + dedup. Prevents unprocessed raw points from accumulating.
- Multi-key LLM rotation.
llm.api_keyslist probed at startup, first valid key wins.
Model
- Switched to deepseek-v4-flash. Non-reasoning model, clean JSON output, zero parse errors. Previous: MiniMax-M3 (reasoning model requiring think-block workarounds).
CI
- Ruff lint clean. Per-file-ignores for forked upstream code, our code fixed properly. All three Python versions (3.10/3.11/3.12) pass.
Key Numbers
- 85 files changed, +29,144 lines
- 1,444 graph nodes, 6,374 relations
- 47 tests passing (33 offline + 14 server-dependent)
- 0 WAL bytes after shutdown
- 0 JSON parse errors with new model
Full changelog: https://github.com/tuancookiez-hub/HyAtlas-Memory/blob/main/CHANGELOG.md
