hermes-agent/apps/desktop/electron
Brooklyn Nicholson 9e373b3828 fix(desktop): paste rich text with images as text, not blank attachments
Copying a Discord thread (or any rich-text selection with images) attached
one or more blank thumbnails and dropped the message text entirely.

Two causes. The clipboard's `text/html` was scraped for inline
`<img src="data:…">` regardless of whether the copy carried its own text —
and what Discord ships beside each image embed is a 32x5 blurhash
placeholder, which is exactly the blank attachment. Then, because any image
blob short-circuited the paste handler, the prose that came with it never
reached the composer.

Inline HTML images now only count for an image-only copy, and are ignored
below a thumbnail-sized floor so spacers and trackers don't attach either. A
mixed paste attaches its real images and still inserts its text.

Also registers pasteAndMatchStyle in the Edit menu — Cmd+Shift+V had no menu
entry, so the chord was never translated into an editor command anywhere in
the app.
2026-08-02 22:28:28 -05:00
..
active-runtime-state.test.ts
active-runtime-state.ts
backend-child.ts
backend-command.test.ts
backend-command.ts
backend-connection-state.test.ts
backend-connection-state.ts
backend-env.test.ts
backend-env.ts
backend-health.test.ts
backend-health.ts
backend-probes.test.ts
backend-probes.ts
backend-ready.test.ts
backend-ready.ts
backend-start-failure.test.ts
backend-start-failure.ts
bootstrap-platform.test.ts
bootstrap-platform.ts
bootstrap-repair-guard.test.ts
bootstrap-repair-guard.ts
bootstrap-runner.test.ts
bootstrap-runner.ts
connection-apply.test.ts
connection-apply.ts
connection-config.test.ts
connection-config.ts
crash-forensics.test.ts
crash-forensics.ts
dashboard-token.test.ts
dashboard-token.ts
desktop-electron-pin.test.ts
desktop-installation.test.ts
desktop-installation.ts
desktop-uninstall.test.ts
desktop-uninstall.ts
dev-cdp.test.ts
dev-cdp.ts
embed-referer.ts
entitlements.mac.inherit.plist
entitlements.mac.plist build(desktop): declare camera usage for signed macOS builds 2026-07-28 13:40:44 -05:00
event-dedupe.test.ts
event-dedupe.ts refactor(desktop): tidy the cross-window deduper 2026-07-20 18:36:05 -05:00
find-git-bash.test.ts
find-git-bash.ts
find-in-page.test.ts
find-in-page.ts
first-run-setup-gate.test.ts
first-run-setup-gate.ts
first-run-setup-main-process.test.ts
fs-read-dir.test.ts
fs-read-dir.ts
gateway-ws-probe.test.ts
gateway-ws-probe.ts
git-repo-scan.test.ts
git-repo-scan.ts
git-review-ops.test.ts
git-review-ops.ts
git-root.test.ts
git-root.ts
git-worktree-ops.test.ts
git-worktree-ops.ts
hardening.test.ts
hardening.ts
link-title-window.test.ts
link-title-window.ts
main-window-lifecycle.test.ts
main-window-lifecycle.ts
main.ts
native-auth-decisions.test.ts
native-auth-decisions.ts
native-oauth-login.test.ts
native-oauth-login.ts
native-oauth.test.ts
native-oauth.ts
native-token-store.test.ts
native-token-store.ts
oauth-net-request.test.ts
oauth-net-request.ts
power-save.test.ts
power-save.ts
preload.ts
primary-backend-startup.test.ts
primary-backend-startup.ts
primary-connection-rehome.ts
profile-delete-routing.test.ts test(desktop): move node tests to vitest as well 2026-07-13 17:22:17 -04:00
profile-delete-routing.ts
profile-session-routing.test.ts
profile-session-routing.ts fix(desktop): preserve OAuth sessions in sidebar 2026-07-27 13:41:56 -05:00
quick-entry.test.ts
quick-entry.ts
quit-guard.test.ts
quit-guard.ts feat(desktop): confirm before quitting with a turn in flight 2026-07-27 15:47:57 -05:00
remote-lifecycle.test.ts
remote-lifecycle.ts
remote-liveness.test.ts
remote-liveness.ts
session-windows.test.ts
session-windows.ts
spawn-helper-perms.test.ts
spawn-helper-perms.ts
ssh-bootstrap-coordinator.test.ts
ssh-bootstrap-coordinator.ts
ssh-config.test.ts
ssh-config.ts
ssh-connection.test.ts
ssh-connection.ts
stream-throttle.test.ts
stream-throttle.ts
titlebar-overlay-width.test.ts
titlebar-overlay-width.ts
update-count.test.ts
update-count.ts
update-gate.test.ts
update-gate.ts
update-marker.test.ts
update-marker.ts
update-rebuild.test.ts
update-rebuild.ts
update-relaunch.test.ts
update-relaunch.ts
update-remote.test.ts
update-remote.ts
updater-process.test.ts
updater-process.ts
venv-blocker-scan.test.ts
venv-blocker-scan.ts
vscode-marketplace.test.ts
vscode-marketplace.ts
wake-indicator-window.ts
wake-indicator.test.ts
wake-indicator.ts
window-state.test.ts
window-state.ts
windows-child-options.test.ts
windows-child-options.ts
windows-hermes-path.test.ts
windows-hermes-path.ts
windows-remote-lifecycle.test.ts
windows-remote-lifecycle.ts
windows-remote-live.test.ts
windows-sandbox-fallback.test.ts
windows-sandbox-fallback.ts
windows-system-ca.test.ts
windows-system-ca.ts
windows-user-env.test.ts
windows-user-env.ts
workspace-cwd.test.ts test(desktop): move node tests to vitest as well 2026-07-13 17:22:17 -04:00
workspace-cwd.ts
wsl-clipboard-image.test.ts
wsl-clipboard-image.ts
wsl-path-bridge.test.ts
wsl-path-bridge.ts
zoom.test.ts
zoom.ts