summaryrefslogtreecommitdiff
path: root/src/storage
diff options
context:
space:
mode:
authortanaka takashi <isazaka@gmail.com>2026-07-04 18:44:17 +0900
committertanaka takashi <isazaka@gmail.com>2026-07-04 18:44:17 +0900
commit751999a82b8854ef5231e0ded5fe022b1ea5d8ff (patch)
treed09653d2955f0f5354e9ef76f9bc550fb8f0732a /src/storage
parent21dda921887da2515d1eba0d3d26e2036bf9f7f7 (diff)
Harden backup import and restore coverage
Diffstat (limited to 'src/storage')
-rw-r--r--src/storage/store.c23
-rw-r--r--src/storage/store.h3
2 files changed, 26 insertions, 0 deletions
diff --git a/src/storage/store.c b/src/storage/store.c
index 060c6f6..e7ade28 100644
--- a/src/storage/store.c
+++ b/src/storage/store.c
@@ -1963,6 +1963,29 @@ tiny_store_health(const tiny_store_t *store, tiny_store_health_t *health)
}
for (index = 0; index < store->entry_count; ++index)
{
+ const tiny_message_t *message = &store->entries[index].message;
+ size_t item;
+ health->memory_entry_bytes += sizeof(store->entries[index]);
+ health->memory_body_bytes += message->session_id ? strlen(message->session_id) + 1U : 0;
+ health->memory_body_bytes += message->content ? strlen(message->content) + 1U : 0;
+ health->memory_metadata_bytes
+ += message->metadata.tool_call_id ? strlen(message->metadata.tool_call_id) + 1U : 0;
+ health->memory_metadata_bytes
+ += message->metadata.summary ? strlen(message->metadata.summary) + 1U : 0;
+ health->memory_metadata_bytes
+ += message->metadata.relation_count * sizeof(*message->metadata.relations);
+ for (item = 0; item < message->metadata.tag_count; ++item)
+ {
+ health->memory_metadata_bytes += strlen(message->metadata.tags[item]) + 1U;
+ }
+ health->memory_metadata_bytes
+ += message->metadata.tag_count * sizeof(*message->metadata.tags);
+ health->memory_metadata_bytes
+ += message->metadata.source_count * sizeof(*message->metadata.source_message_ids);
+ for (item = 0; item < message->metadata.source_count; ++item)
+ {
+ health->memory_metadata_bytes += strlen(message->metadata.source_message_ids[item]) + 1U;
+ }
if (store->entries[index].deleted)
{
health->deleted_messages++;
diff --git a/src/storage/store.h b/src/storage/store.h
index adeae35..9efb02a 100644
--- a/src/storage/store.h
+++ b/src/storage/store.h
@@ -45,6 +45,9 @@ typedef struct tiny_store_health
uint64_t last_sequence;
uint64_t update_records;
uint64_t dead_bytes;
+ uint64_t memory_entry_bytes;
+ uint64_t memory_body_bytes;
+ uint64_t memory_metadata_bytes;
uint64_t write_bytes;
uint64_t write_calls;
uint64_t flush_calls;