|
1 | 1 | # Changelog |
2 | 2 |
|
3 | | -## v0.5.0 (2026-03-21) |
| 3 | +All notable changes to this project will be documented in this file. |
| 4 | + |
| 5 | +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). |
| 6 | + |
| 7 | +## [Unreleased] |
| 8 | + |
| 9 | +### Changed |
| 10 | +- Refactored README Quick Start to use factory functions. |
| 11 | +- Refactored public API: factory functions, type stubs, reduced code duplication. |
| 12 | + |
| 13 | +## [0.7.0] - 2026-03-22 |
4 | 14 |
|
5 | 15 | ### Added |
6 | | -- **Ontology Engine** — 동적 타입 계층, 속성 상속, 관계 제약 검증 (`OntologyRegistry`, `TypeDef`, `PropertyDef`, `RelationConstraint`) |
7 | | -- **Agent Activity Tracking** — 세션/tool call/decision/outcome 캡처 (`ActivityTracker`) |
8 | | -- **Intent-based Agent Search** — 6가지 검색 전략: similar_decisions, past_failures, related_rules, reasoning_chain, context_explore, general (`AgentSearch`, `SearchIntent`) |
9 | | -- **Intent 자동 추론** — 쿼리 키워드에서 intent 자동 판별 (`suggest_intent()`, `intent="auto"` 기본값) |
10 | | -- **Neo4j Backend** — native Cypher 그래프 순회, dual label, typed relationship, fulltext index |
11 | | -- **GraphTraversal Protocol** — `shortest_path()`, `pattern_match()`, `find_by_type_hierarchy()` |
12 | | -- **5축 Resonance Scoring** — context axis 추가 (세션 태그 Jaccard 유사도) |
13 | | -- **Node.properties** — 온톨로지 확장 속성 (dict[str, str]), 전 백엔드 지원 |
14 | | -- **Ontology 영속화** — `save_ontology()` / `load_ontology()`로 그래프에 저장/복원 |
15 | | -- **L3 강등 메커니즘** — 성공률 60% 미만 시 L3 → L2 강등 |
16 | | -- **Consolidation 페이지네이션** — limit=1000 제한 제거, 전체 노드 배치 처리 |
17 | | -- **link() 온톨로지 검증** — 관계 제약 위반 시 ValueError 발생 |
18 | | -- **Hebbian adaptive learning rate** — `delta / (1 + 0.02 × maturity)`로 초기 빠른 학습, 이후 안정화 |
19 | | -- **HybridSearch node_kinds 필터** — 검색 시 노드 타입 필터링 |
20 | | -- **기본 에이전트 온톨로지** — `build_agent_ontology()`로 knowledge/agent_activity 타입 트리 제공 |
21 | | -- **MCP 9개 tool 추가** (총 16개): agent_start_session, agent_log_action, agent_record_decision, agent_record_outcome, agent_find_similar, agent_get_reasoning_chain, agent_explore_context, ontology_define_type, ontology_query_schema |
22 | | -- **NodeKind 6개 추가**: tool_call, observation, reasoning, outcome, session, type_def |
23 | | -- **EdgeKind 5개 추가**: is_a, invoked, resulted_in, part_of, followed_by |
24 | | -- `docker-compose.yml` — Neo4j 개발 환경 |
25 | | -- `docs/COMPARISON.md` — 기존 Agent Memory 시스템 비교 분석 |
26 | | -- 185+ unit tests, 22 Neo4j integration tests |
| 16 | +- **Evidence Chain Assembly** — small LLM augmentation for multi-hop reasoning, HotPotQA Correctness 0.856 (+9.2%). |
| 17 | +- **Personalized PageRank (PPR) engine** — replaced spreading activation, multi-hop retrieval +28%. |
| 18 | +- **End-to-end QA benchmark** — HotPotQA 24-question suite for Cognee comparison (Correctness 0.784). |
| 19 | +- **Auto-ontology optimization** — HybridClassifier, batch LLM processing, EmbeddingRelation, PhraseExtractor. |
| 20 | + |
| 21 | +### Fixed |
| 22 | +- PhraseExtractor search noise — phrase filtering and optimization. |
27 | 23 |
|
28 | 24 | ### Changed |
29 | | -- `graph.agent_search()` 기본 intent가 `"auto"` (키워드 기반 자동 추론) |
30 | | -- `ResonanceWeights`에 `context` 필드 추가 (기본값 0.0, 하위호환) |
31 | | -- SQLite/PostgreSQL backend에 `properties_json` 컬럼 자동 마이그레이션 (v0.4 → v0.5) |
32 | | -- pyproject.toml: `neo4j`, `scale` extras 추가, version 0.5.0 |
| 25 | +- Removed `__pycache__` from repo and updated `.gitignore`. |
| 26 | + |
| 27 | +## [0.6.0] - 2026-03-21 |
| 28 | + |
| 29 | +### Added |
| 30 | +- **Auto-ontology construction** — LLM-based ontology building with search-optimized metadata generation. |
| 31 | +- **LLM classifier prompt optimization** — few-shot examples improved accuracy from 50% to 86%. |
| 32 | +- **FTS + embedding hybrid scoring** — S7 Auto+Embed achieved MRR 0.83. |
| 33 | +- **Kind/tag/search_keywords utilization** in search — FTS and ranking boost. |
| 34 | +- **Ontology auto-construction + benchmark framework + search engine improvements** (combined release). |
| 35 | + |
| 36 | +### Changed |
| 37 | +- Updated README with auto-ontology, benchmark results, and differentiation points. |
| 38 | + |
| 39 | +## [0.5.0] - 2026-03-21 |
| 40 | + |
| 41 | +### Added |
| 42 | +- **Ontology Engine** — dynamic type hierarchy, property inheritance, relation constraint validation (`OntologyRegistry`). |
| 43 | +- **Agent Activity Tracking** — session/tool call/decision/outcome capture (`ActivityTracker`). |
| 44 | +- **Intent-based Agent Search** — 6 search strategies: similar_decisions, past_failures, related_rules, reasoning_chain, context_explore, general (`AgentSearch`). |
| 45 | +- **Neo4j Backend** — native Cypher graph traversal, dual label, typed relationships, fulltext index. |
| 46 | +- **Auto-embedding** — automatic vector generation on `add()` / `search()`. |
| 47 | +- **Qdrant + MinIO + CompositeBackend** — storage separation by purpose. |
| 48 | +- **5-axis Resonance Scoring** — added context axis (session tag Jaccard similarity). |
| 49 | +- **GraphTraversal Protocol** — `shortest_path()`, `pattern_match()`, `find_by_type_hierarchy()`. |
| 50 | +- **Node.properties** — ontology extension attributes, supported across all backends. |
| 51 | +- **MCP 9 new tools** (total 16): agent session/action/decision/outcome tracking, ontology tools. |
| 52 | +- 6 new `NodeKind` values: tool_call, observation, reasoning, outcome, session, type_def. |
| 53 | +- 5 new `EdgeKind` values: is_a, invoked, resulted_in, part_of, followed_by. |
| 54 | +- `docker-compose.yml` for Neo4j dev environment. |
| 55 | +- `docs/COMPARISON.md` — comparison with existing agent memory systems. |
| 56 | +- 185+ unit tests, 22 Neo4j integration tests. |
| 57 | + |
| 58 | +### Fixed |
| 59 | +- MemoryBackend fuzzy search ineffectiveness bug + 12 edge case QA tests added. |
| 60 | +- Library distribution quality: `__version__`, `py.typed`, lazy imports, embedding extra. |
33 | 61 |
|
34 | | -## v0.4.0 (2026-03-21) |
| 62 | +## [0.4.0] - 2026-03-21 |
35 | 63 |
|
36 | 64 | ### Added |
37 | | -- **MCP Server** — 7개 tool (knowledge_search/add/link/reinforce/stats/export/consolidate) |
38 | | -- **SQLite Backend** — FTS5, recursive CTE, WAL mode |
39 | | -- **QA Test Suite** — Wikipedia 169건 + GitHub 368건 실제 데이터 검증 |
40 | | -- `synaptic-mcp` CLI entry point |
| 65 | +- **MCP Server** — 7 tools (knowledge search/add/link/reinforce/stats/export/consolidate). |
| 66 | +- **SQLite Backend** — FTS5, recursive CTE, WAL mode. |
| 67 | +- **QA Test Suite** — 169 Wikipedia + 368 GitHub real-data verification cases. |
| 68 | +- `synaptic-mcp` CLI entry point. |
41 | 69 |
|
42 | | -## v0.3.0 (2026-03-21) |
| 70 | +## [0.3.0] - 2026-03-21 |
43 | 71 |
|
44 | 72 | ### Added |
45 | | -- **Protocol 구현체** — LLM QueryRewriter, RegexTagExtractor, EmbeddingProvider |
46 | | -- **LRU Cache** — NodeCache with hit rate tracking |
47 | | -- **JSON Exporter** — 구조화된 JSON export |
48 | | -- **Node Merge** — 중복 노드 병합 + 엣지 재연결 |
49 | | -- **Find Duplicates** — 제목 유사도 기반 중복 탐지 |
| 73 | +- **Protocol implementations** — LLM QueryRewriter, RegexTagExtractor, EmbeddingProvider. |
| 74 | +- **LRU Cache** — NodeCache with hit rate tracking. |
| 75 | +- **JSON Exporter** — structured JSON export. |
| 76 | +- **Node Merge** — duplicate node merging with edge reconnection. |
| 77 | +- **Find Duplicates** — title similarity-based duplicate detection. |
50 | 78 |
|
51 | | -## v0.2.0 (2026-03-21) |
| 79 | +## [0.2.0] - 2026-03-21 |
52 | 80 |
|
53 | 81 | ### Added |
54 | | -- **PostgreSQL backend** — asyncpg + pgvector HNSW + pg_trgm + recursive CTE |
55 | | -- Vector search with cosine distance (pgvector) |
56 | | -- Trigram fuzzy matching with graceful ILIKE fallback |
57 | | -- Hybrid search method: FTS + fuzzy + vector merged results |
58 | | -- Connection pooling (asyncpg Pool, min=2, max=10) |
59 | | -- Configurable `embedding_dim` parameter |
60 | | -- `execute_raw()` for admin/testing SQL |
61 | | -- `ResonanceWeights` added to public exports |
62 | | -- Configurable consolidation thresholds (TTL, promotion access counts) |
63 | | -- Edge direction type safety: `Literal["both", "incoming", "outgoing"]` |
64 | | -- SQLite batch operations with rollback on error |
65 | | -- README.md, ARCHITECTURE.md, ROADMAP.md documentation |
66 | | -- GitHub Actions CI (Python 3.12/3.13) |
67 | | -- Integration test suite for PostgreSQL (13 tests) |
| 82 | +- **PostgreSQL backend** — asyncpg + pgvector HNSW + pg_trgm + recursive CTE. |
| 83 | +- Vector search with cosine distance (pgvector). |
| 84 | +- Trigram fuzzy matching with graceful ILIKE fallback. |
| 85 | +- Hybrid search: FTS + fuzzy + vector merged results. |
| 86 | +- Connection pooling (asyncpg Pool, min=2, max=10). |
| 87 | +- Configurable `embedding_dim` parameter. |
| 88 | +- `ResonanceWeights` added to public exports. |
| 89 | +- Configurable consolidation thresholds (TTL, promotion access counts). |
| 90 | +- README.md, ARCHITECTURE.md, ROADMAP.md documentation. |
| 91 | +- GitHub Actions CI (Python 3.12/3.13). |
| 92 | +- Integration test suite for PostgreSQL (13 tests). |
68 | 93 |
|
69 | 94 | ### Changed |
70 | | -- Consolidation constants now accept `__init__` parameters instead of module globals |
| 95 | +- Consolidation constants now accept `__init__` parameters instead of module globals. |
71 | 96 |
|
72 | | -## v0.1.0 (2026-03-21) |
| 97 | +## [0.1.0] - 2026-03-21 |
73 | 98 |
|
74 | 99 | ### Added |
75 | | -- Core models: Node, Edge, ActivatedNode, SearchResult, DigestResult |
76 | | -- Enums: NodeKind (9), EdgeKind (7), ConsolidationLevel (4) |
77 | | -- Protocols: StorageBackend, Digester, QueryRewriter, TagExtractor |
78 | | -- SynapticGraph facade: add, link, search, reinforce, consolidate, prune, decay |
79 | | -- Hybrid 3-stage search: FTS + fuzzy → synonym expansion → query rewrite |
80 | | -- Hebbian learning engine: co-activation reinforcement with anti-resonance |
81 | | -- 4-axis resonance scoring: relevance × importance × recency × vitality |
82 | | -- Memory consolidation cascade: L0→L1→L2→L3 with TTL and promotion |
83 | | -- Korean/English synonym map (38 groups) |
84 | | -- Markdown exporter |
85 | | -- MemoryBackend (dict-based, zero deps) |
86 | | -- SQLiteBackend (FTS5, recursive CTE, WAL mode) |
87 | | -- 93 unit tests, pyright strict, ruff clean |
| 100 | +- Core models: Node, Edge, ActivatedNode, SearchResult, DigestResult. |
| 101 | +- Enums: NodeKind (9), EdgeKind (7), ConsolidationLevel (4). |
| 102 | +- Protocols: StorageBackend, Digester, QueryRewriter, TagExtractor. |
| 103 | +- SynapticGraph facade: add, link, search, reinforce, consolidate, prune, decay. |
| 104 | +- Hybrid 3-stage search: FTS + fuzzy, synonym expansion, query rewrite. |
| 105 | +- Hebbian learning engine: co-activation reinforcement with anti-resonance. |
| 106 | +- 4-axis resonance scoring: relevance x importance x recency x vitality. |
| 107 | +- Memory consolidation cascade: L0 -> L1 -> L2 -> L3 with TTL and promotion. |
| 108 | +- Korean/English synonym map (38 groups). |
| 109 | +- Markdown exporter. |
| 110 | +- MemoryBackend (dict-based, zero dependencies). |
| 111 | +- SQLiteBackend (FTS5, recursive CTE, WAL mode). |
| 112 | +- 93 unit tests, pyright strict, ruff clean. |
0 commit comments