From 66f0c474b980be03997b3d660327d6bdfb47c370 Mon Sep 17 00:00:00 2001 From: Ariel Memory Date: Sat, 4 Jul 2026 23:36:48 +0300 Subject: [PATCH] docs: update wiki references to WikiManager, fix test counts in docs - Replace FileWiki/UserWiki/AgentWiki with WikiManager in all docs - Update test count 338->372 in docs/index.md, docs/00-index.md, docs/changelog.md - Update file paths wiki/file_wiki.py -> wiki/manager.py - Add deprecation notes for old class names in headings --- docs/00-index.md | 6 +++--- docs/01-architecture.md | 6 +++--- docs/04-rag.md | 6 +++--- docs/08-wiki.md | 41 +++++++++++++++++++++-------------------- docs/12-testing.md | 2 +- docs/changelog.md | 2 +- docs/index.md | 4 ++-- docs/wiki/agent-wiki.md | 6 +++--- docs/wiki/file-wiki.md | 6 +++--- docs/wiki/overview.md | 18 +++++++++--------- docs/wiki/user-wiki.md | 6 +++--- 11 files changed, 52 insertions(+), 51 deletions(-) diff --git a/docs/00-index.md b/docs/00-index.md index 1f416201..a163bd27 100644 --- a/docs/00-index.md +++ b/docs/00-index.md @@ -52,11 +52,11 @@ python -m mcp_server --transport stdio | 05 | [Knowledge Graph](05-graph.md) | EpistemicGraph, TemporalGraph | | 06 | [Lifecycle](06-lifecycle.md) | Type-aware Forgetting, EmotionTrigger, Consolidation, Importance Scheduler | | 07 | [Hooks](07-hooks.md) | 24 hooks (12 user + 12 agent), type-aware gating | -| 08 | [Wiki](08-wiki.md) | FileWiki (.md files + FTS5), 14 types | +| 08 | [Wiki](08-wiki.md) | WikiManager (.md files + FTS5), 14 types | | 09 | [Features](09-features.md) | Auth, Backup, Dashboard, Audit, RateLimit, Secrets | | 10 | [Shared](10-shared.md) | Saga+Retry+Idempotency, Importance Scorer, Middleware, Embeddings | | 11 | [Operations](11-operations.md) | Transports, Health, Auth, Scheduler, Configuration | -| 12 | [Testing](12-testing.md) | pytest (338 tests + 25 Hypothesis), benchmarks, project structure | +| 12 | [Testing](12-testing.md) | pytest (372 tests + 25 Hypothesis), benchmarks, project structure | --- @@ -87,7 +87,7 @@ python -m mcp_server --transport http --port 8000 - **Version:** 1.0.0 - **MCP Tools:** 19 -- **Tests:** 338 passed (25 property-based Hypothesis) +- **Tests:** 372 passed (25 property-based Hypothesis) - **Python files:** 70 - **DB tables:** 23 - **Hooks:** 24 diff --git a/docs/01-architecture.md b/docs/01-architecture.md index 5c879ec3..5305e135 100644 --- a/docs/01-architecture.md +++ b/docs/01-architecture.md @@ -79,9 +79,9 @@ Message → L1 (buffer) | `epi_tags` | graph/epistemic.py | Epistemic node tags (fast JOIN lookup) | | `temporal_events` | graph/temporal.py | Temporal events | | `temporal_links` | graph/temporal.py | Temporal links | -| `user_wiki` | wiki/user_wiki.py | User wiki entries | -| `agent_wiki` | wiki/agent_wiki.py | Agent wiki entries | -| `wiki_index` | wiki/file_wiki.py | Wiki FTS5 index | +| `user_wiki` | wiki/manager.py | User wiki entries | +| `agent_wiki` | wiki/manager.py | Agent wiki entries | +| `wiki_index` | wiki/manager.py | Wiki FTS5 index | | `memory_conflicts` | rag/conflict.py | Memory conflicts | | `memory_kind_registry` | shared/memory_types.py | Typed memory categories | | `importance_audit` | lifecycle/importance_scheduler.py | Importance rescore audit log | diff --git a/docs/04-rag.md b/docs/04-rag.md index 4658da32..02f30229 100644 --- a/docs/04-rag.md +++ b/docs/04-rag.md @@ -564,7 +564,7 @@ chunks = rag._chunk_text("A" * 1000, max_size=500, overlap=100) ### Constructor ```python -MultiSourceRAG(rag: RAGEngine, wiki: FileWiki, cm: AsyncConnectionManager = None) +MultiSourceRAG(rag: RAGEngine, wiki: WikiManager, cm: AsyncConnectionManager = None) ``` ### `search()` @@ -597,9 +597,9 @@ The MCP tool `memory_search_rrf` uses MultiSourceRAG under the hood when `source ```python from rag.multi_source import MultiSourceRAG from rag.engine import RAGEngine -from wiki.file_wiki import FileWiki +from wiki.manager import WikiManager -ms = MultiSourceRAG(rag=RAGEngine(layer="user"), wiki=FileWiki(layer="user")) +ms = MultiSourceRAG(rag=RAGEngine(layer="user"), wiki=WikiManager(layer="user")) results = await ms.search("memory architecture", user_id="alice", limit=5) # Merged + deduplicated results from RAG and Wiki ``` diff --git a/docs/08-wiki.md b/docs/08-wiki.md index c27b0053..5ac12d52 100644 --- a/docs/08-wiki.md +++ b/docs/08-wiki.md @@ -1,8 +1,8 @@ -# Wiki — wiki/ (FileWiki + UserWiki/AgentWiki with FTS5) +# Wiki — wiki/ (WikiManager with FTS5) ## Shared Utilities (wiki/shared.py) -Common wiki logic extracted from agent_wiki.py, file_wiki.py, user_wiki.py: +Common wiki logic: | Function | Purpose | |----------|---------| @@ -15,9 +15,10 @@ Common wiki logic extracted from agent_wiki.py, file_wiki.py, user_wiki.py: | `build_count_query(table, user_id, wiki_type)` | COUNT query builder | | `format_search_result(row)` | FTS result formatter | -## FileWiki (`wiki/file_wiki.py`) — core module +## WikiManager (`wiki/manager.py`) — unified module -.md files = source of truth + SQLite FTS5 index. +Layer-based wiki: .md files = source of truth + SQLite FTS5 index. +Replaces former FileWiki, UserWiki, AgentWiki classes. ### FTS5 content-sync table @@ -65,11 +66,11 @@ wiki: external_dirs: ["/home/user/notes"] ``` -### FileWiki Methods +### WikiManager Methods ```python -from wiki.file_wiki import FileWiki -uw = FileWiki(layer="user") +from wiki.manager import WikiManager +uw = WikiManager(layer="user") # add() — creates .md + indexes (skips on MD5 match) await uw.add("diary", "Day 1", "Content", tags=["work"]) @@ -84,7 +85,7 @@ await uw.reindex_all() await uw.sync_external(["/home/user/notes"]) ``` -## UserWiki (`wiki/user_wiki.py`) — 7 types, 590 lines +## UserWiki (layer=user) (deprecated - use WikiManager) (`wiki/manager.py`) — 7 types, 590 lines Legacy module for user wiki with FTS5. Each type is a separate category. @@ -99,14 +100,14 @@ Legacy module for user wiki with FTS5. Each type is a separate category. | `retrospective` | Retrospective | ```python -from wiki.user_wiki import UserWiki -uw = UserWiki() +from wiki.manager import WikiManager +uw = WikiManager(layer='user') await uw.add("diary", "Day 1", "Started project", ["work"], 0.7) results = await uw.search("project") # FTS5 search await uw.sync_external(["/home/user/notes"]) # import .md ``` -### UserWiki — All public methods +### UserWiki (layer=user) (deprecated - use WikiManager) — All public methods | Method | Signature | Returns | Async | |--------|-----------|---------|-------| @@ -124,7 +125,7 @@ await uw.sync_external(["/home/user/notes"]) # import .md **WikiEntry dataclass:** `entry_id: int, user_id: str, wiki_type: str, title: str, content: str, tags: List[str], importance: float, created_at: float, updated_at: float` -## AgentWiki (`wiki/agent_wiki.py`) — 7 types, 590 lines +## AgentWiki (layer=agent) (deprecated - use WikiManager) (`wiki/manager.py`) — 7 types, 590 lines Legacy module for agent wiki. Lore, references, decision journal. @@ -139,14 +140,14 @@ Legacy module for agent wiki. Lore, references, decision journal. | `principle_log` | Principle journal | ```python -from wiki.agent_wiki import AgentWiki -aw = AgentWiki() +from wiki.manager import WikiManager +aw = WikiManager(layer='agent') await aw.add("decision_log", "DB Choice", "SQLite for simplicity", ["tech"], 0.8) results = await aw.search("SQLite") await aw.sync_external(["/path/to/lore"]) ``` -### AgentWiki — All public methods +### AgentWiki (layer=agent) (deprecated - use WikiManager) — All public methods | Method | Signature | Returns | Async | |--------|-----------|---------|-------| @@ -225,13 +226,13 @@ updated: 2026-06-21T22:00:00 Discussed the plan for the week. ``` -## FileWiki Methods (async) +## WikiManager Methods (async) ```python -from wiki.file_wiki import FileWiki +from wiki.manager import WikiManager -uw = FileWiki(layer="user") -aw = FileWiki(layer="agent") +uw = WikiManager(layer="user") +aw = WikiManager(layer="agent") # Write path = await uw.add("diary", "Day 1", "Started project", tags=["work"], importance=0.7) @@ -259,7 +260,7 @@ await uw.reindex_all() await uw.sync_external(["/home/user/notes"]) ``` -### FileWiki — All public methods +### WikiManager — All public methods | Method | Signature | Returns | Async | |--------|-----------|---------|-------| diff --git a/docs/12-testing.md b/docs/12-testing.md index 7bfc8bac..05b5ff9f 100644 --- a/docs/12-testing.md +++ b/docs/12-testing.md @@ -125,7 +125,7 @@ mcp-ariel-memory/ ├── graph/ # Epistemic + Temporal (async) ├── lifecycle/ # Forgetting + Emotion + Consolidation (async) ├── hooks/ # 24 hooks -├── wiki/ # FileWiki (.md + FTS5, async) +├── wiki/ # WikiManager (.md + FTS5, async) ├── features/ # Auth + Backup + Dashboard + Audit + RateLimit + Secrets (async) └── shared/ # ConnectionManager + Cache + Saga + Middleware + Embeddings (async) ``` diff --git a/docs/changelog.md b/docs/changelog.md index 9a5208f7..5ae918d6 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -19,7 +19,7 @@ - Health endpoints ### Testing -- 338 tests passing +- 372 tests passing - 25 property-based Hypothesis tests - CI on Python 3.10-3.13 - Type checking (mypy) diff --git a/docs/index.md b/docs/index.md index a50b5a92..424bba49 100644 --- a/docs/index.md +++ b/docs/index.md @@ -3,7 +3,7 @@ **Universal Two-Layer Memory MCP Server for AI agents** [![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) -[![Tests](https://img.shields.io/badge/tests-338 passed-brightgreen)](https://github.com/Cipher208/mcp-ariel-memory/actions) +[![Tests](https://img.shields.io/badge/tests-372 passed-brightgreen)](https://github.com/Cipher208/mcp-ariel-memory/actions) [![Python](https://img.shields.io/badge/python-3.10--3.13-blue)](https://www.python.org/) --- @@ -78,7 +78,7 @@ mcp-ariel-memory is a production-ready MCP server providing persistent, searchab ## Status - **Version:** 1.0.0 -- **Tests:** 338 passed (including 25 property-based Hypothesis tests) +- **Tests:** 372 passed (including 25 property-based Hypothesis tests) - **DB tables:** 23 - **Python:** 3.10–3.13 - **Platform:** Windows, Linux, macOS, Docker diff --git a/docs/wiki/agent-wiki.md b/docs/wiki/agent-wiki.md index 54ae1145..da376516 100644 --- a/docs/wiki/agent-wiki.md +++ b/docs/wiki/agent-wiki.md @@ -1,13 +1,13 @@ -# AgentWiki +# AgentWiki (deprecated - use WikiManager) Agent identity wiki for storing agent learning and evolution. ## Usage ```python -from wiki.agent_wiki import AgentWiki +from wiki.manager import WikiManager -aw = AgentWiki() +aw = WikiManager(layer='agent') # Add page await aw.add_page( diff --git a/docs/wiki/file-wiki.md b/docs/wiki/file-wiki.md index 8536e1d9..ba3f42ae 100644 --- a/docs/wiki/file-wiki.md +++ b/docs/wiki/file-wiki.md @@ -1,4 +1,4 @@ -# FileWiki +# WikiManager File-based wiki with .md files as source of truth. @@ -12,9 +12,9 @@ File-based wiki with .md files as source of truth. ## Usage ```python -from wiki.file_wiki import FileWiki +from wiki.manager import WikiManager -fw = FileWiki(layer="user") +fw = WikiManager(layer="user") # Add page fw.add_page( diff --git a/docs/wiki/overview.md b/docs/wiki/overview.md index e2fbc030..5cd5653b 100644 --- a/docs/wiki/overview.md +++ b/docs/wiki/overview.md @@ -8,36 +8,36 @@ Wiki system with .md files as source of truth and FTS5 full-text search. 14 types: spec, decision, error, code, note, guide, reference, tutorial, faq, changelog, architecture, api, example, concept -## FileWiki +## WikiManager File-based wiki with external folder sync: ```python -from wiki.file_wiki import FileWiki +from wiki.manager import WikiManager -fw = FileWiki(layer="user") +fw = WikiManager(layer="user") fw.add_page(title="Architecture", content="# Architecture\n...", wiki_type="spec") results = fw.search("architecture", limit=5) ``` -## UserWiki +## UserWiki (layer=user) (deprecated - use WikiManager) User-specific wiki pages: ```python -from wiki.user_wiki import UserWiki +from wiki.manager import WikiManager -uw = UserWiki() +uw = WikiManager(layer='user') await uw.add_page(user_id="u1", title="My Notes", content="...") ``` -## AgentWiki +## AgentWiki (layer=agent) (deprecated - use WikiManager) Agent identity wiki: ```python -from wiki.agent_wiki import AgentWiki +from wiki.manager import WikiManager -aw = AgentWiki() +aw = WikiManager(layer='agent') await aw.add_page(title="Learning", content="...") ``` diff --git a/docs/wiki/user-wiki.md b/docs/wiki/user-wiki.md index 8d9336a3..eb5206cd 100644 --- a/docs/wiki/user-wiki.md +++ b/docs/wiki/user-wiki.md @@ -1,13 +1,13 @@ -# UserWiki +# UserWiki (deprecated - use WikiManager) User-specific wiki pages stored in database. ## Usage ```python -from wiki.user_wiki import UserWiki +from wiki.manager import WikiManager -uw = UserWiki() +uw = WikiManager(layer='user') # Add page await uw.add_page(