hermes-agent/apps/desktop/src/store
Brooklyn Nicholson 70ba3c4828 feat(desktop): agent can focus panes + shared desktop-UI event bridge
Extract the open_preview emitter into a shared tools/desktop_ui bridge
(one gateway-injected sink, routed by HERMES_UI_SESSION_ID) and add a
second desktop-gated tool on top of it:

- focus_pane(chat|files|terminal|review|sessions) -> pane.reveal event.
  The desktop runs each pane's own reveal path (revealDesktopPane table)
  and only acts on the active window -- a background turn never moves the
  user's focus (desktop AGENTS.md: offer, don't hijack).

open_preview now emits through the same bridge. Both tools are check_fn
on HERMES_DESKTOP (zero footprint elsewhere), sitting beside
read_terminal/close_terminal in _HERMES_CORE_TOOLS.

Deliberately not adding run_slash: letting the agent fire slash commands
mid-turn (/model, /new, /clear) fights prompt-cache + conversation
invariants.
2026-07-22 12:13:01 -05:00
..
activity.ts Add Hermes desktop app (#20059) 2026-05-31 17:46:56 -05:00
ambient.ts fix(desktop): de-dupe cross-window cues so peers don't spam 2026-07-20 18:33:14 -05:00
approval-mode.test.ts fmt(js): npm run fix on merge (#65912) 2026-07-16 19:57:39 +00:00
approval-mode.ts fmt(js): npm run fix on merge (#65229) 2026-07-15 21:40:56 +00:00
backdrop.ts refactor(desktop): trim backdrop store to match tool-view style 2026-07-14 16:59:57 -04: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 fix(desktop): kill loading bar in boot-failure e2e screenshots 2026-07-20 11:44:41 -04:00
clarify.test.ts fix(desktop): surface background-session clarify prompts instead of hanging 2026-06-03 21:07:33 -05:00
clarify.ts feat(desktop): store + lib — layout/preview/session atoms, escape-layers, keybind helpers 2026-07-13 17:57:54 -04:00
coding-status.test.ts fix(desktop): refresh repo status on session switch with unchanged cwd (#68208) 2026-07-20 20:01:28 +00:00
coding-status.ts fix(desktop): refresh repo status on session switch with unchanged cwd (#68208) 2026-07-20 20:01:28 +00: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 parks the queue instead of firing the next queued prompt 2026-07-20 23:35:13 -04:00
composer-queue.ts fix(desktop): Stop parks the queue instead of firing the next queued prompt 2026-07-20 23:35:13 -04:00
composer-status.test.ts feat(desktop): keep active sessions aligned with cwd 2026-06-25 16:40:27 -05:00
composer-status.ts refactor(desktop): DRY the computed-dedup into stableArray + freeze 2026-07-19 19:46:09 -05:00
composer.test.ts fix(desktop): keep composer draft across compression tip rotation (#68079) 2026-07-20 20:55:04 -04:00
composer.ts fix(desktop): keep composer draft across compression tip rotation (#68079) 2026-07-20 20:55:04 -04: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-switch.test.ts fix(desktop): keep quiet sessions visibly running (#65870) 2026-07-20 10:31:58 -04:00
gateway-switch.ts fix(desktop): keep quiet sessions visibly running (#65870) 2026-07-20 10:31:58 -04:00
gateway.ts perf(desktop): pre-warm opens the gateway socket too, not just the spawn 2026-07-17 13:11:05 -04: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
keep-awake.test.ts refactor(desktop): drop keep-awake statusbar toggle; persist in main 2026-07-20 13:57:41 -05:00
keep-awake.ts refactor(desktop): drop keep-awake statusbar toggle; persist in main 2026-07-20 13:57:41 -05:00
keybinds.ts feat(desktop): button tooltip keybind hints + keybinds settings tab + unified worktree dialog (#65204) 2026-07-16 18:26:21 -04:00
layout.ts feat(desktop): store + lib — layout/preview/session atoms, escape-layers, keybind helpers 2026-07-13 17:57:54 -04:00
model-presets.test.ts fix(desktop): preserve new-chat selector choices (#67729) 2026-07-19 19:31:34 -04:00
model-presets.ts fix(desktop): scope multi-pane model UI and stabilize tile chrome (#67855) 2026-07-20 05:11:36 +00: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 test(desktop): fix a handful of broken tests 2026-07-13 17:22:17 -04:00
onboarding.ts fix(desktop): scope model options by profile (#62795) 2026-07-22 09:40:50 -04:00
pane-focus.test.ts feat(desktop): agent can focus panes + shared desktop-UI event bridge 2026-07-22 12:13:01 -05:00
pane-focus.ts feat(desktop): agent can focus panes + shared desktop-UI event bridge 2026-07-22 12:13:01 -05:00
panes.test.ts test(desktop): fix a handful of broken tests 2026-07-13 17:22:17 -04:00
panes.ts feat(desktop): store + lib — layout/preview/session atoms, escape-layers, keybind helpers 2026-07-13 17:57:54 -04: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 fmt(js): npm run fix on merge (#65229) 2026-07-15 21:40:56 +00: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): TikTok-style vibe hearts on a reusable particle system 2026-07-10 05:42:14 -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 test(desktop): fix session preview registry tests fails 2026-07-13 17:22:17 -04:00
preview.ts fmt(js): npm run fix on merge (#68681) 2026-07-21 14:28:28 +00:00
profile.test.ts perf(desktop): scope tool-diff subscriptions + narrow profile query invalidation 2026-07-18 19:15:57 -04:00
profile.ts perf(desktop): scope tool-diff subscriptions + narrow profile query invalidation 2026-07-18 19:15:57 -04:00
projects.test.ts fmt(js): npm run fix on merge (#68681) 2026-07-21 14:28:28 +00:00
projects.ts fmt(js): npm run fix on merge (#68681) 2026-07-21 14:28:28 +00: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 fmt(js): npm run fix on merge (#65229) 2026-07-15 21:40:56 +00:00
provider-collapse.ts fmt(js): npm run fix on merge (#67995) 2026-07-20 10:47:15 +00:00
review.test.ts fmt(js): npm run fix on merge (#66460) 2026-07-17 18:53:03 +00:00
review.ts fix(desktop): don't auto-expand user-collapsed side on reactive unhide (#65375) 2026-07-18 23:49:37 -04:00
route-tiles.ts feat(desktop): store + lib — layout/preview/session atoms, escape-layers, keybind helpers 2026-07-13 17:57:54 -04:00
session-color.test.ts feat(desktop): per-session color override (#66565 layer 2) (#67681) 2026-07-19 16:05:16 -05:00
session-color.ts feat(desktop): per-session color override (#66565 layer 2) (#67681) 2026-07-19 16:05:16 -05:00
session-states.test.ts fix(desktop): scope multi-pane model UI and stabilize tile chrome (#67855) 2026-07-20 05:11:36 +00:00
session-states.ts fix(desktop): keep quiet sessions visibly running (#65870) 2026-07-20 10:31:58 -04: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): keep quiet sessions visibly running (#65870) 2026-07-20 10:31:58 -04:00
session.test.ts fix(desktop): keep composer draft across compression tip rotation (#68079) 2026-07-20 20:55:04 -04:00
session.ts fix(desktop): keep composer draft across compression tip rotation (#68079) 2026-07-20 20:55:04 -04:00
sidebar-collapse-persistence.test.ts fix(desktop): layout reset reopens collapsed sidebars 2026-07-15 03:30:25 -04: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.test.ts perf(desktop): scope tool-diff subscriptions + narrow profile query invalidation 2026-07-18 19:15:57 -04:00
tool-diffs.ts perf(desktop): scope tool-diff subscriptions + narrow profile query invalidation 2026-07-18 19:15:57 -04: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): preserve new-chat selector choices (#67729) 2026-07-19 19:31:34 -04:00
updates.ts fix(desktop): preserve new-chat selector choices (#67729) 2026-07-19 19:31:34 -04: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): wire New Window to ⌘⇧N + command palette 2026-07-20 18:02:48 -05:00
windows.ts feat(desktop): wire New Window to ⌘⇧N + command palette 2026-07-20 18:02:48 -05:00
workspace-events.ts perf(desktop): targeted file-tree revalidation instead of whole-tree rescan 2026-07-19 21:56:57 -05:00
zoom.ts feat(desktop): ts-ify everything 2026-07-08 16:24:16 -07:00