hermes-agent/apps/desktop/src/store
Austin Pickett 9cbc37e25b
feat(desktop): dedicated Providers settings + polished Accounts/API-keys UX (#38551)
* feat(desktop): dedicated Providers settings with Accounts/API-keys subnav

Rework provider configuration in the desktop app into its own Providers
page that mirrors the first-run onboarding picker, instead of burying
provider keys in the generic Tools & Keys list.

- Add a Providers settings page (providers-settings.tsx) reusing the
  onboarding picker cards/ApiKeyForm so the two surfaces stay identical
- Add a sidebar subnav (Accounts vs API keys) backed by a deep-linkable
  `pview` URL param; nested OverlayNavItem variant for a lighter active
  state so children don't compete with the parent item
- Scope provider search to the active sub-view in its native card format
  (no more accordion fallback); collapse the API-key grid to the top
  providers behind a "Show all" toggle to cut scrolling
- Launch real in-app OAuth from settings via startManualProviderOAuth;
  fix the misleading red "reason" banner that showed during an active
  connect (neutral style, hidden during a flow, omitted for direct
  per-provider launches)
- Expand PROVIDER_GROUPS and add longest-prefix matching so providers
  like xAI/Ollama group correctly instead of landing under "Other"
- Drop redundant messaging API keys from Tools & Keys (channel_managed)

Co-authored-by: Cursor <cursoragent@cursor.com>

* feat(desktop): Cursor-style provider key list with inline inputs

Replace the card-grid API-key form on the Providers page with a
per-provider list (mirrors Cursor's API keys section):

- One row per vendor with its primary key input inline; rows with extra
  vars (base URL, region, alt tokens) expand to reveal those on focus
- Set keys show their redacted value as the placeholder; Save appears on
  edit, Remove on a set key
- Hide redundant alias key fields (e.g. ANTHROPIC_TOKEN vs
  ANTHROPIC_API_KEY) unless already set, and label set aliases by env var
  name so they're unambiguous
- Smaller mono input text + compact height

Co-authored-by: Cursor <cursoragent@cursor.com>

* style(desktop): flatten providers settings UI chrome

Tighten the providers settings surface to match the newer desktop style:
remove extra card rails/borders in API-key rows, reduce visual noise in the
providers subnav, replace bespoke link-like controls with shared text-button
variants, and improve key input readability.

* feat(desktop): rework providers settings UI

- Flatten the shared OAuth picker rows (accounts + onboarding): drop the
  rounded-2xl/border cards for flat hover-bg rows; Nous hero keeps a subtle
  tint plus an animated blue→purple arc border.
- Key fields collapse to a single input: a set key reads read-only (redacted)
  and edits in place on focus/click — no Replace/Cancel chrome. Save on type,
  Esc cancels (without closing the overlay), "Remove or esc to cancel" hint.
- Non-key overrides render boxless, content-sized (field-sizing) and
  right-anchored; advanced fields align under the primary key column.
- Add `xs` control size; size fields via padding (no fixed heights).
- Cards expand on key-input focus; chevron shows on hover/expanded; expanded
  state uses a ring + softer bg tier so hover ≠ focus.
- Relocate "Get a key" to the bottom-right of the expanded panel; drop the
  redundant provider description.
- Cmd+K: add Providers (accounts) and Provider API keys deep-links.

* fix(desktop): flatten provider fields, drop input shadows, fix Cmd+K provider rank

- KeyField: collapse to one stacked label-above-input form field (drop the
  bespoke `naked`/inline/column branches); empty advanced overrides fade until
  hover/focus/set
- styles: kill the resting + focus drop shadow on shared input chrome so form
  inputs sit flat (composer keeps its own shadow)
- Cmd+K: drop stray `providers` keyword from Skills & Tools so the Providers
  settings entry ranks first for "provider"

* fix(desktop): nous portal arc blue → orange

* fix(desktop): rank appearance above settings in Cmd+K

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Brooklyn Nicholson <brooklyn.bb.nicholson@gmail.com>
2026-06-04 03:03:42 -05:00
..
activity.ts Add Hermes desktop app (#20059) 2026-05-31 17:46:56 -05:00
boot.ts Add Hermes desktop app (#20059) 2026-05-31 17:46:56 -05: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
command-palette.ts feat(desktop): global Cmd+K palette + UI consistency overhaul 2026-06-03 23:45:45 -05:00
composer-queue.test.ts fix(desktop): make Stop button actually interrupt when a turn is queued 2026-06-03 11:46:02 +05:30
composer-queue.ts fix(desktop): make Stop button actually interrupt when a turn is queued 2026-06-03 11:46:02 +05:30
composer.ts Add Hermes desktop app (#20059) 2026-05-31 17:46:56 -05:00
gateway.ts Add Hermes desktop app (#20059) 2026-05-31 17:46:56 -05:00
haptics.ts Add Hermes desktop app (#20059) 2026-05-31 17:46:56 -05:00
layout.ts feat(desktop): titlebar toggle to flip sidebar sides 2026-06-03 22:30:47 -05:00
model-visibility.ts feat(desktop): inline model picker in the status bar 2026-06-02 19:09:41 -05:00
notifications.ts fix(desktop): add missing PATCH /api/sessions/{id} so rename works (#36249) 2026-06-01 00:01:28 -05:00
onboarding.test.ts fix(desktop): configure local/custom endpoint without an API key or UI changes 2026-06-03 17:48:55 -07:00
onboarding.ts feat(desktop): dedicated Providers settings + polished Accounts/API-keys UX (#38551) 2026-06-04 03:03:42 -05:00
panes.test.ts Add Hermes desktop app (#20059) 2026-05-31 17:46:56 -05:00
panes.ts Add Hermes desktop app (#20059) 2026-05-31 17:46:56 -05:00
preview.test.ts Add Hermes desktop app (#20059) 2026-05-31 17:46:56 -05:00
preview.ts Add Hermes desktop app (#20059) 2026-05-31 17:46:56 -05:00
prompts.test.ts fix(desktop): render approval/sudo/secret prompts so tools stop silently timing out (#38578) 2026-06-04 01:53:51 +00:00
prompts.ts fix(desktop): render approval/sudo/secret prompts so tools stop silently timing out (#38578) 2026-06-04 01:53:51 +00:00
session.test.ts feat(desktop): persistent needs-input indicator + icon button consolidation 2026-06-03 21:44:30 -05:00
session.ts style(desktop): satisfy lint across PR-touched files 2026-06-04 00:22:17 -05:00
subagents.test.ts Add Hermes desktop app (#20059) 2026-05-31 17:46:56 -05:00
subagents.ts Add Hermes desktop app (#20059) 2026-05-31 17:46:56 -05:00
thread-scroll.ts Add Hermes desktop app (#20059) 2026-05-31 17:46:56 -05:00
tool-diffs.ts Add Hermes desktop app (#20059) 2026-05-31 17:46:56 -05:00
tool-view.ts Add Hermes desktop app (#20059) 2026-05-31 17:46:56 -05:00
updates.test.ts Merge pull request #37462 from NousResearch/bb/desktop-update-throttle 2026-06-02 10:26:52 -05:00
updates.ts fix(desktop): triage batch of GUI quality-of-life fixes (#37536) 2026-06-02 16:33:22 -04:00
voice-playback.ts Add Hermes desktop app (#20059) 2026-05-31 17:46:56 -05:00