feat(claw): image attachments on chat messages

A chat message may carry inline images: the messages route checks the
budget (5 MiB decoded per image, eight a message) and the dispatch
copies the bytes into the attachment store, so the replay streams ids
and media types over SSE, never megabytes. The turn's input carries
the inline image blocks the providers take, base64 verbatim — the
session checkpoint holds what the model saw.
This commit is contained in:
vhaudiquet committed 2026-10-26 22:52:41 -05:00
1 parent 5405e3c5b0
commit 1323e69dc4
8 files changed
+628 -51

No files matched your search

+3
View File
@@ -73,6 +73,9 @@ tokio-stream = { workspace = true }
rusqlite = { version = "0.40", features = ["bundled"] }
# RFC3339 parsing for schedule_task's `at`
time = { version = "0.3", default-features = false, features = ["parsing"] }
# Inbound chat images ride base64; the dispatch decodes them into the
# attachment store
base64 = "0.22"
[dev-dependencies]
tempfile = "3"