anthropics / anthropics/claude-ai-mcp
Claude iOS canvas reopens on claude.ai as an empty assistant turn with no show step
- Dominant language
- No language data
- Stars
- 471
- Forks
- 76
- PR merge metrics
- No merged PRs in 30d
Description
## Environment
```text
Host: Claude
Surfaces: native Claude iOS app → claude.ai web
Observation date: 2026-09-04; web reopen around 13:00Z
iOS/app/browser version: not recorded in the supplied failure-mode evidence
Connector: Dally's MCP server; phone frame labelled Dally · Beta
Affected conversation: q3a-claude-iphone-rich
Successful comparison: q5a-claude-iphone-rich
Web screenshot seat/model: Pro / Opus 5 High
```
## Repro steps
1. On Claude iOS with Dally connected, ask: “what are @kevtrainhard's top three reels and what do they have in common?”
2. Allow “Show in the Dally widget” when prompted. In the recorded q3a run the widget frame painted at 83.5 seconds (393 × 100 pt at first paint) and its first reel reference at 94.6 seconds, with the full answer at 105.9 seconds. The phone canvas shows three reel references within a list.
3. Reopen that stored conversation on claude.ai web and bring the answer into view.
4. Expand the Dally integration's tool list and inspect it for `dally_show`.
5. As a comparison, reopen q5a-claude-iphone-rich on the web. That different phone-origin conversation rehydrates its canvas in full.
## Expected
The stored phone answer remains readable on the web, including its Dally show step and canvas. Anthropic's instance-supersession documentation describes lazy mounting stored widget cells when they enter view and delivering the mounting tool result after connection, as recorded in the linked research.
## Actual
For q3a, the web reopen showed an empty assistant turn: no prose, no frame, and no `dally_show` in the expanded tool list, despite the canvas having painted on the phone. The persistence screenshot shows the prompt and the “Used Dally integration” line above the empty answer area.
For q5a, the web reopen rehydrated a canvas containing 12 Pills and a row of three Posters, measured at 1388px, beside short host prose, so the failure did not affect every phone-origin conversation in the check. The evidence does not establish why q3a's show step was absent; both conversations were created within the same hour from the same phone, app build and connector.
## Evidence
- Affected q3a web reopen: empty turn (in Dally's private evidence record; available on request).
- q3a phone capture (in Dally's private evidence record; available on request).
- Successful q5a web reopen comparison (in Dally's private evidence record; available on request).
- Failure-mode record: B1, B4, C3, C4 and C6 (in Dally's private evidence record; available on request).
- Persistence research: documented lazy mounting and related host reports (in Dally's private evidence record; available on request).
Related, not a duplicate: [claude-ai-mcp#647](https://github.com/anthropics/claude-ai-mcp/issues/647), reported 2026-07-19 and updated 2026-07-22, describes optional-field nulls rejected on live delivery while history replay renders the payload. This report concerns a phone-painted answer whose web tool list lacks the show step; no null-validation error was captured for that turn. [ext-apps#671](https://github.com/modelcontextprotocol/ext-apps/issues/671) records other missing-iframe reports, without establishing the cause of this missing step.
What would help: investigate preservation of the phone turn's show step across surfaces and specify the transcript/client evidence needed to diagnose its absence on the web.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.