hermes-agent/apps/desktop/src/lib
Brooklyn Nicholson c883367bd2 fix(agent): keep interrupt-checkpoint scaffolding out of the steered transcript
A mid-stream steer persists an interrupted-turn checkpoint so the model knows
its reply was cut off. That scaffolding — "[This response was interrupted by a
user correction.]" and the "Visible response before the interruption:" header —
was written straight into message content, so every reload painted the raw
machinery as an assistant bubble (and merged it into the preceding tool-call
bubble). Steered transcripts became unreadable.

Reuse the existing display/replay split instead of inventing new surface:
- Carry the scaffolded form in the server-only api_content sidecar (the exact
  bytes replayed to the provider), keep content the user's/agent's real words.
- When nothing reached the screen there is no clean form, so mark the row
  display_kind=hidden — replayed to the model, dropped by every transcript
  surface, exactly like compaction-reference rows.
- Honor display_kind=hidden in the gateway's _history_to_messages projection
  (it only sniffed the [System: convention), so the checkpoint can't leak
  through the live/resume path to the TUI/CLI either.

The model still receives the full interrupted context on the wire; the
transcript shows the partial reply and the user's correction.
2026-07-28 01:05:02 -05:00
..
keybinds fix(desktop): let the composer answer past a clarify card 2026-07-27 20:50:32 -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 desktop: registry-driven slash commands + first-class /resume & /handoff (#42351) 2026-06-11 01:49:24 +00:00
artifact-detect.test.ts feat(desktop): artifacts — versioned cards, sandboxed live preview, right-rail viewer 2026-07-26 19:29:25 -07:00
artifact-detect.ts feat(desktop): artifacts — versioned cards, sandboxed live preview, right-rail viewer 2026-07-26 19:29:25 -07:00
brand-icon.test.ts feat(desktop): resolve a hostname to its Simple Icons brand mark 2026-07-27 21:23:46 -05:00
brand-icon.ts fmt(js): npm run fix on merge (#73096) 2026-07-28 03:43:07 +00:00
chat-messages.test.ts fix(agent): keep interrupt-checkpoint scaffolding out of the steered transcript 2026-07-28 01:05:02 -05:00
chat-messages.ts fix(desktop): stop hoisting an @ ref that is already inline in the prose 2026-07-27 22:55:24 -05:00
chat-runtime.test.ts fix(desktop): close cross-session leak windows in composer + session refs (#59305) 2026-07-24 16:04:12 -07:00
chat-runtime.ts fix(desktop): close cross-session leak windows in composer + session refs (#59305) 2026-07-24 16:04:12 -07:00
clipboard.ts
commit-changelog.test.ts
commit-changelog.ts refactor(desktop): adopt shared utils + app-wide cleanups 2026-07-03 13:48:44 -05:00
completion-sound.ts refactor(desktop): tidy the cross-window deduper 2026-07-20 18:36:05 -05:00
composer-input-sanitize.test.ts test(input): preservation regressions and prompt.submit boundary (#62557) 2026-07-15 07:39:42 -07:00
composer-input-sanitize.ts fix(desktop): resolve eslint errors in composer-input-sanitize.ts 2026-07-16 01:42:02 +05:30
desktop-fs.test.ts style(desktop): satisfy merged eslint/prettier config 2026-07-20 23:01:49 +02:00
desktop-fs.ts style(desktop): satisfy merged eslint/prettier config 2026-07-20 23:01:49 +02:00
desktop-git.test.ts fix(desktop): salvage /compress cluster — session.compress RPC + dedicated RPC routing (#68229) 2026-07-22 16:40:06 -04:00
desktop-git.ts fix(desktop): salvage /compress cluster — session.compress RPC + dedicated RPC routing (#68229) 2026-07-22 16:40:06 -04:00
desktop-remote-auth.test.ts fmt(js): npm run fix on merge (#70914) 2026-07-24 18:14:17 +00:00
desktop-remote-auth.ts feat(desktop): add "Connect to existing Hermes" option to first-run onboarding 2026-07-24 12:55:06 -05:00
desktop-slash-commands.test.ts fix(desktop): keep free-text slash arguments editable (#72768) 2026-07-27 12:47:17 -05:00
desktop-slash-commands.ts fix(desktop): keep /resume's free-text search typeable 2026-07-27 18:03:07 -05:00
desktop-toolsets.test.ts fix(desktop): hide platform/internal toolsets from the Skills & Tools list 2026-06-24 19:18:29 -05:00
desktop-toolsets.ts fix(desktop): hide platform/internal toolsets from the Skills & Tools list 2026-06-24 19:18:29 -05:00
download-text.ts feat(desktop): artifacts — versioned cards, sandboxed live preview, right-rail viewer 2026-07-26 19:29:25 -07:00
drag-ghost.ts fix(desktop): session-tab drag, focus sync, and pop-out isolation 2026-07-15 03:13:33 -04:00
embedded-images.test.ts fix(desktop): persist the image ref for natively-vision-capable models too 2026-07-24 21:20:52 -05:00
embedded-images.ts fix(desktop): persist the image ref for natively-vision-capable models too 2026-07-24 21:20:52 -05:00
escape-layers.test.ts feat(desktop): store + lib — layout/preview/session atoms, escape-layers, keybind helpers 2026-07-13 17:57:54 -04:00
escape-layers.ts feat(desktop): store + lib — layout/preview/session atoms, escape-layers, keybind helpers 2026-07-13 17:57:54 -04:00
excluded-paths.ts style(desktop,tui): fix all lint/type/formatting issues 2026-06-26 01:04:33 -05:00
external-link.test.tsx feat(desktop): show brand icons on links to known domains 2026-07-27 21:23:46 -05:00
external-link.tsx style(desktop): quiet inline links to color-only until hover 2026-07-27 21:45:42 -05:00
find-in-page.ts feat(desktop): complete find-in-page with the find-next/find-previous accelerators 2026-07-26 17:48:05 -07:00
format.ts feat(desktop): Capabilities foundation — shared utils, master-detail, editors, primitives 2026-07-03 05:08:13 -05:00
gateway-events.test.ts fix(desktop, ink): don't wipe messages before final message (#65919) 2026-07-20 11:42:29 -04:00
gateway-events.ts fix(desktop, ink): don't wipe messages before final message (#65919) 2026-07-20 11:42:29 -04:00
gateway-rpc.test.ts fix(desktop): dismiss stale prompt overlays 2026-07-08 16:52:10 +02:00
gateway-rpc.ts fix(desktop): dismiss stale prompt overlays 2026-07-08 16:52:10 +02:00
gateway-ws-url.test.ts fix(desktop): avoid false remote gateway reauthentication (#68250) 2026-07-20 20:54:36 -04:00
generated-images.test.ts style(desktop,tui): fix all lint/type/formatting issues 2026-06-26 01:04:33 -05:00
generated-images.ts style(desktop,tui): fix all lint/type/formatting issues 2026-06-26 01:04:33 -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): double-Enter sends the queued turn, and the row says Enter 2026-07-27 22:42:21 -05:00
incremental-external-store-runtime.test.ts perf(desktop): reconcile only the messages that actually moved 2026-07-26 02:56:08 -05:00
incremental-external-store-runtime.ts perf(desktop): reconcile only the messages that actually moved 2026-07-26 02:56:08 -05:00
inflight-turn-journal.test.ts fix(desktop): stop dropping the prompt a mid-turn redirect corrected 2026-07-26 19:44:42 -05:00
inflight-turn-journal.ts fix(desktop): stop dropping the prompt a mid-turn redirect corrected 2026-07-26 19:44:42 -05:00
json-format.test.ts feat(desktop): Capabilities foundation — shared utils, master-detail, editors, primitives 2026-07-03 05:08:13 -05:00
json-format.ts feat(desktop): Capabilities foundation — shared utils, master-detail, editors, primitives 2026-07-03 05:08:13 -05:00
json-rpc-gateway-url-guard.test.ts fmt(js): npm run fix on merge (#69562) 2026-07-22 19:01:09 +00:00
katex-memo.ts
loadout.ts refactor(desktop): adopt shared utils + app-wide cleanups 2026-07-03 13:48:44 -05:00
local-preview.ts style(desktop,tui): fix all lint/type/formatting issues 2026-06-26 01:04:33 -05:00
markdown-blocks.test.ts test(desktop): raise timeout on markdown-blocks property fuzz 2026-07-18 18:53:41 -04:00
markdown-blocks.ts perf(desktop): cache short markdown parses too 2026-07-26 17:02:59 -05:00
markdown-code.test.ts
markdown-code.ts refactor(desktop): adopt shared utils + app-wide cleanups 2026-07-03 13:48:44 -05:00
markdown-preprocess.ts feat(desktop): render agent-written @session links as chips 2026-07-24 22:52:45 -05:00
mcp-dashboard-oauth.test.ts fmt(js): npm run fix on merge (#66348) 2026-07-17 14:30:29 +00:00
mcp-dashboard-oauth.ts fmt(js): npm run fix on merge (#66348) 2026-07-17 14:30:29 +00:00
mcp-tool-filter.test.ts feat(mcp): first-class MCP tab — catalog, GUI auth/probe/logs, per-tool gating 2026-07-03 05:08:28 -05:00
mcp-tool-filter.ts feat(mcp): first-class MCP tab — catalog, GUI auth/probe/logs, per-tool gating 2026-07-03 05:08:28 -05:00
media.remote.test.ts fix(desktop): render remote markdown images in chat (#57944) 2026-07-23 00:16:20 -05:00
media.ts fix(desktop): render remote markdown images in chat (#57944) 2026-07-23 00:16:20 -05:00
model-options.test.ts fix(desktop): scope model options by profile (#62795) 2026-07-22 09:40:50 -04:00
model-options.ts fix(desktop): scope model options by profile (#62795) 2026-07-22 09:40:50 -04:00
model-search-text.ts fmt(js): npm run fix on merge (#72522) 2026-07-27 07:00:22 +00:00
model-status-label.test.ts Merge pull request #71601 from helix4u/fix/desktop-model-picker-authority 2026-07-25 21:20:54 -05:00
model-status-label.ts Merge pull request #71601 from helix4u/fix/desktop-model-picker-authority 2026-07-25 21:20:54 -05:00
mutable-ref.ts chore(desktop): zero eslint/typecheck debt + prettier pass (#39100) 2026-06-04 14:10:38 +00:00
oneshot.ts feat(desktop): add shared project UI primitives 2026-06-25 16:40:27 -05:00
persisted.ts feat(desktop): add shared project UI primitives 2026-06-25 16:40:27 -05:00
pool.test.ts style(desktop,tui): fix all lint/type/formatting issues 2026-06-26 01:04:33 -05:00
pool.ts feat(desktop): add shared project UI primitives 2026-06-25 16:40:27 -05:00
preview-targets.test.ts
preview-targets.ts
profile-color.ts style(desktop,tui): fix all lint/type/formatting issues 2026-06-26 01:04:33 -05:00
project-idea-templates.ts style(desktop,tui): fix all lint/type/formatting issues 2026-06-26 01:04:33 -05:00
provider-setup-errors.test.ts fix(desktop): stop spurious provider onboarding from credential warnings 2026-07-23 00:18:21 -05:00
provider-setup-errors.ts fix(desktop): stop spurious provider onboarding from credential warnings 2026-07-23 00:18:21 -05:00
query-client.test.ts perf(desktop): scope tool-diff subscriptions + narrow profile query invalidation 2026-07-18 19:15:57 -04:00
query-client.ts perf(desktop): scope tool-diff subscriptions + narrow profile query invalidation 2026-07-18 19:15:57 -04:00
raf-coalesce.ts refactor(desktop): extract shared rafCoalesce helper for sash drags 2026-07-19 22:38:57 -05:00
reasoning-effort.test.ts refactor(desktop): give reasoning effort one owner 2026-07-25 20:51:18 -05:00
reasoning-effort.ts refactor(desktop): give reasoning effort one owner 2026-07-25 20:51:18 -05:00
renderer-loop-pause.ts fix(desktop): suspend decorative work when inactive 2026-07-26 21:05:55 -05:00
reorder.ts feat(desktop): store + lib — layout/preview/session atoms, escape-layers, keybind helpers 2026-07-13 17:57:54 -04:00
runtime-readiness.test.ts style(desktop,tui): fix all lint/type/formatting issues 2026-06-26 01:04:33 -05:00
runtime-readiness.ts style(desktop,tui): fix all lint/type/formatting issues 2026-06-26 01:04:33 -05:00
sanitize.test.ts feat(desktop): add shared project UI primitives 2026-06-25 16:40:27 -05:00
sanitize.ts feat(desktop): add shared project UI primitives 2026-06-25 16:40:27 -05:00
selectable-card.ts feat(desktop): floating pet, pop-out overlay + Cmd+K picker 2026-06-20 14:18:40 -05:00
session-branch-tree.test.ts fix(desktop): keep pinned sidebar rows in user order 2026-07-27 01:38:21 -05:00
session-branch-tree.ts fmt(js): npm run fix on merge (#72522) 2026-07-27 07:00:22 +00:00
session-date-groups.test.ts feat(desktop): date dividers in the sessions sidebar 2026-07-24 10:45:34 -05:00
session-date-groups.ts feat(desktop): date dividers in the sessions sidebar 2026-07-24 10:45:34 -05:00
session-export.ts fix(desktop): route profile session reads 2026-06-11 18:09:24 -05:00
session-ids.test.ts test(desktop): cover runtime->stored notification id resolution 2026-06-19 17:50:35 +05:30
session-ids.ts fix(desktop): resume stored session id on notification click 2026-06-19 17:50:35 +05:30
session-link-title.test.ts fmt(js): npm run fix on merge (#71532) 2026-07-25 19:11:39 +00:00
session-link-title.ts feat(desktop): render agent-written @session links as chips 2026-07-24 22:52:45 -05:00
session-refs.test.ts feat(session-search): give the agent a link to hand back 2026-07-24 23:30:25 -05:00
session-refs.ts feat(session-search): give the agent a link to hand back 2026-07-24 23:30:25 -05:00
session-search.test.ts fix(desktop): match sessions by git branch in ctrl-k palette and sidebar search (#65172) 2026-07-15 15:37:12 -04:00
session-search.ts fix(desktop): match sessions by git branch in ctrl-k palette and sidebar search (#65172) 2026-07-15 15:37:12 -04:00
session-signatures.test.ts fmt(js): npm run fix on merge (#65229) 2026-07-15 21:40:56 +00:00
session-signatures.ts feat(desktop): store + lib — layout/preview/session atoms, escape-layers, keybind helpers 2026-07-13 17:57:54 -04:00
session-source.ts refactor(desktop): adopt shared utils + app-wide cleanups 2026-07-03 13:48:44 -05:00
speech-text.ts
stable-array.ts refactor(desktop): DRY the computed-dedup into stableArray + freeze 2026-07-19 19:46:09 -05:00
statusbar.tsx fix(desktop): prevent timers from shifting as they count (#68131) 2026-07-20 16:39:20 +00:00
storage.test.ts fix(desktop): keep recents sorted unless manually reordered (#45404) 2026-06-13 00:38:10 -05:00
storage.ts feat(desktop): store + lib — layout/preview/session atoms, escape-layers, keybind helpers 2026-07-13 17:57:54 -04:00
summarize-command.test.ts style(desktop,tui): fix all lint/type/formatting issues 2026-06-26 01:04:33 -05:00
summarize-command.ts fix(desktop): compact tool row titles 2026-06-25 00:01:11 -05:00
svg-image.ts feat(desktop): zoomable primitive — open full, pan/zoom, copy 2026-06-26 03:40:49 -05:00
text.ts feat(desktop): Capabilities foundation — shared utils, master-detail, editors, primitives 2026-07-03 05:08:13 -05:00
time.test.ts feat(desktop): date dividers in the sessions sidebar 2026-07-24 10:45:34 -05:00
time.ts fmt(js): npm run fix on merge (#70845) 2026-07-24 16:36:59 +00:00
todos.test.ts feat(desktop): composer status stack, live subagent windows, editable prompts (#44630) 2026-06-12 08:30:06 -05:00
todos.ts feat(desktop): composer status stack, live subagent windows, editable prompts (#44630) 2026-06-12 08:30:06 -05:00
tool-result-summary.test.ts
tool-result-summary.ts refactor(desktop): adopt shared utils + app-wide cleanups 2026-07-03 13:48:44 -05:00
tool-run-continuity.test.ts feat(desktop): summarize a run of tool calls as one line 2026-07-27 18:10:26 -05:00
trackpad-gestures.ts feat(desktop): Memory Graph — playable radial timeline of memories + skills 2026-06-30 00:54:21 -05: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.test.tsx fix(desktop): stop the enter animation pinning opacity over the stylesheet 2026-07-27 19:54:47 -05:00
use-enter-animation.ts fix(desktop): stop the enter animation pinning opacity over the stylesheet 2026-07-27 19:54:47 -05:00
use-session-slice.ts perf(desktop): stop the statusbar re-rendering per streaming token 2026-07-26 14:21:34 -05:00
utils.ts
voice-barge-in.ts feat(voice): desktop speech-stream sessions with barge-in capture 2026-07-22 17:47:25 -05:00
voice-playback.ts feat(voice): desktop flags interrupted submits 2026-07-22 17:53:06 -05:00
yolo-session.ts style(desktop,tui): fix all lint/type/formatting issues 2026-06-26 01:04:33 -05:00