Skip to content

Recover mobile screenshot paste through an explicit clipboard action - #693

Merged
witbrock merged 1 commit into
mainfrom
codex/von-f2dc9233786c3b3f
Sep 14, 2026
Merged

witbrock merged 1 commit into
mainfrom
codex/von-f2dc9233786c3b3f

Conversation

@witbrock

Copy link
Copy Markdown
Member

Android Gboard can reject a screenshot tile before Von receives a DOM paste event. The main composer now offers More actions (+) → Paste image, with Attach image as recovery when browser clipboard access fails. Both preserve the caption and reuse the existing session-bound upload/preview path. The existing items/files extractor and ordinary text paste remain unchanged.

Reuses the exact initialiseImagePicker helper from #658, whose native Android permission path is now verified. This PR delivers only that bounded recovery; #658's broader layout, upload-cancellation and PWA work remain separate. The original Gboard tile is still browser-limited. Diagnosis and native evidence provenance are recorded in docs/engineering/mobile_screenshot_paste_2026-09-14.md.

Validation:

  • 20 targeted frontend tests, 3 existing clipboard-extraction tests and 15 backend image tests passed. Static JavaScript, syntax and whitespace checks passed.
  • Native operator evidence: Android 17 / Chrome 145.0.7632.218 / Gboard 17.2, trusted Paste image tap, actual permission prompt and Allow, 109-byte PNG decoded at 24×16, captions preserved. Helper body verified identical to that tested in Complete mobile image picker and recoverable attachment lifecycle #658.
  • Production template and initializeChatTab fixture in Chromium 153 at 360/448/1440 pixels: real desktop clipboard upload with window-session header, preview/removal, denied-read recovery through file chooser, preserved captions and multiline text, no page errors or composer overflow. HTTP uploads are stubbed; native evidence is a separate capability trial.
  • All six existing composer layout/keyboard profiles passed. Corrected an existing test's ambiguous first-button selector (Retry versus Remove), and completed the request test's API-header mock.

Merge decision: ready for the explicit recovery, at Tier 1. Physical Pixel/Chrome 152, full authenticated Von/PWA and public deployment remain unverified; this PR does not claim the Gboard toast is removed. No deployment requested.

Native task: #V#task_agent_b61e77311c89e38adcf879ff20c995b1. Run evidence retained in .run/mobile-paste/; canonical task updates and requester reporting belong to the controller.

@witbrock
witbrock merged commit 96ee67a into main Sep 14, 2026
2 checks passed
@witbrock
witbrock deleted the codex/von-f2dc9233786c3b3f branch September 14, 2026 15:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant