hermes - ✅(Solved) Fix Dashboard Chat: Ctrl+V paste broken, image paste not supported [1 pull requests, 1 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
NousResearch/hermes-agent#24860Fetched 2026-05-14 03:51:04
View on GitHub
Comments
0
Participants
1
Timeline
5
Reactions
0
Participants
Timeline (top)
labeled ×4cross-referenced ×1

In the web dashboard Chat tab (launched via hermes dashboard --tui), clipboard paste has two issues:

  1. Ctrl+V does not paste text — it is passed through to the TUI backend, which attempts to read from the server-side (WSL/Linux) clipboard. Since the browser clipboard and server clipboard are separate, this always results in "No image found in clipboard".

  2. Image paste is not supported at all — even Ctrl+Shift+V (the documented paste shortcut) only calls navigator.clipboard.readText(), which ignores image data entirely.

Error Message

  1. Copy any text in the browser, press Ctrl+V in the chat input → "No image found in clipboard" error

Root Cause

In web/src/pages/ChatPage.tsx (lines 345-386):

  • attachCustomKeyEventHandler intercepts Ctrl+V and sends it to the PTY, instead of letting the browser handle it
  • The paste handler (line 376) uses navigator.clipboard.readText() which only reads text — read() should be used to also handle image clipboard data

In tui_gateway/server.py (line 3410), the clipboard.paste RPC reads from the server clipboard, which is empty when accessed from a browser client.

Fix Action

Fixed

PR fix notes

PR #24885: fix(web): make Ctrl+V paste text in dashboard Chat, add image paste scaffolding

Description (problem / solution / changelog)

Summary

Fixes #24860 — Ctrl+V paste is broken in the dashboard Chat tab, and image paste is not supported.

Problem

The dashboard Chat tab's attachCustomKeyEventHandler in ChatPage.tsx only intercepted Ctrl+Shift+V (and Cmd+V on macOS) for clipboard paste. On Linux/Windows, bare Ctrl+V — the standard paste shortcut — fell through to the PTY backend, which attempted to read the server-side clipboard. Since the browser and server clipboards are separate, this always failed with "No image found in clipboard".

Additionally, the paste handler used navigator.clipboard.readText() which ignores image data entirely.

Changes

  • Broaden paste modifier on non-macOS: match any Ctrl+V (with or without Shift) so the standard paste shortcut reads from the browser clipboard
  • Upgrade to Clipboard API level 2: use navigator.clipboard.read() instead of readText() to detect both text and image clipboard items
    • Text items are pasted immediately via term.paste()
    • Image items are detected and logged (full image-attach support requires a backend endpoint — tracked separately)
  • Graceful fallback: if read() is unavailable or permission-denied, falls back to readText()

Scope

1 file changed: web/src/pages/ChatPage.tsx

Testing

  • Verified Ctrl+V text paste works in Chrome and Firefox on Linux
  • Verified Cmd+V still works on macOS
  • Verified image clipboard detection fires (logs to console)
  • Verified Ctrl+Shift+V still works as before
  • No existing tests for ChatPage.tsx; change is self-contained in the key event handler

Changed files

  • web/src/pages/ChatPage.tsx (modified, +67/-10)
RAW_BUFFERClick to expand / collapse

Bug: Dashboard Chat — Ctrl+V paste broken, image paste not supported

Description

In the web dashboard Chat tab (launched via hermes dashboard --tui), clipboard paste has two issues:

  1. Ctrl+V does not paste text — it is passed through to the TUI backend, which attempts to read from the server-side (WSL/Linux) clipboard. Since the browser clipboard and server clipboard are separate, this always results in "No image found in clipboard".

  2. Image paste is not supported at all — even Ctrl+Shift+V (the documented paste shortcut) only calls navigator.clipboard.readText(), which ignores image data entirely.

Steps to Reproduce

  1. Start the dashboard: hermes dashboard --host 0.0.0.0 --insecure --tui --no-open --skip-build
  2. Open http://localhost:9119 in Firefox (or any browser)
  3. Go to the Chat tab
  4. Copy any text in the browser, press Ctrl+V in the chat input → "No image found in clipboard" error
  5. Copy an image (e.g. screenshot), press Ctrl+Shift+V → nothing happens (image ignored)

Expected Behavior

  • Ctrl+V should paste text from the browser clipboard into the chat input (standard browser behavior)
  • Image paste (Ctrl+V or Ctrl+Shift+V with image in clipboard) should attach the image to the message, using the browser's navigator.clipboard.read() API to read ClipboardItem with image/png type

Root Cause

In web/src/pages/ChatPage.tsx (lines 345-386):

  • attachCustomKeyEventHandler intercepts Ctrl+V and sends it to the PTY, instead of letting the browser handle it
  • The paste handler (line 376) uses navigator.clipboard.readText() which only reads text — read() should be used to also handle image clipboard data

In tui_gateway/server.py (line 3410), the clipboard.paste RPC reads from the server clipboard, which is empty when accessed from a browser client.

Proposed Fix

  1. Ctrl+V for text: Intercept Ctrl+V in the browser and use navigator.clipboard.readText() + term.paste() (same as current Ctrl+Shift+V behavior), so text paste works without round-tripping to the server
  2. Image paste: When navigator.clipboard.read() returns image data (image/png, image/jpeg, etc.), convert to base64 and send to the backend via a new RPC method (e.g. clipboard.paste_image), or POST to an upload endpoint
  3. Fallback: If the Clipboard API is unavailable (no user gesture, insecure context), fall through to the existing behavior

Environment

  • OS: Windows 11 + WSL2 (Ubuntu)
  • Browser: Firefox (latest)
  • Hermes: latest (hermes-agent main branch)

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

hermes - ✅(Solved) Fix Dashboard Chat: Ctrl+V paste broken, image paste not supported [1 pull requests, 1 participants]