diff options
Diffstat (limited to 'src/storage/store.c')
| -rw-r--r-- | src/storage/store.c | 23 |
1 files changed, 23 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++; |
