From 4bc721c3bf7589b519c5730d093f704ce56e3f09 Mon Sep 17 00:00:00 2001 From: tanaka takashi Date: Mon, 29 Jun 2026 21:43:54 +0900 Subject: refactor: MCP層をmcpc APIベースに刷新 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 独自JSON-RPC処理をmcpcへ置き換え - 各MCPツールを個別ソースへ分離 - 共通コンテキストと登録処理を整理 - mcpc互換修正と統合テストを更新 --- docs/architecture.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'docs/architecture.md') diff --git a/docs/architecture.md b/docs/architecture.md index edf2dfa..9bd7c62 100644 --- a/docs/architecture.md +++ b/docs/architecture.md @@ -3,7 +3,7 @@ 設計項目ごとの実装・テスト状況は [設計・実装・テスト状況一覧](implementation-status.md)を参照してください。 -`tiny-convmem-mcp` is a single-process Windows C17 MCP server backed by a +`tiny-convmem-mcp` is a single-process C17 MCP server backed by a durable append-only conversation log. The executable owns the stdio dispatch boundary and uses mcpc's bundled mjson parser through a local compatibility layer. @@ -19,7 +19,9 @@ MCP transport and tools -> domain contracts <- storage adapters - `src/domain` owns conversation and message concepts without depending on mcpc or a database. - `src/storage` implements the versioned binary log, recovery, snapshot, and - compaction using Win32 file APIs. + compaction through the platform-neutral `src/sys` API. +- `src/sys` owns UTF-8 path conversion, files, process locks, durable flush, + clocks, and random bytes. Its implementation is the only platform split. ## Implemented prototype contract (v1) @@ -29,7 +31,7 @@ The six public tools are `write_message`, `read_messages`, `search_messages`, where it conflicts with this section, the implemented contract is authoritative. - `write_message` creates the ULID and UTC millisecond timestamp. A PUT or DEL - succeeds only after `FlushFileBuffers` succeeds. + succeeds only after the platform durability flush succeeds. - Deletion is immediately invisible but remains a tombstone until synchronous compaction. `metadata.deleted` is not part of immutable Message data. - Metadata is limited to optional `tool_call_id`, `tags`, and `memory_tier`. -- cgit v1.2.3