Repository navigation
[bug] show-artifact does not return artifact source #1941
Description
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."
executor/packages/core/execution/src/skills.ts
Lines 132 to 134 in 5e4da2a
| "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
show-artifactshould return the stored component source so agent can at least haveoldTextforedit-artifact.
Steps to reproduce
- run Executor 1.6.7.
- agent calls
list-artifacts, thenshow-artifactwith one of the returned ids. - 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
[-][bug] show-artifact does not return artifact source to Cursor[/-][+][bug] show-artifact does not return artifact source[/+]