Skip to content

[bug] show-artifact does not return artifact source #1941

Description

@baggiiiie

Executor version

1.6.7

How do you run Executor?

Desktop app (Cursor connected over MCP to the local desktop sidecar)

Operating system

macOS (Apple Silicon)

Integration involved

MCP artifact tools (list-artifacts, show-artifact, edit-artifact, create-artifact). Not a third-party integration.


What happened

when an agent calls show-artifact, it only shows confirmation with a deep link:

Saved "personal GitHub PRs" as artifact art_smygdh2sj2mtju34jo.
This MCP client cannot display MCP Apps, so give the user this URL to open it:
http://localhost:4789/artifacts/art_smygdh2sj2mtju34jo

according to create-artifact skill "if you do not have the stored source, call show-artifact and edit from what it returns."

"the retry from that rather than calling `show-artifact` again. If you don't have",
"the source at all (the artifact came from `list-artifacts`), `show-artifact` once",
"and edit from what it returns — never from memory.",

A follow-up edit-artifact with a non-matching oldText failed as expected (atomic, nothing saved). error:

edit-artifact rejected: Edit 1 of 1 matched nothing: its oldText does not appear in the current source. Copy oldText verbatim from the source, whitespace included .
Nothing was changed. The artifact's current source is in structuredContent.code — build the retry against it.

The model still did not receive structuredContent.code. Cursor-like hosts appear to ignore MCP structuredContent and only forward content[].text.

What you expected

  1. show-artifact should return the stored component source so agent can at least have oldText for edit-artifact.

Steps to reproduce

  1. run Executor 1.6.7.
  2. agent callslist-artifacts, then show-artifact with one of the returned ids.
  3. Read the tool result the model receives (not the web UI at /artifacts/:id).

Expected after step 3: the result text contains a Source: fenced block with the stored App component.

Actual: confirmation + localhost URL only. No source.

Workaround that did return source: GET http://localhost:4789/api/artifacts/<id> (authenticated to the local daemon). That is not the documented agent path.

Diagnostics / logs

Notes (optional, not a form field)

Before you submit

  • I searched the open issues for a duplicate.
  • I removed all keys, tokens, and credentials from this report.

Activity

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

Metadata

Metadata

Assignees

No one assigned

    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