hermes-agent/apps/desktop/src/app/settings
Teknium 97524344ad
feat(desktop): run tool backend post-setup installs from the GUI (#40559)
Complete the desktop app's tool-backend configuration so it fully
mirrors `hermes tools`. The toolset config panel already did
enable/disable, provider selection, and API-key save/reveal/clear — the
one remaining gap was post-setup install hooks, which previously just
told the user to run the CLI.

Now a provider that declares a post_setup hook (browser Chromium,
Camofox, cua-driver, KittenTTS/Piper, ddgs, Spotify, Langfuse, xAI)
renders a 'Run setup' button that spawns the install via the
`POST /api/tools/toolsets/{name}/post-setup` endpoint and tails the
log inline, feeding the desktop activity rail — mirroring
command-center's runSystemAction poll loop. On completion the panel
refreshes so a now-installed backend reports itself ready.

- hermes.ts: runToolsetPostSetup(name, key) -> profile-scoped POST.
- toolset-config-panel.tsx: PostSetupRunner sub-component (Run setup
  button + inline live log + activity-rail upsert + unmount guard),
  replacing the CLI-only placeholder.
- i18n: replace the orphaned `toolsets.postSetup` (CLI redirect) string
  with proper post-setup UI keys (hint / run / running / starting /
  complete / error / failed) across en, ja, zh, zh-hant + types.
- test: post-setup run+poll+log-tail coverage; mock additions for
  runToolsetPostSetup/getActionStatus/activity store.

Works against local AND remote backends: all calls route through the
desktop's single `hermes:api` IPC handler to connection.baseUrl, so a
connected remote configures the remote host's tools (keys -> remote
.env, install runs on the remote). Relies on the post-setup endpoint +
'hermes tools post-setup' CLI shipped in #40418.

Verification: tsc -b clean (all 5 locales), eslint clean (the lone
exhaustive-deps warning is pre-existing on origin/main), vitest 4/5
(new post-setup test passes; the failing 'saves an API key' test fails
identically on origin/main — pre-existing EnvVarActionsMenu drift).
2026-06-06 18:35:02 -07:00
..
about-settings.tsx feat: uninstall the Chat GUI without removing the agent (CLI + desktop UI) (#40355) 2026-06-06 18:22:38 -07:00
appearance-settings.tsx feat(desktop): unified overlay design system, BrandMark & onboarding redesign (#40708) 2026-06-06 16:32:47 -05:00
config-settings.tsx Refactor desktop settings i18n keys to camelCase 2026-06-06 07:51:44 -07:00
constants.ts Refactor desktop settings i18n keys to camelCase 2026-06-06 07:51:44 -07:00
credential-key-ui.tsx feat(desktop): unified overlay design system, BrandMark & onboarding redesign (#40708) 2026-06-06 16:32:47 -05:00
env-credentials.tsx Refactor desktop i18n field copy into nested structures 2026-06-06 07:51:44 -07:00
env-var-actions-menu.tsx Refactor desktop i18n field copy into nested structures 2026-06-06 07:51:44 -07:00
field-copy.ts Refactor desktop settings i18n keys to camelCase 2026-06-06 07:51:44 -07:00
gateway-settings.tsx feat(desktop): unified overlay design system, BrandMark & onboarding redesign (#40708) 2026-06-06 16:32:47 -05:00
helpers.test.ts Refactor desktop settings i18n keys to camelCase 2026-06-06 07:51:44 -07:00
helpers.ts feat(desktop): polish credentials settings and messaging env routing (#39217) 2026-06-04 14:01:15 -04:00
index.tsx feat: Add desktop language switching for Japanese and Traditional Chinese 2026-06-06 07:51:44 -07:00
keys-settings.tsx Refactor desktop i18n field copy into nested structures 2026-06-06 07:51:44 -07:00
mcp-settings.tsx Refactor desktop i18n field copy into nested structures 2026-06-06 07:51:44 -07:00
model-settings.test.tsx feat(desktop): surface every provider + models from hermes model in the GUI menus (#40563) 2026-06-06 16:31:34 +00:00
model-settings.tsx feat(desktop): surface every provider + models from hermes model in the GUI menus (#40563) 2026-06-06 16:31:34 +00:00
primitives.tsx style(desktop): migrate bespoke pills to shared Badge; tidy cron/titlebar 2026-06-03 23:52:51 -05:00
providers-settings.tsx feat(desktop): unified overlay design system, BrandMark & onboarding redesign (#40708) 2026-06-06 16:32:47 -05:00
sessions-settings.tsx Refactor desktop i18n field copy into nested structures 2026-06-06 07:51:44 -07:00
toolset-config-panel.test.tsx feat(desktop): run tool backend post-setup installs from the GUI (#40559) 2026-06-06 18:35:02 -07:00
toolset-config-panel.tsx feat(desktop): run tool backend post-setup installs from the GUI (#40559) 2026-06-06 18:35:02 -07:00
types.ts feat(desktop): dedicated Providers settings + polished Accounts/API-keys UX (#38551) 2026-06-04 03:03:42 -05:00
uninstall-section.tsx feat: uninstall the Chat GUI without removing the agent (CLI + desktop UI) (#40355) 2026-06-06 18:22:38 -07:00
use-deep-link-highlight.ts refactor(desktop): DRY/elegance pass over PR-touched files 2026-06-04 00:28:57 -05:00