From 58843aae16099c7b4215871918b3f50eca128298 Mon Sep 17 00:00:00 2001 From: Ariel Memory Date: Mon, 6 Jul 2026 05:27:41 +0300 Subject: [PATCH] docs: update CHANGELOG, README, ROADMAP for v1.3.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - CHANGELOG: add v1.3.0 entry (security, architecture, testing, quality) - README: update test count 372→499 - ROADMAP: mark tool rename done, 38/65 items --- CHANGELOG.md | 39 +++++++++++++++++++++++++++++++++++++++ README.md | 6 +++--- ROADMAP.md | 6 +++--- 3 files changed, 45 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 30313e55..67e89381 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,45 @@ All notable changes to mcp-ariel-memory are documented here. Format follows [Keep a Changelog](https://keepachangelog.com/). +## [1.3.0] - 2026-07-05 + +### Security +- SQL injection findings (150): all **false positives** — standard SQLite parameterized query pattern. Added `SKY-D211` to skylos ignore list. + +### Architecture +- **RAG engine split** — `rag/engine.py` (561 lines) split into 3 modules: + - `rag/engine.py` (224 lines) — ingest, relations, counts + - `rag/search.py` (239 lines) — FTS5, binary, hybrid, RRF search + - `rag/chunking.py` (60 lines) — text chunking with overlap +- **Tool rename** — `memory_search_rrf` → `memory_search` (backward-compatible alias kept) + +### Fixed +- **N+1 query** in `_search_rrf` — batched page lookups with `IN` clause instead of N individual queries. +- **Embedding dedup** — extracted `_insert_page` helper from `ingest_file`/`ingest_text`. +- **Router simplification** — extracted `_match_route` helper from `route()`. +- **DB_NAME constant** — extracted `shared/constants.py`, replaced 121 occurrences of `"memory.db"`. +- **Saga complexity** — extracted `_compensate_inner_saga` and `_compensate_step` from `_compensate` (CCN 22→11). +- **Emotion trigger** — extracted 5 helper methods from `should_save` (CCN 20→9). + +### Testing +- **499 tests** (was 338, +161 new tests) +- **Coverage: 61% → 77%** (+16%) + - `shared/saga.py`: 58% → 79% + - `shared/saga_crypto.py`: 37% → 89% + - `shared/read_only.py`: 57% → 86% + - `shared/migrations.py`: 39% → 81% + - `mcp_server/tools_layer.py`: 15% → 53% +- **All 25 MCP tools** tested (e2e + unit) +- **24 hooks** verified through tool dispatch +- **E2E tests** for full tool logic path (remember → L1 → episode → L4) +- New test files: `test_saga_unit.py`, `test_middleware_unit.py`, `test_embeddings_unit.py`, `test_tools_unit.py`, `test_tools_e2e.py`, `test_tools_ops_e2e.py`, `test_saga_crypto_coverage.py`, `test_read_only_coverage.py`, `test_migrations_coverage.py` + +### Quality +- **Skylos Grade: F (40) → A+ (100)** — SQL injection false positives suppressed via config +- **Repowise Hotspot: 3.88 → 4.37** (+0.49) +- **Repowise Average: 7.55 → 7.82** (+0.27) +- Quality issues: 437 → 393 (-44) + ## [1.2.0] - 2026-07-04 ### Security diff --git a/README.md b/README.md index 911b7d8f..d3c42a83 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # mcp-ariel-memory -> **Give your AI agents real memory** — episodic recall, knowledge graphs, hybrid search, and envelope encryption in a single MCP server. 19 tools. 4-layer hierarchy. 372 tests. +> **Give your AI agents real memory** — episodic recall, knowledge graphs, hybrid search, and envelope encryption in a single MCP server. 19 tools. 4-layer hierarchy. 499 tests. [![CI](https://github.com/Cipher208/mcp-ariel-memory/actions/workflows/ci.yml/badge.svg)](https://github.com/Cipher208/mcp-ariel-memory/actions/workflows/ci.yml) [![codecov](https://img.shields.io/codecov/c/github/Cipher208/mcp-ariel-memory?logo=codecov&logoColor=white)](https://codecov.io/gh/Cipher208/mcp-ariel-memory) @@ -64,7 +64,7 @@ graph TD | **Wiki** | 14 types, .md files as source of truth, FTS5 | None | | **24 hooks** | Intercept operations at every stage | 0 | | **Encryption** | libsodium secretbox (keychain-first) | Usually none | -| **Tests** | 372 (25 property-based) | — | +| **Tests** | 499 (25 property-based) | — | | **Dashboard** | Real-time HTML dashboard | — | ### Who needs this? @@ -293,7 +293,7 @@ Full documentation with API reference, architecture diagrams, and guides: ## Testing ```bash -# Run all tests (372 passed, 25 property-based) +# Run all tests (499 passed, 25 property-based) pytest tests/ -v # Run with parallel execution diff --git a/ROADMAP.md b/ROADMAP.md index 68f486de..a06439c6 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -36,7 +36,7 @@ ## 4. Bug Fixes & Cleanup - [x] **Deprecated API cleanup** — removed `search_rrf()`, `search_binary()` (A7) -- [ ] **Tool rename** — `memory_search_rrf` → `memory_search` (after MCP Registry update) +- [x] **Tool rename** — `memory_search_rrf` → `memory_search` (after MCP Registry update) - [ ] **CLI improvements** — add `--version` flag, improve help messages - [ ] **Dashboard** — add live updates (WebSocket), improve UI @@ -161,5 +161,5 @@ --- -**Completed:** 37/65 items -**Last updated:** 2026-07-04 +**Completed:** 38/65 items +**Last updated:** 2026-07-05