hermes-agent/apps/desktop/src/lib
Brooklyn Nicholson 153060e206 fix(desktop): render optimistic image thumbnails from in-hand base64
The in-flight user bubble seeded image attachment refs as `@image:<localpath>`.
In remote-gateway mode that path lives on the desktop, not the gateway, so the
inline thumbnail fetch hit /api/media and 403'd ("Path outside media roots"),
flashing a fallback chip until submit uploaded the bytes.

Seed (and keep) image refs as the raw base64 preview data URL instead. It
renders inline via extractEmbeddedImages with zero network, and survives the
post-sync rewrite (the agent gets the bytes through the attached-image pipeline,
not this display ref) so the thumbnail no longer remounts/flashes. Non-image
refs are unchanged.

Adds optimisticAttachmentRef + unit coverage.
2026-06-09 17:03:42 -05:00
..
keybinds fix(desktop): default-profile hotkey to two-key cmd+d mnemonic 2026-06-06 11:55:15 -05:00
ansi.test.ts fix(desktop): triage batch of GUI quality-of-life fixes (#37536) 2026-06-02 16:33:22 -04:00
ansi.ts chore(desktop): zero eslint/typecheck debt + prettier pass (#39100) 2026-06-04 14:10:38 +00:00
chat-messages.test.ts Add Hermes desktop app (#20059) 2026-05-31 17:46:56 -05:00
chat-messages.ts fix(desktop): render approval/sudo/secret prompts so tools stop silently timing out (#38578) 2026-06-04 01:53:51 +00:00
chat-runtime.test.ts fix(desktop): render optimistic image thumbnails from in-hand base64 2026-06-09 17:03:42 -05:00
chat-runtime.ts fix(desktop): render optimistic image thumbnails from in-hand base64 2026-06-09 17:03:42 -05:00
clipboard.ts Add Hermes desktop app (#20059) 2026-05-31 17:46:56 -05:00
commit-changelog.test.ts Add Hermes desktop app (#20059) 2026-05-31 17:46:56 -05:00
commit-changelog.ts Add Hermes desktop app (#20059) 2026-05-31 17:46:56 -05:00
desktop-slash-commands.test.ts feat(desktop): surface every provider + models from hermes model in the GUI menus (#40563) 2026-06-06 16:31:34 +00:00
desktop-slash-commands.ts feat(desktop): surface every provider + models from hermes model in the GUI menus (#40563) 2026-06-06 16:31:34 +00:00
embedded-images.test.ts Add Hermes desktop app (#20059) 2026-05-31 17:46:56 -05:00
embedded-images.ts Add Hermes desktop app (#20059) 2026-05-31 17:46:56 -05:00
external-link.test.tsx fix(desktop): render debug-report paste URLs as real clickable links 2026-06-08 21:35:21 -04:00
external-link.tsx fix(desktop): render debug-report paste URLs as real clickable links 2026-06-08 21:35:21 -04:00
gateway-events.test.ts fix(desktop): don't drop the focused chat's own stream when unscoped (#42359) 2026-06-08 15:24:15 -05:00
gateway-events.ts fix(desktop): don't drop the focused chat's own stream when unscoped (#42359) 2026-06-08 15:24:15 -05:00
gateway-ws-url.test.ts fix(desktop): don't fall back to a dead WS ticket on OAuth re-mint failure 2026-06-04 01:11:34 -07:00
gateway-ws-url.ts feat(desktop): per-session profile switching + cross-profile sessions 2026-06-04 16:35:34 -05:00
haptics.ts feat(desktop): drag sessions into chat as @session links + spawn loader 2026-06-04 19:41:51 -05:00
icons.ts feat(desktop): steer the live run from the composer 2026-06-05 20:50:30 -05:00
incremental-external-store-runtime.ts Add Hermes desktop app (#20059) 2026-05-31 17:46:56 -05:00
katex-memo.ts Add Hermes desktop app (#20059) 2026-05-31 17:46:56 -05:00
local-preview.ts Add Hermes desktop app (#20059) 2026-05-31 17:46:56 -05:00
markdown-code.test.ts Add Hermes desktop app (#20059) 2026-05-31 17:46:56 -05:00
markdown-code.ts Add Hermes desktop app (#20059) 2026-05-31 17:46:56 -05:00
markdown-preprocess.ts fix(desktop): stop bare-URL autolinker swallowing trailing emphasis asterisks (#41093) 2026-06-07 02:47:39 -07:00
media.remote.test.ts feat(desktop+gateway): remote media relay — attach images/PDFs and display gateway images over the network 2026-06-07 10:05:53 -07:00
media.ts feat(desktop+gateway): remote media relay — attach images/PDFs and display gateway images over the network 2026-06-07 10:05:53 -07:00
model-status-label.test.ts feat(desktop): inline model picker in the status bar 2026-06-02 19:09:41 -05:00
model-status-label.ts feat(desktop): inline model picker in the status bar 2026-06-02 19:09:41 -05:00
mutable-ref.ts chore(desktop): zero eslint/typecheck debt + prettier pass (#39100) 2026-06-04 14:10:38 +00:00
preview-targets.test.ts Add Hermes desktop app (#20059) 2026-05-31 17:46:56 -05:00
preview-targets.ts Add Hermes desktop app (#20059) 2026-05-31 17:46:56 -05:00
profile-color.ts feat(desktop): long-press a rail profile to pick its color 2026-06-04 20:12:37 -05:00
provider-setup-errors.test.ts Add Hermes desktop app (#20059) 2026-05-31 17:46:56 -05:00
provider-setup-errors.ts Add Hermes desktop app (#20059) 2026-05-31 17:46:56 -05:00
query-client.ts feat(desktop): per-session profile switching + cross-profile sessions 2026-06-04 16:35:34 -05:00
runtime-readiness.test.ts Add Hermes desktop app (#20059) 2026-05-31 17:46:56 -05:00
runtime-readiness.ts Add Hermes desktop app (#20059) 2026-05-31 17:46:56 -05:00
session-export.ts Refactor desktop i18n field copy into nested structures 2026-06-06 07:51:44 -07:00
session-search.test.ts Show platform sources in desktop sessions 2026-06-07 23:44:04 -07:00
session-search.ts Show platform sources in desktop sessions 2026-06-07 23:44:04 -07:00
session-source.ts fix(desktop): local-only recents, per-platform sidebar sections, and Ctrl+N regressions (#42537) 2026-06-09 14:24:25 +00:00
speech-text.ts Add Hermes desktop app (#20059) 2026-05-31 17:46:56 -05:00
statusbar.ts Add Hermes desktop app (#20059) 2026-05-31 17:46:56 -05:00
storage.ts feat(desktop): long-press a rail profile to pick its color 2026-06-04 20:12:37 -05:00
todos.test.ts Add Hermes desktop app (#20059) 2026-05-31 17:46:56 -05:00
todos.ts Add Hermes desktop app (#20059) 2026-05-31 17:46:56 -05:00
tool-result-summary.test.ts Add Hermes desktop app (#20059) 2026-05-31 17:46:56 -05:00
tool-result-summary.ts fix(desktop): triage batch of GUI quality-of-life fixes (#37536) 2026-06-02 16:33:22 -04:00
update-copy.test.ts fix(desktop): name the update target in the overlay; honest no-changelog copy 2026-06-08 08:58:26 -07:00
update-copy.ts fix(desktop): name the update target in the overlay; honest no-changelog copy 2026-06-08 08:58:26 -07:00
use-enter-animation.ts fix(desktop): prevent IME Enter from splitting messages and viewport resize from disarming scroll anchor (#38333) 2026-06-03 20:14:52 +00:00
utils.ts Add Hermes desktop app (#20059) 2026-05-31 17:46:56 -05:00
voice-playback.ts Add Hermes desktop app (#20059) 2026-05-31 17:46:56 -05:00
yolo-session.ts feat(desktop): Shift+click the status-bar zap to toggle YOLO globally (#41666) 2026-06-07 20:57:08 -05:00