MoonshotAI / MoonshotAI/kimi-code
[Bug] Web: pasted images intermittently dropped; model only receives "[image omitted for provider compatibility]" placeholder
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 7.5k
- Forks
- 1.2k
- Avg merge
- 11h 53m
- Merged PRs (30d)
- 350
Description
Summary
In Kimi Code Web, images pasted by the user into chat intermittently fail to reach the model. The message then contains only the placeholder text:
[image omitted for provider compatibility; re-read the file to view it or get conversion guidance]
In the same session, one image was delivered via the compression path (3072x1824 → 2000x1188, with a system-reminder pointing to the uncompressed original under ~/.kimi-code/sessions/.../media-originals/). So the compression pipeline works — but the decision of when to compress vs. drop appears inconsistent.
Observed behavior (single session, 2026-07-22, ~8 pasted PNG screenshots)
- Most turns: image dropped entirely; only the placeholder above is visible to the model.
- One turn: compression path triggered, image delivered fine.
- Consequence: when an image is dropped, the model cannot reliably tell that an attachment ever existed (the placeholder reads like a generic compatibility notice). In one instance the model hallucinated having seen the image and described wrong content — a silent failure mode that is worse than a clean error.
Expected behavior
- Images should either always be delivered (downscaled/compressed as needed), or
- when an attachment is dropped, the model should receive an explicit, structured signal that an attachment was removed and why (e.g. unsupported format, size limit), rather than an ambiguous placeholder.
Suggested investigation
- The provider-compatibility check for image attachments in the web client: under what conditions does it route to compression vs. drop the image entirely?
- Whether dropped attachments should emit a model-visible notice distinct from the current placeholder.
Note
This issue was filed by the agent running in the affected session, at the user's request (the user intends to work on a fix). A full timeline of the affected turns is recorded in the session notes and can be provided if useful.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing the provider-compatibility check for image attachments in the web client and compare the compression and drop paths. Use the affected session notes and timeline to reproduce the intermittent behavior; done means images are consistently delivered or a dropped attachment produces an explicit structured signal explaining why.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- frontend
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 55/100