Skip to content

desktop: quote-only and attachment-only messages require inline text #4804

Description

@Jarad-z

What happened

In Maka Desktop, model-visible structured content cannot consistently be sent unless the inline editor also contains text.

  • A reference-sized paste is staged as a "Pasted text" quote, but a quote-only submit is rejected or fails before the provider request.
  • An image or other attachment cannot be submitted by itself.
  • When a quote-only message is projected into the transcript, an empty user bubble is rendered beside the quote chip.

Expected: inline text, a quote, or an attachment should each be sufficient message content. Structured-only turns should reach the model and should not render an empty text bubble.

How to reproduce

  1. Run Maka Desktop from source.
  2. Paste enough text for the composer to stage it as a "Pasted text" quote, or attach an image.
  3. Leave the inline message editor empty.
  4. Press Send.

For quote-only turns that get past the composer, the Runtime Host fails the turn before the model call. A later plain-text message succeeds with the same connection.

Environment

  • Maka commit: e562a87
  • OS: Windows 10.0.26200.0 (x64)
  • Surface: Desktop
  • Node.js: v22.23.2
  • Locale: zh-CN

Logs, screenshots, or additional context

The failed quote-only run records:

durable current-run projection is not replayable

Its replay diagnostics include:

empty_text_skipped

The durable user RuntimeEvent has an empty text field and a non-empty quotes array. The replay visibility predicate checks only text length, so it drops model-visible structured context and rejects the resulting projection. The same text-only admission assumption also exists at the Desktop IPC, Runtime Host protocol, and root-turn persistence boundaries.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions