hermes-agent/apps/desktop/src
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
..
app fix(desktop): honor pre-session model pick + restore global reasoning/speed defaults (#47447) 2026-06-16 16:22:09 -05:00
components fix(desktop): honor pre-session model pick + restore global reasoning/speed defaults (#47447) 2026-06-16 16:22:09 -05:00
fonts fix(desktop): crisp terminal text via opaque xterm canvas 2026-06-12 19:36:30 -05:00
hooks fix(desktop): keep generated images in the tool slot, not inline 2026-06-13 02:42:15 -05:00
i18n fix(desktop): honor pre-session model pick + restore global reasoning/speed defaults (#47447) 2026-06-16 16:22:09 -05:00
lib fix(desktop): honor pre-session model pick + restore global reasoning/speed defaults (#47447) 2026-06-16 16:22:09 -05:00
store refactor(desktop): make composer model picker sticky session state 2026-06-16 09:50:07 -05:00
themes feat(desktop): composer status stack, live subagent windows, editable prompts (#44630) 2026-06-12 08:30:06 -05:00
types feat(desktop): disconnect external (CLI-managed) providers 2026-06-16 00:08:21 -05:00
global.d.ts feat(desktop): open new sessions in compact windows 2026-06-15 20:59:57 -05:00
hermes.test.ts fix(desktop): route profile session reads 2026-06-11 18:09:24 -05:00
hermes.ts fix: add provider account removal 2026-06-13 21:47:13 -07:00
main.tsx feat(desktop): window translucency slider in Appearance settings (#45086) 2026-06-12 12:02:38 -05:00
styles.css Merge branch 'main' into bb/desktop-stick-to-bottom 2026-06-13 02:52:03 -05:00
vite-env.d.ts Add Hermes desktop app (#20059) 2026-05-31 17:46:56 -05:00