Skip to content

Pasting an image file loses the original path — model only gets an inline data: URL #48190

Description

@luke9705

Description

When an image file is pasted into the TUI composer (pasted path text, or a Finder file copy), the attachment is always submitted as an inline data: URL. The original path only survives in the part's source.path metadata, which the model never sees. After materialization the model effectively has an image and a temp path, so it cannot reference the source file it was given.

The server already does the right thing for file: URL attachments: in packages/opencode/src/session/prompt.ts it emits a synthetic text part with {"filePath": ...} alongside the image. The TUI paste flow just never produces file: URLs, so that path is unreachable.

Secondary symptom on macOS: pasting with the internal paste command (prompt.paste) with a Finder file copy on the clipboard attaches the file's generic icon bitmap, because clipboard.read() requests the clipboard as "PNGf" and the icon flavors win over the file URL/text flavors.

Steps to reproduce

  1. Copy an image file in Finder
  2. Paste it into the TUI composer (it is auto-attached as [Image 1])
  3. Submit and ask the model for the path of the attached image
  4. The model has no path: the part is a data: URL, materialized to a temp file

OpenCode version

v0.0.0-beta-19381 (also present on dev)

Operating System

macOS

Activity

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

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions