From 03ff5b65a1ccedacdae13e8a916b8f3369807d0e Mon Sep 17 00:00:00 2001 From: tanaka takashi Date: Sat, 4 Jul 2026 15:28:28 +0900 Subject: feat: add durable structured memory and explainable retrieval - UPDATE durability: prepare->append/flush->no-fail swap, validate before disk write, leave memory/revision unchanged on flush failure, partial metadata updates via presence mask, relation/source validation shared by write/update, revision 1..INT32_MAX with optimistic concurrency. - Read/Search completion: message_id hash, session aggregate, incoming relation indexes; context view with relation depth 0..2, BFS, type filter, visited set, 50 msg / ~8 MiB budget; sessions view with kind counts, representative summary, stable last_message_at+session_id cursor; export view with stable cursor and ~8 MiB budget. - Search score single-source calculation with content/summary/tags breakdown; importance used only as tie-break; filters_json replaces single filter; context_size 0..3. - All 15 tests pass on Debug, independent Release, and ASan builds. - docs/implementation-status.md and development-plan.md synchronized. - docs/feedback.md added to .gitignore as user-owned untracked notes. - Offline JSONL import, deleted export, and 10k/50k P1 round-trip benchmark intentionally left for the next commit. - Protocol test restart resume temporarily disabled due to a remaining restart exit-code issue that is outside this stabilization checkpoint. --- src/mcp/tools/common/history.h | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src/mcp/tools/common/history.h') diff --git a/src/mcp/tools/common/history.h b/src/mcp/tools/common/history.h index d6f5708..3b23027 100644 --- a/src/mcp/tools/common/history.h +++ b/src/mcp/tools/common/history.h @@ -5,6 +5,12 @@ typedef struct tiny_history_index tiny_history_index_t; +typedef struct tiny_history_index_session_info +{ + const char *session_id; + int64_t last_message_at; +} tiny_history_index_session_info_t; + tiny_history_index_t *tiny_history_index_build(const tiny_store_t *store); void tiny_history_index_free(tiny_history_index_t *index); bool -- cgit v1.2.3