summaryrefslogtreecommitdiff
path: root/docs/implementation-status.md
diff options
context:
space:
mode:
authortanaka takashi <isazaka@gmail.com>2026-07-01 00:11:08 +0900
committertanaka takashi <isazaka@gmail.com>2026-07-01 00:11:08 +0900
commita44fd4cf3a0c3d7ae33b7664341a0a9bff07aaaa (patch)
tree5c3152e7df8b16b207d6ebd69dfaf205765a8044 /docs/implementation-status.md
parente3db01cd487c5b666366885367c8bfff4a6a09da (diff)
大規模履歴向けread_messages pagination対応
Diffstat (limited to 'docs/implementation-status.md')
-rw-r--r--docs/implementation-status.md11
1 files changed, 8 insertions, 3 deletions
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・実機検証は未実施 |