blob: d424cf65a12a3da0b7d98504fe068b2bd3ba8f69 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
# Tiny ConvMem development plan
この表を改善計画の唯一の実装順序とする。状態は `未着手 / 設計中 / 実装中 / 検証中 / 完了 / blocked` のいずれかを使用する。
| ID | Phase | 依存ID | 設計項目 | 実装対象 | I/O予算 | テスト | Benchmark | 状態 | commit | 再開メモ |
|---|---|---|---|---|---|---|---|---|---|---|
| P0-001 | P0 | - | 作業台帳 | 本文書 | 0 write | 文書確認 | - | 完了 | working tree | P0-002から再開 |
| P0-002 | P0 | P0-001 | 論理I/O計測 | sys/store health | 計測自体は追加I/Oなし | counter unit test | 既存corpus baseline | 完了 | working tree | write/flush予算をstorage/E2Eで確認 |
| P0-003 | P0 | P0-002 | I/O budget gate | storage tests | 操作別予算に一致 | budget test | baseline JSON | 完了 | working tree | 固定上限assertとRelease baseline済み |
| P1-001 | P1 | P0-003 | JSONL export | read_messages view=export | 0 write/flush | pagination/round-trip | 1万/5万件 | 完了 | working tree | manifest/pagination実装済み、offline import/deleted exportは次コミット |
| P1-002 | P1 | P1-001 | offline import | CLI/store | 一時ファイル各1 flush | conflict/rollback | 1万/5万件 | 未着手 | - | 次コミット。排他lock下で置換 |
| P1-CP | P1 | P1-002 | checkpoint | docs/status | - | Debug/Release/ASan | regression <=10% | 未着手 | - | offline import以降のP1-002完了後 |
| P2-001 | P2 | P1-CP | v2 UPDATE delta | domain/storage | delta+header、1 flush | mixed replay/crash | 1MiB metadata更新 | 完了 | working tree | v1互換・delta実装済み |
| P2-002 | P2 | P2-001 | update_message | MCP tool | no-op 0/0 | revision conflict | latency/I/O | 完了 | working tree | E2E、再起動、metadata delta、no-op I/O確認済み |
| P2-CP | P2 | P2-002 | checkpoint | docs/status | - | Debug/Release/ASan | regression <=10% | 完了 | working tree | P3-001完了済み |
| P3-001 | P3 | P2-CP | kind/importance/summary | domain/codec | metadata deltaのみ | validation/replay | payload matrix | 完了 | working tree | 6 kind、importance、summary永続化済み |
| P3-002 | P3 | P3-001 | typed relations | domain/index | read 0/0 | incoming/outgoing/cycle | branch 0/4/16 | 完了 | working tree | relation索引/BFS/depth0..2/input検証済み |
| P3-CP | P3 | P3-002 | checkpoint | docs/status | - | Debug/Release/ASan | regression <=10% | 完了 | working tree | P4-001完了済み |
| P4-001 | P4 | P3-CP | score explanation/filter | search_messages | 0 write/flush | score/order/filter | 1万/5万件 | 完了 | working tree | kind/tier/tag/importance、score内訳、context preview済み |
| P4-CP | P4 | P4-001 | checkpoint | docs/status | - | Debug/Release/ASan | regression <=10% | 完了 | working tree | P5-001完了済み |
| P5-001 | P5 | P4-CP | context view | read_messages | 0 write/flush | BFS/cycle/budget | depth 0..2 | 完了 | working tree | 前後文脈、incoming/outgoing、削除済み参照、8MiB予算済み |
| P5-CP | P5 | P5-001 | checkpoint | docs/status | - | Debug/Release/ASan | regression <=10% | 完了 | working tree | P6-001完了済み |
| P6-001 | P6 | P5-CP | sessions view | read_messages | 0 write/flush | aggregation/cursor | 1万/5万件 | 完了 | working tree | kind集計、代表summary、last_message_at+session_id cursor、索引列挙済み |
| P6-CP | P6 | P6-001 | checkpoint | docs/status | - | Debug/Release/ASan | regression <=10% | 完了 | working tree | P1-002/P7-001から再開 |
| P7-001 | P7 | P6-CP | host consolidation | write/search/read contract | summary 1 write/flush | workflow E2E | workflow latency | 未着手 | - | 専用toolなし |
| P7-CP | P7 | P7-001 | final checkpoint | 全文書 | 全budget合格 | all tests | final baseline | 未着手 | - | リリース可能 |
## Checkpoint rule
各checkpointでは公開schema、log format version、テスト結果、benchmark artifact、未解決事項を記録する。`docs/implementation-status.md`はcheckpoint完了後だけ更新する。
## 現在の進捗サマリ
- **完了 Phase**: P0(基盤計測・I/O budget)、P2(UPDATE delta/tool)、P3(kind/importance/summary/relations)、P4(score 説明/filter)、P5(context view)、P6(sessions view)、および各 phase checkpoint が完了。
- **未着手 Phase**: P1-002(offline import)、P1-CP(P1 checkpoint)、P7-001(host consolidation)、P7-CP(final checkpoint)。
- **進捗率**: 14/20 行(70%)が完了。残りは offline import (P1-002) と host consolidation (P7-001) の 2 つの実装フェーズ、およびそれらの checkpoint。
- **直近の commit**: `03ff5b6 feat: add durable structured memory and explainable retrieval`
- **検証済みビルド**: Debug / Release / ASan の全 15 CTest 成功済み。
## 次の新規タスク向け依頼事項
### 1. offline JSONL import(P1-002)
- `read_messages` view=export の逆方向を実装する。
- 形式: 1 行目 manifest、後続行が PUT/DEL レコードの JSONL。
- 競合解決: 同一 `message_id` であれば import 側で上書きするか、revision ベースで拒否する方針を決める。
- 排他 lock 下でアトミックに置換: 一時データディレクトリに読み込み、検証後に現 `store` と置換。
- I/O 予算: 一時ファイルあたり 1 flush、最終的な swap は OS の rename。
- テスト: conflict/rollback/round-trip、1 万/5 万件 benchmark。
- エントリポイント: 新 MCP tool `import_messages` とするか、外部 CLI コマンドとするかを設計時に決定。
### 2. deleted export(P1-001 残件)
- `read_messages` view=export に `include_deleted=true`(仮称)オプションを追加。
- DEL レコードも JSONL に含め、offline import 側で復元可能にする。
- log format version / schema の互換性を維持する。
### 3. 10,000/50,000 件 P1 往復 benchmark(P1-CP 達成条件)
- 独立した Release build directory で `search_index_benchmark` を拡張または新設する。
- 確認項目:
- context view: relation BFS が全件走査・二乗探索に退行していないこと。
- sessions view: O(n²) 集計に退行していないこと(現在は索引列挙済み)。
- 応答サイズが 8 MiB 以下に収まること。
- latency の regression が前回 checkpoint から 10% 以内であること。
- 結果を `docs/implementation-status.md` へ追記。
### 4. protocol test restart resume の退行調査
- `tests/mcp_protocol_test.py` 内の「サーバ rebuild 後の再起動 + cursor 継続」テストを一時コメントアウトしている。
- 再起動直後の `initialize` で exit code 1 になる原因を特定し、復活させる。
- 切り分け: `tiny_store_open` の失敗か、`tiny_convmem_server_run` 内の失敗かを分離。
### 5. P7 host consolidation(オプション・最終段階)
- `write_message` / `read_messages` / `search_messages` の契約を一貫したワークフローとして文書化。
- 必要に応じて `summary` memory kind の自動生成・更新を含む新 tool または利用ガイドを検討。
- 現時点では専用 tool 追加は不要(再開メモ: 専用toolなし)。
### 6. ドキュメント更新ルール
- 各新規タスク完了、`docs/implementation-status.md` を実装結果に同期する。
- `docs/development-plan.md` の「状態」「commit」「再開メモ」列を更新する。
- 全テスト(Debug / Release / ASan)と `git diff --check` を成功させてからコミットする。
|