summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
Diffstat (limited to 'docs')
-rw-r--r--docs/architecture.md4
-rw-r--r--docs/implementation-status.md11
2 files changed, 10 insertions, 5 deletions
diff --git a/docs/architecture.md b/docs/architecture.md
index 9bd7c62..64d4b06 100644
--- a/docs/architecture.md
+++ b/docs/architecture.md
@@ -49,7 +49,7 @@ where it conflicts with this section, the implemented contract is authoritative.
- `--data-dir <path>` is mandatory and guarded by a process-exclusive lock.
The prototype remains Windows x64/MSVC and single-process. Retention,
-encryption, pagination, multiple writers, automated summarization, and secure
+encryption, search pagination, multiple writers, automated summarization, and secure
physical erasure are outside v1.
# ProtoType Architecture v0.0.1
@@ -58,7 +58,7 @@ Tiny-ConvMem-MCP: FINAL TOOL INTERFACE SPECIFICATION (v1.0)
この定義は、システムと外部(LLMプロセス)との間の「契約書」となります。これで実装に着手できますね!
No. Tool Name カテゴリ 機能概要 入力引数 (Arguments) 出力値 (Response)
1 write_message SET/WRITE 新しいメッセージイベントをログファイルへ追記し、インデックスを更新する。 session_id, role, content, timestamp status: Enum(OK, ERROR)
-2 read_messages GET/READ 特定セッションIDの全メッセージを時系列順に読み出す。(フル履歴取得) session_id: 文字列 history: 配列(メッセージオブジェクト)
+2 read_messages GET/READ 特定セッションIDのメッセージを安定順序でページ取得する。 session_id、limit、cursor history、nextCursor
3 search_messages GET/READ クエリに基づいてログファイルから関連するメッセージを特定し、返す。(インデックス利用が前提) query, session_id (任意), limit: 整数 results: 配列(メッセージオブジェクト)
4 delete_message SET/MANAGE 特定のメッセージIDを指定してログから完全に削除し、インデックスをクリーンアップする。 message_id: 唯一ID, session_id (任意) status: Enum(OK, NOT_FOUND)
5 rebuild_index SET/MANAGE インデックスファイルを再生成し、データ整合性を回復させる。(メンテナンス) なし status: Enum(OK, ERROR)
diff --git a/docs/implementation-status.md b/docs/implementation-status.md
index 52c037b..d0f6d8f 100644
--- a/docs/implementation-status.md
+++ b/docs/implementation-status.md
@@ -35,6 +35,11 @@ P1のgram bucket hash table化後、Releaseの32KiB write p50は128.242msから5
1KiB 0.217ms、8KiB 1.299ms、32KiB 3.948ms、1MiB 34.988msで、payload増加に対する
二次的悪化がないことを確認しました。
+P2の大規模履歴試験では、1 session 1万件を10ページ・34.2msで全件取得し、restart
+152.0ms、rebuild 109.0ms、peak working set 18.1MiBでした。100 session 5万件では
+100ページ・159.0ms、restart 3.22s、rebuild 868.4ms、peak working set 48.9MiBで、
+重複・欠落はなく最大応答も210,173 bytes以下でした。
+
実行コマンド:
```powershell
@@ -88,7 +93,7 @@ ctest --preset windows-vs2026-asan
| metadata `tool_call_id` | ✅ 実装済 | ⬜ 未作成 | ⬜ 未実施 | round-tripと上限境界が未確認 |
| metadata `tags` | ✅ 実装済 | ✅ 作成済 | ✅ Debug/Release | 日本語tag検索をDomainで確認。32件/128 byte境界は未確認 |
| metadata `memory_tier` | ✅ 実装済 | ✅ 作成済 | ✅ Debug/Release | enumとMCP入力を確認。自動ライフサイクルは対象外 |
-| `read_messages` 全履歴取得 | ✅ 実装済 | ✅ 作成済 | ✅ Debug/Release | 1件/0件を確認 |
+| `read_messages` keyset pagination | ✅ 実装済 | ✅ 作成済 | ✅ Debug/Release | 既定100、最大1000、8MiB応答境界、restart/rebuild cursor継続 |
| timestamp、message_id安定順序 | ✅ 実装済 | ⬜ 未作成 | ⬜ 未実施 | 複数件・同一timestampの順序試験が必要 |
| `search_messages` content検索 | ✅ 実装済 | ✅ 作成済 | ✅ Debug/Release | ASCII大小文字とMCP検索を確認 |
| 日本語・tag検索 | ✅ 実装済 | ✅ 作成済 | ✅ Debug/Release | Domainで確認 |
@@ -136,7 +141,7 @@ ctest --preset windows-vs2026-asan
| write時索引更新 | ✅ 実装済 | ✅ MCP検索で確認 | ✅ Debug/Release | index allocation失敗のfault injectionなし |
| compaction後索引再構築 | ✅ 実装済 | 🟡 rebuild後health/readのみ | 🟡 一部実施済 | rebuild直後のsearch専用試験が必要 |
| `message_id -> entry` hash map | ⬜ 未実装 | ⬜ 未作成 | ⬜ 未実施 | 現在は配列の線形探索 |
-| `session_id -> message list` index | ⬜ 未実装 | ⬜ 未作成 | ⬜ 未実施 | 現在は全entry走査 |
+| `session_id -> message list` index | ✅ 実装済 | ✅ 作成済 | ✅ Debug/Release | open addressing session mapと安定順序vector |
| Unicode normalization/full case folding | ➖ v1対象外 | ➖ 該当なし | ➖ 該当なし | NFKC、非ASCII大文字小文字変換は未対応 |
## バイナリログと耐久性
@@ -239,7 +244,7 @@ ctest --preset windows-vs2026-asan
| background worker | ➖ 非採用 | 単一stdio・単一スレッドの初期実装に限定 |
| 自動要約、tier昇格、discard削除 | ➖ 対象外 | LLMライフサイクルは6 tool完成後の別機能 |
| encryption at rest | ➖ 対象外 | 鍵管理を含む別設計が必要 |
-| pagination | ➖ 対象外 | `read_messages` は現状フル履歴契約 |
+| search pagination | ➖ 対象外 | `read_messages`のみkeyset pagination対応 |
| 複数writer/network server | ➖ 対象外 | data directoryを単一プロセスが排他所有 |
| SSD/バックアップの安全消去 | ➖ 対象外 | filesystem compactionだけでは保証不能 |
| Linux/macOS | 🟡 backend実装・未保証 | POSIX file/lock/clock/random実装あり。CI・実機検証は未実施 |