diff options
| author | tanaka takashi <isazaka@gmail.com> | 2026-07-04 16:22:35 +0900 |
|---|---|---|
| committer | tanaka takashi <isazaka@gmail.com> | 2026-07-04 16:22:35 +0900 |
| commit | eb5e9d9f37bda7d78f69614da70402357794168a (patch) | |
| tree | 608dd61d8b4ca989df505e9777a8b95f4f17b06d /src/storage/store.h | |
| parent | 1a6a2e7f8572415d435c056dc9947d6d08eb1862 (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.h | 19 |
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); |
