The mouth delivers media events as a typed line #2
Loading…
Reference in a new issue
No description provided.
Delete branch "heimdall/mouth-media-line"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
m.image/m.file/m.audio/m.videoreached Personas as a bare filename;content.urlwas dropped.Change.
bodyTextintools/persona-matrix-mouth.mjsrenders a media event as[image filename="cat.png" mime=image/png size=2048 url=mxc://server/id]plus its caption (whenfilenameis set and differs frombody). Applied to the deliverytextand to context lines. Encrypted attachments namefile.urland carryencrypted; the key is never read. Every field is validated (mxc grammar, mime grammar, safe-int size, JSON-quoted filename), so a hostile filename cannot forge a line. Wire v1 unchanged (text is already a string in the tuple).Fetch: not done, on purpose. A Persona turn is one tool-less connector call (Huginn
crates/mind-body/src/persona.rs:13,:301) whose input is a singleInputItem::UserText(connector.rs:73); ModelConnector'sInputItemhas only UserText/AssistantText/ToolCall/ToolResult/ReasoningState (schemas/transport_invocation.json), so no image variant and no file-read tool. Nothing in a Persona turn could use a downloaded file. Evidence is from the voidbot source mirror, which is stale; confirm against current Huginn/ModelConnector. A Self run (full session) could read a path, so a fetch-on-demand for Self runs is a separate follow-up.Tests. 107 -> 113 passing in
node --test tests/*.test.mjs(6 newmedia_*tests: line shape, caption, text untouched, hostile/encrypted/secret, byte cap, delivery+context with no media request and no token). Not run: .NETBifrost.Web.Tests, live homeserver.Not merged, not deployed.
🤖 Generated with Claude Code
View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.Merge
Merge the changes and update on Forgejo.Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.