hermes-agent/apps/desktop/src/app/settings
brooklyn! b7f0c9cd52
fix(desktop): honor pre-session model pick + restore global reasoning/speed defaults (#47447)
* fix(desktop): keep the pre-session model pick selected in the picker

The composer picker derived its "current" row from `model.options ?? store`,
so model.options always won. Pre-session that query returns the PROFILE
DEFAULT, not the sticky composer pick — so selecting a model before a session
exists left the checkmark (and the picker's "current" line) on the default,
making the pick look ignored even though the pill updated.

Add `currentPickerSelection()`: with a live session the gateway's model.options
is authoritative; pre-session the sticky `$currentModel`/`$currentProvider`
wins, falling back to options. Wire it into ModelMenuPanel and ModelPickerDialog.

* feat(desktop): global reasoning/speed defaults in Settings → Model

The composer picker is now sticky-UI/per-session only and never writes the
profile default (#46959), but Settings → Model had no reasoning/speed control
and `agent.reasoning_effort` wasn't in the curated config surface at all
(`service_tier` was buried in Advanced) — so there was nowhere to set the
profile default that crons/subagents/messaging resolve from.

Add capability-gated Reasoning (effort) + Fast controls beside the main model,
gated by the applied model's reported capabilities (reasoning defaults on, fast
off when unreported — same as the composer). They read/write `agent.reasoning_effort`
and `agent.service_tier` by round-tripping the config record, matching the
gateway's value semantics (service_tier "fast"/"priority"/"on" ⇒ fast).

* refactor(desktop): don't open the reasoning select from its row label

A <label> wrapping the Select forwarded text clicks to the trigger, opening
the dropdown unexpectedly. Plain row for reasoning; Fast stays a <label> so
clicking its text toggles the switch (expected for a checkbox-like control).
2026-06-16 16:22:09 -05: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): move completion-sound picker into Notifications settings 2026-06-14 00:31:09 -05:00
config-settings.tsx Refactor desktop settings i18n keys to camelCase 2026-06-06 07:51:44 -07:00
constants.ts feat(desktop): full tool-backend config (pickers + per-backend settings) in Settings (#41232) 2026-06-07 10:05:47 -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 feat(desktop): full tool-backend config (pickers + per-backend settings) in Settings (#41232) 2026-06-07 10:05:47 -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(desktop): disconnect external (CLI-managed) providers 2026-06-16 00:08:21 -05: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 fix(desktop): honor pre-session model pick + restore global reasoning/speed defaults (#47447) 2026-06-16 16:22:09 -05:00
model-settings.tsx fix(desktop): honor pre-session model pick + restore global reasoning/speed defaults (#47447) 2026-06-16 16:22:09 -05:00
notifications-settings.tsx feat(desktop): move completion-sound picker into Notifications settings 2026-06-14 00:31:09 -05:00
primitives.tsx style(desktop): migrate bespoke pills to shared Badge; tidy cron/titlebar 2026-06-03 23:52:51 -05:00
providers-settings.test.tsx feat(desktop): disconnect external (CLI-managed) providers 2026-06-16 00:08:21 -05:00
providers-settings.tsx feat(desktop): disconnect external (CLI-managed) providers 2026-06-16 00:08:21 -05:00
sessions-settings.tsx fix(desktop): route profile session reads 2026-06-11 18:09:24 -05: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): native OS notifications with per-type toggles 2026-06-14 00:31:03 -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