Attachment sending #11
Labels
No labels
Compat/Breaking
Kind/Bug
Kind/Documentation
Kind/Enhancement
Kind/Feature
Kind/Security
Kind/Testing
Priority
Critical
Priority
High
Priority
Low
Priority
Medium
Reviewed
Confirmed
Reviewed
Duplicate
Reviewed
Invalid
Reviewed
Won't Fix
Status
Abandoned
Status
Blocked
Status
Need More Info
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Depends on
#1 Replace placeholder page with Svelte 5 + Vite frontend
lyssieth/sermones
#4 Implement SermonErrorStore + ErrorsPanel UI surface
lyssieth/sermones
#8 Composer
lyssieth/sermones
Reference
lyssieth/sermones#11
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
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?
Send attachments from the composer.
Attachment/AttachmentKind/AttachmentPayloadexist insermones-core(src/llm/attachment.rs, re-exported fromllm/mod.rs:9) andBlock::Attachment(Attachment)is a message-block variant (src/llm/message.rs:84) — but nothing constructs one, moves one across IPC, or maps one into a provider request. The blocker (#8, composer) has landed.Status: not started. Every piece below is still a placeholder; this issue is the work that turns them real.
What exists today
crates/sermones-core/src/llm/attachment.rs(AttachmentKind,AttachmentPayload,Attachment) and theBlock::Attachmentvariant. No producer:grepfinds only the definition, the re-export, and theis_attachmentpredicate.frontend/src/lib/Composer.svelte:150-152istitle="Attach a file (issue #11)"with no handler; the file-quote at:39says outright that the attach button and the drag/drop/paste targets are affordances only.frontend/src/lib/AttachmentView.svelterenders anAttachment, but nothing imports it; its own header says "Nothing produces attachments yet (#11)". Its types come from the hand-writtenfrontend/src/lib/attachments.ts, which is marked SPECULATIVE and is to be deleted once this issue registers the real types and codegen emits them (the file explains why registeringAttachmentPayloadtoday produces a schema TypeBox rejects — payload-carrying enums at the pinned facet revision).Attachmentappears nowhere incrates/sermones-core/src/ipc.rsorIPC_TYPES, andAppendUserMessageParams(ipc.rs:118) carries text only.Checklist
Composer.svelte:150, handler does not)AppendUserMessageParams, register the attachment types inIPC_TYPES, codegen artefacts follow. Check the payload-enum schema problem noted inattachments.tsbefore registeringAttachmentPayload.RequestMessageis{ role: String, content: String }(crates/sermones-runtime/src/providers/llama.rs:201-205) — a flat string, not the content-part array multimodal requests need. This item means changing that type (andcontext_messages, which builds them) to a content-parts shape, keeping the plain-string encoding for text-only messages so existing providers are unaffected.AttachmentView.svelteintoMessageView, and deleteattachments.tsin favour ofgenerated/types.tsRefs
crates/sermones-core/src/llm/attachment.rs— existing domain typescrates/sermones-core/src/llm/message.rs:84—Block::Attachmentcrates/sermones-runtime/src/providers/llama.rs:201-205—RequestMessage, the flat-string wire shape to widenfrontend/src/lib/Composer.svelte:39,150-152— the placeholder affordancefrontend/src/lib/attachments.ts— speculative hand-written types (delete on landing)docs/architecture/ipc-pipeline.md— adding IPC types#8— composer (landed, closed)#1— attachment rendering (receiving side; landed, closed)lyssieth referenced this issue2026-08-02 23:30:15 -04:00