This commit is contained in:
vbunjevac 2026-05-14 08:52:22 +08:00 committed by GitHub
commit 1663da16b9
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -115,11 +115,18 @@ class Message(Record):
return output_text(self.output(), ai_label, human_label)
def to_dict(self):
# Strip binary RawMessage content (e.g. base64 images) before disk serialization.
# raw_content blobs are for single-session LLM use only — persist only the preview text.
# Without this, chat.json bloats to MBs and reloaded chats re-send images on every LLM call.
content = self.content
if _is_raw_message(content):
preview = content.get("preview", "") # type: ignore
content = preview if preview else "<Image content — not persisted>"
return {
"_cls": "Message",
"id": self.id,
"ai": self.ai,
"content": self.content,
"content": content,
"summary": self.summary,
"tokens": self.tokens,
}