hermes-agent/apps/desktop/src/store
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.ts Add Hermes desktop app (#20059) 2026-05-31 17:46:56 -05:00
background-delegation.test.ts feat(desktop): add $backgroundResume store for parked delegate_task 2026-06-25 19:57:45 -05:00
background-delegation.ts feat(desktop): add $backgroundResume store for parked delegate_task 2026-06-25 19:57:45 -05:00
boot.ts feat(desktop): persist i18n language in config 2026-06-05 10:32:26 -07:00
clarify.test.ts fix(desktop): surface background-session clarify prompts instead of hanging 2026-06-03 21:07:33 -05:00
clarify.ts fix(desktop): surface background-session clarify prompts instead of hanging 2026-06-03 21:07:33 -05:00
coding-status.test.ts feat(desktop): add project and coding stores 2026-06-25 16:40:27 -05:00
coding-status.ts feat(desktop): make the git cockpit work over a remote gateway 2026-06-28 14:26:09 -05:00
command-palette.ts feat(desktop): floating pet, pop-out overlay + Cmd+K picker 2026-06-20 14:18:40 -05:00
compaction.test.ts fix(desktop): polish compaction indicator and preserve scrollback 2026-06-14 02:48:48 -05:00
compaction.ts fix(desktop): polish compaction indicator and preserve scrollback 2026-06-14 02:48:48 -05:00
completion-sound.ts feat(desktop): add curated completion cue for agent turn completion (#42480) 2026-06-14 00:21:40 -05:00
composer-input-history.test.ts style(desktop,tui): fix all lint/type/formatting issues 2026-06-26 01:04:33 -05:00
composer-input-history.ts style(desktop,tui): fix all lint/type/formatting issues 2026-06-26 01:04:33 -05:00
composer-popout.ts style(desktop,tui): fix all lint/type/formatting issues 2026-06-26 01:04:33 -05:00
composer-queue.test.ts fix(desktop): stop stranding queued prompts across backend bounces 2026-06-13 00:20:51 -05:00
composer-queue.ts style(desktop,tui): fix all lint/type/formatting issues 2026-06-26 01:04:33 -05:00
composer-status.test.ts feat(desktop): keep active sessions aligned with cwd 2026-06-25 16:40:27 -05:00
composer-status.ts feat(desktop): keep active sessions aligned with cwd 2026-06-25 16:40:27 -05:00
composer.test.ts style(desktop,tui): fix all lint/type/formatting issues 2026-06-26 01:04:33 -05:00
composer.ts feat(desktop): strict per-thread drafts on decoupled composer 2026-06-11 00:01:06 -05:00
cron.ts fix(desktop): cron overlay mutations sync the sidebar instantly 2026-06-06 16:47:46 -05:00
embed-consent.ts feat(desktop): consent gate for inline embeds (per-embed / per-service) 2026-06-26 13:35:01 -05:00
file-actions.ts feat(desktop): add Codex-style review pane 2026-06-25 16:40:27 -05:00
gateway.ts refactor(desktop+dashboard): extract shared WebSocket/JSON-RPC layer 2026-06-28 21:20:35 -05:00
haptics.ts Add Hermes desktop app (#20059) 2026-05-31 17:46:56 -05:00
hub-actions.ts fix(desktop,gateway,mcp): post-merge — CI contract, review corrections, hub search 2026-07-03 15:22:43 -05:00
keybinds.ts style(desktop,tui): fix all lint/type/formatting issues 2026-06-26 01:04:33 -05:00
layout.ts style(desktop,tui): fix all lint/type/formatting issues 2026-06-26 01:04:33 -05:00
model-presets.test.ts feat(desktop): per-model effort/fast presets in the picker 2026-06-16 00:08:20 -05:00
model-presets.ts feat(desktop): per-model effort/fast presets in the picker 2026-06-16 00:08:20 -05:00
model-visibility.test.ts style(desktop,tui): fix all lint/type/formatting issues 2026-06-26 01:04:33 -05:00
model-visibility.ts style(desktop,tui): fix all lint/type/formatting issues 2026-06-26 01:04:33 -05:00
native-notifications.test.ts feat(pets): quality-first OpenRouter model chain + stronger atlas gates + global pet-gen notifications 2026-06-24 23:11:21 -05:00
native-notifications.ts feat(pets): quality-first OpenRouter model chain + stronger atlas gates + global pet-gen notifications 2026-06-24 23:11:21 -05:00
notifications.ts refactor(desktop): adopt shared utils + app-wide cleanups 2026-07-03 13:48:44 -05:00
onboarding.test.ts style(desktop,tui): fix all lint/type/formatting issues 2026-06-26 01:04:33 -05:00
onboarding.ts feat(auth): make xAI Grok OAuth device-code-only, drop loopback login 2026-07-02 13:17:41 -07:00
panes.test.ts Add Hermes desktop app (#20059) 2026-05-31 17:46:56 -05:00
panes.ts style(desktop,tui): fix all lint/type/formatting issues 2026-06-26 01:04:33 -05:00
pet-gallery.ts refactor(desktop): adopt shared utils + app-wide cleanups 2026-07-03 13:48:44 -05:00
pet-generate.ts refactor(desktop): adopt shared utils + app-wide cleanups 2026-07-03 13:48:44 -05:00
pet-overlay.ts feat(desktop): Alt+wheel to scale the pet, never cropped 2026-06-26 00:33:22 -05:00
pet.test.ts feat(desktop): add pet roam + motion/direction store signals 2026-06-29 14:26:02 -05:00
pet.ts feat(desktop): add pet roam + motion/direction store signals 2026-06-29 14:26:02 -05:00
preview-edit.ts feat(desktop): in-app spot editor for the file preview pane 2026-06-25 19:50:25 -05:00
preview-status.test.ts feat(desktop): detect tool previews into composer status stack 2026-06-22 19:22:11 -05:00
preview-status.ts feat(desktop): detect tool previews into composer status stack 2026-06-22 19:22:11 -05:00
preview.test.ts fix(desktop): toggle preview rail and open in browser 2026-06-22 19:22:11 -05:00
preview.ts refactor(desktop): adopt shared utils + app-wide cleanups 2026-07-03 13:48:44 -05:00
profile.test.ts fix(desktop): refresh profile rail after deletion (#49289) 2026-07-02 15:18:49 -05:00
profile.ts fix(desktop): extend startup long-timeout to the whole boot data burst 2026-07-02 19:36:43 -05:00
projects.test.ts test(desktop): cover projects RPC capability probing 2026-06-30 21:23:38 +07:00
projects.ts refactor(desktop): adopt shared utils + app-wide cleanups 2026-07-03 13:48:44 -05:00
prompts.test.ts fix(desktop): treat a pending prompt as paused-on-you, not working 2026-06-26 03:55:34 -05:00
prompts.ts fix(desktop): treat a pending prompt as paused-on-you, not working 2026-06-26 03:55:34 -05:00
review.ts feat(desktop): make the git cockpit work over a remote gateway 2026-06-28 14:26:09 -05:00
session-switcher.test.ts feat(desktop): Mac-style session switcher (^Tab / ^⇧Tab / ^1-9) (#43111) 2026-06-09 20:12:46 -05:00
session-switcher.ts style(desktop,tui): fix all lint/type/formatting issues 2026-06-26 01:04:33 -05:00
session-sync.ts fix(desktop): sync new sessions across windows 2026-06-15 20:59:57 -05:00
session-watchdog.test.ts fix(desktop): let the session watchdog heal a stuck "looping" turn 2026-06-24 18:36:17 -05:00
session.test.ts style(desktop,tui): fix all lint/type/formatting issues 2026-06-26 01:04:33 -05:00
session.ts style(desktop,tui): fix all lint/type/formatting issues 2026-06-26 01:04:33 -05:00
starmap.ts refactor(desktop): adopt shared utils + app-wide cleanups 2026-07-03 13:48:44 -05:00
subagents.test.ts fix(desktop): make Agents indicator match the Spawn-tree panel 2026-06-24 18:16:14 -05:00
subagents.ts refactor(desktop): adopt shared utils + app-wide cleanups 2026-07-03 13:48:44 -05:00
system-actions.ts feat(desktop): restart the gateway from Cmd+K, with statusbar spinner feedback 2026-06-19 10:02:54 -05:00
thread-scroll.ts fix(desktop): rebuild thread autoscroll on use-stick-to-bottom 2026-06-13 01:57:30 -05:00
todos.test.ts fix(desktop): clear stale active todos on turn end AND on rehydration 2026-07-02 21:22:45 -05:00
todos.ts fix(desktop): clear stale active todos on turn end AND on rehydration 2026-07-02 21:22:45 -05:00
tool-diffs.ts Add Hermes desktop app (#20059) 2026-05-31 17:46:56 -05:00
tool-dismiss.ts fix(desktop): persist tool-row dismissal across virtualization; keep caret hittable 2026-06-12 17:34:48 -05:00
tool-view.ts Add Hermes desktop app (#20059) 2026-05-31 17:46:56 -05:00
translucency.ts feat(desktop): window translucency slider in Appearance settings (#45086) 2026-06-12 12:02:38 -05:00
updates.test.ts fix(desktop): use gift codicon for update-available toast 2026-07-03 00:56:16 -05:00
updates.ts refactor(desktop): adopt shared utils + app-wide cleanups 2026-07-03 13:48:44 -05:00
voice-playback.ts Add Hermes desktop app (#20059) 2026-05-31 17:46:56 -05:00
voice-prefs.ts feat(desktop): mirror voice.auto_tts into an $autoSpeakReplies store 2026-06-29 15:22:37 -05:00
windows.test.ts feat(desktop): open new sessions in compact windows 2026-06-15 20:59:57 -05:00
windows.ts feat(desktop): open new sessions in compact windows 2026-06-15 20:59:57 -05:00
workspace-events.ts feat(desktop): add project and coding stores 2026-06-25 16:40:27 -05:00