summaryrefslogtreecommitdiff
path: root/src/storage/store.h
diff options
context:
space:
mode:
authortanaka takashi <isazaka@gmail.com>2026-07-04 16:22:35 +0900
committertanaka takashi <isazaka@gmail.com>2026-07-04 16:22:35 +0900
commiteb5e9d9f37bda7d78f69614da70402357794168a (patch)
tree608dd61d8b4ca989df505e9777a8b95f4f17b06d /src/storage/store.h
parent1a6a2e7f8572415d435c056dc9947d6d08eb1862 (diff)
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
Diffstat (limited to 'src/storage/store.h')
-rw-r--r--src/storage/store.h19
1 files changed, 19 insertions, 0 deletions
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);