hermes-agent/apps/desktop/src/components/chat
Brooklyn Nicholson 914d19b3a9 fix(desktop,gateway,mcp): post-merge — CI contract, review corrections, hub search
Post-merge follow-ups + several review rounds + a hub-search rework, folded together.

Merge-scuff restores (a stale-base refactor had reverted two live-on-main fixes):
- gateway: SessionStore compression-tip healing + its regression test.
- desktop: messaging session/transcript polling in desktop-controller
  (MESSAGING_POLL / ACTIVE_MESSAGING_SESSION_POLL, refreshMessagingSessions,
  refreshActiveMessagingTranscript, the richer sameCronSignature) so inbound
  platform traffic updates live again instead of freezing until manual refresh.

Profile-switch isolation (epoch/close/guard on every profile-scoped async):
- Hub store clears + in-flight runHubAction bails (and swallows the post-switch
  404 instead of a phantom toast); hub preview/scan/search/sources profile-scoped.
- MCP: probe/auth epoch guards, dirty-draft reset, sidebar mutations blocked
  until config resettles AND every persist re-checks the epoch post-await;
  profilePending clears on config settle incl. error; logs re-key on profile.
- Model settings reload on switch and epoch-guard setModelAssignment /
  saveMoaModels / API-key activation.
- Config draft resets + cancels its autosave on switch; skill editor/archive and
  star-map node dialogs close on switch; openSkillEditor / star-map openEdit
  discard stale fetches; tool-usage analytics loads are profile-guarded/keyed.

Correctness + UX:
- Unique per-skill action names for hub install AND uninstall; hub/​catalog rows
  flip only on a clean exit_code; catalog install polls the background bootstrap
  to completion, reconciles the mcp.json draft (no dropped server), and fails
  loudly on non-zero exit; MCP catalog query keyed by profile.
- /test reports needs-auth for anonymous auth:oauth servers; /auth snapshots +
  restores tokens on a failed re-auth and clears the full 300s callback window.
- config-settings shows a retry on load failure; CodeEditor/JsonDocumentEditor
  go read-only while saving so edits typed mid-save aren't dropped.
- Deep-link highlighter deletes its param only after a successful scroll.
- Restored the PageSearchShell trailing slot → Artifacts refresh button/spinner.
- /settings?tab=mcp redirect keeps server=.

Progressive hub search: fan out one query per backend-searchable source
(index-covered API sources stay unsearchable → no ~70-call GitHub re-hammer),
merge/dedupe by trust as each lands, per-source spinner overlaid on the dimmed
chip — results stream in without blocking on the slowest, no layout shift.

test(web): /api/skills list carries usage + provenance (CI contract).
2026-07-03 15:22:43 -05:00
..
activity-timer-text.tsx Add Hermes desktop app (#20059) 2026-05-31 17:46:56 -05:00
activity-timer.test.tsx Add Hermes desktop app (#20059) 2026-05-31 17:46:56 -05:00
activity-timer.ts Add Hermes desktop app (#20059) 2026-05-31 17:46:56 -05:00
code-card.tsx perf(desktop): keep oversized messages from freezing the chat 2026-06-17 08:25:52 -05:00
code-editor-theme.ts style(desktop,tui): fix all lint/type/formatting issues 2026-06-26 01:04:33 -05:00
code-editor.tsx fix(desktop,gateway,mcp): post-merge — CI contract, review corrections, hub search 2026-07-03 15:22:43 -05:00
compact-markdown.tsx Add Hermes desktop app (#20059) 2026-05-31 17:46:56 -05:00
composer-dock.ts fix(desktop): composer popout polish — peel-off placement, panels, chip editing 2026-06-20 02:10:38 -05:00
diff-lines.tsx style(desktop,tui): fix all lint/type/formatting issues 2026-06-26 01:04:33 -05:00
disclosure-row.tsx fix(desktop): persist tool-row dismissal across virtualization; keep caret hittable 2026-06-12 17:34:48 -05:00
expandable-block.tsx style(desktop,tui): fix all lint/type/formatting issues 2026-06-26 01:04:33 -05:00
fixed-row-window.ts feat(desktop): add shared project UI primitives 2026-06-25 16:40:27 -05:00
generated-image-result.tsx style(desktop,tui): fix all lint/type/formatting issues 2026-06-26 01:04:33 -05:00
image-generation-placeholder.tsx refactor(desktop): share theme-repaint observer; memory-graph depth polish 2026-06-30 02:06:29 -05:00
intro-copy.jsonl Add Hermes desktop app (#20059) 2026-05-31 17:46:56 -05:00
intro.tsx refactor(desktop): adopt shared utils + app-wide cleanups 2026-07-03 13:48:44 -05:00
json-document-editor.tsx fix(desktop,gateway,mcp): post-merge — CI contract, review corrections, hub search 2026-07-03 15:22:43 -05:00
log-tail.tsx feat(desktop): Capabilities foundation — shared utils, master-detail, editors, primitives 2026-07-03 05:08:13 -05:00
preview-attachment.tsx fix(desktop): stop auto-opening tool previews 2026-06-22 19:21:20 -05:00
shiki-highlighter.test.ts perf(desktop): keep oversized messages from freezing the chat 2026-06-17 08:25:52 -05:00
shiki-highlighter.tsx style(desktop): soften dark-mode syntax highlighting 2026-06-22 05:16:18 -05:00
skeletons.tsx feat(desktop): add shared project UI primitives 2026-06-25 16:40:27 -05:00
status-row.tsx refactor(desktop): adopt shared utils + app-wide cleanups 2026-07-03 13:48:44 -05:00
status-section.tsx feat(desktop): composer status stack, live subagent windows, editable prompts (#44630) 2026-06-12 08:30:06 -05:00
terminal-output.tsx style(desktop,tui): fix all lint/type/formatting issues 2026-06-26 01:04:33 -05:00
zoomable-image.tsx style(desktop,tui): fix all lint/type/formatting issues 2026-06-26 01:04:33 -05:00