Repository navigation
Computer Use: Safari screenshots reportedly trigger Xiaohongshu screenshot-sharing panel in active iPhone Mirroring #54018
Description
Summary
While Codex desktop Computer Use was controlling Xiaohongshu (RedNote) through macOS iPhone Mirroring, a screenshot-sharing panel ("截屏分享至"/"截图分享至") repeatedly appeared. More importantly, the user observed the same panel appearing in the mirrored iPhone app when Codex took a screenshot of Safari displaying Weibo, rather than targeting iPhone Mirroring.
Please investigate whether Computer Use screenshot/state capture has side effects on an active iPhone Mirroring session, including when the requested target is another Mac app. This report does not establish whether the cause is Codex, macOS/iOS event propagation, or Xiaohongshu's detection logic.
Environment
- Surface: Codex desktop app on macOS, native Computer Use through
mcp__cua_repl.js. - iPhone Mirroring target:
com.apple.ScreenContinuity. - Xiaohongshu: native iPhone app in the existing connected mirror.
- Weibo: website in Safari (
com.apple.Safari), not the iPhone Weibo app. - Exact incident-time Codex, Computer Use helper, macOS, iOS and Xiaohongshu versions were not recorded; no version from a later/different execution context is asserted here.
- Incident date: 2026-10-14. Times below are Asia/Shanghai (UTC+8).
Operation record
The following calls and timestamps were recovered from the incident conversation's tool execution history. Coordinates are included as the actual historical calls, not recommended reproduction coordinates.
| Time | Recorded operation |
|---|---|
| 23:23:00.371 | await mirror.click([150,724]); await mirror.getAXState() — opened a Xiaohongshu programming post. |
| 23:23:04.301 | Queried the current mirror window geometry, then ran macOS screencapture -x -R6,49,316,696 /tmp/mirror.png (output filename sanitized). |
| 23:23:10.594 | await mirror.click([579,1206]); await mirror.getAXState() — attempted to close screenshot-sharing panel. |
| 23:23:18.206 | Queried mirror geometry and repeated the same macOS region-capture path. |
| 23:23:27.136 | await mirror.click([290,603]); await mirror.getAXState() — another attempt to close panel. |
| 23:23:31.943 | Queried geometry and captured the mirror region again. |
| 23:23:41.244 | await mirror.click([580,1205]); await mirror.getAXState() — another close attempt. |
| 23:23:45.628 | Queried geometry and captured the mirror region again. |
| 23:23:46.975 | User reported the screenshot prompt had appeared again and that the prescribed stop rule was not followed. The assistant then stated it would stop Xiaohongshu observation. |
| 23:24:56.926 | await safari.getScreenshot(), labeled "查看微博第二屏" (view second Weibo screen). |
| 23:25:53.182 | await safari.getScreenshot() again, labeled "核对Safari保留标签" (verify retained Safari tabs), during cleanup. |
The mirror region was 316×696 points; the saved image was previously measured as 632×1392 pixels. Close-click coordinates alternate between roughly doubled and halved values. This is a possible coordinate-mapping confounder: the history does not independently prove that the panel was successfully dismissed between captures. The repeated panel may be a re-trigger or may have remained open.
Cross-app observation and evidence boundaries
The user explicitly observed and reported: taking a screenshot while operating Weibo in Safari also triggers Xiaohongshu's screenshot-sharing prompt. The execution history independently confirms the two Safari getScreenshot() calls above, after the assistant stopped Xiaohongshu observation.
However:
- No preserved privacy-reviewed before/after image is available for those two Safari calls.
- The exact triggering Safari call cannot be isolated from this history alone.
- Neither
getAXState()nor macOSscreencaptureis proven to be the cause. - We did not intentionally send an iPhone hardware screenshot shortcut.
- No new reproduction loop was run to create evidence for this report.
Suggested reproduction
- Connect an existing iPhone Mirroring session and open a non-sensitive Xiaohongshu screen on the iPhone.
- Keep that app in the foreground on the mirrored phone.
- In Codex Computer Use, target Safari and open a non-sensitive Weibo page.
- Call
await safari.getScreenshot(). - Check whether the mirrored Xiaohongshu app displays its screenshot-sharing panel, even though Safari was the screenshot target.
- Separately compare iPhone Home Screen versus Xiaohongshu foreground, and screenshot-only versus accessibility-only observation. Avoid repeated close/capture loops; distinguish persistent panel from a freshly triggered one.
Expected behavior
A read-only screenshot of Safari should not cause a screenshot-sharing action/panel in an unrelated iPhone app. If screenshot/state capture necessarily propagates capture events to an active mirrored device, please document that behavior and provide a supported observation path without repeated UI side effects.
Impact and current workaround
The sharing panel obstructs the post and can trap the agent in a "dismiss → observe → panel" loop. The user has now instructed the workflow to send Command+1 to the existing connected mirror before switching to Safari/Finder/other Mac apps, leaving Xiaohongshu in the background. This workaround has not been validated.
Privacy / attachments
Private account names, contacts, post content, local account paths, LAN addresses, and conversation identifiers are omitted.
Update: an original incident screenshot was recovered from the saved tool-result history after the initial report. It was displayed at 23:23:08.208 (Asia/Shanghai), following the macOS mirror-region capture at 23:23:04.301. The image below is a 600×200 pixel crop retaining only the generic screenshot-sharing panel. The author's name/avatar, post content, phone status bar and other surrounding UI are excluded. No new reproduction was performed and no screenshot content was generated or reconstructed.
The crop shows “截屏分享至” (share screenshot to), the close button, and “搜图找同款” (search image for similar items). It documents the panel's presence during the earlier Xiaohongshu sequence; it is not a before/after image for either later Safari screenshot and does not independently prove cross-app triggering. The cross-app observation remains attributed to the user, as described above.
The image is hosted on a dedicated evidence branch in the reporter's public repository and linked to an immutable commit.
Related public discussion
https://cn.v2ex.com/t/1246451 — comments 6 and 8 describe a closely related Codex/iPhone Mirroring screenshot-sharing loop. Comment 8 includes a GPT-derived workaround suggestion; it is a diagnostic lead, not independently validated evidence or an established root cause.

Activity