From eb5e9d9f37bda7d78f69614da70402357794168a Mon Sep 17 00:00:00 2001 From: tanaka takashi Date: Sat, 4 Jul 2026 16:22:35 +0900 Subject: feat(P1-002): add offline JSONL import via import_messages MCP tool - implement `import_messages` MCP tool parsing manifest + PUT/DEL JSONL - atomic store replacement under lock with overwrite/reject conflict policies - add `include_deleted` to read_messages export view for full round-trip - register new tool in MCP registry and update protocol test expectations - update docs/development-plan.md and docs/implementation-status.md Debug/Release/ASan 15/15 CTest pass --- src/storage/store.h | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'src/storage/store.h') diff --git a/src/storage/store.h b/src/storage/store.h index 3ddd24d..adeae35 100644 --- a/src/storage/store.h +++ b/src/storage/store.h @@ -77,7 +77,26 @@ tiny_store_status_t tiny_store_update(tiny_store_t *store, const tiny_message_patch_t *patch, tiny_message_t *updated, bool *changed); + +typedef enum tiny_import_policy +{ + TINY_IMPORT_OVERWRITE = 0, + TINY_IMPORT_REJECT +} tiny_import_policy_t; + +typedef struct tiny_import_record +{ + bool deleted; + tiny_message_t message; +} tiny_import_record_t; + tiny_store_status_t tiny_store_rebuild(tiny_store_t *store, tiny_rebuild_report_t *report); +tiny_store_status_t tiny_store_import(tiny_store_t *store, + const tiny_import_record_t *records, + size_t record_count, + tiny_import_policy_t policy, + size_t *imported_count, + size_t *rejected_count); void tiny_store_health(const tiny_store_t *store, tiny_store_health_t *health); size_t tiny_store_entry_count(const tiny_store_t *store); -- cgit v1.2.3