Files
hermes-agent/website
teknium1 b05a47b9d2 feat(desktop): reasoning effort gets its own composer pill
The composer showed "<model> · Med" in one truncating pill and the only way
to change the effort was to open the model menu, find the active model's
row, and hover it for the per-row options submenu. Users read the pill as
"this model is medium only" and never found the submenu.

- New `ReasoningPill` next to the model pill: shows the active model's live
  effort (session value, else the profile default) and opens the same
  Thinking / Fast / Effort rows the catalog submenu offers, for the active
  model only. Hidden when the catalog reports `reasoning: false`; stays
  while capabilities are unknown so it never flickers during the fetch.
  Folds away with the model pill in the compact composer stages.
- `useModelMenuController` (shell sibling) now owns the session write /
  preset / optimistic-store / rollback logic that lived inside
  `ModelMenuPanel`; the model menu and the new `ReasoningMenuPanel` share it
  so an edit from either surface is one code path. Tiles get their own
  pill bound to their SessionView, primary or tile — never the globals.
- `ModelOptionsContent` (the submenu body) is exported container-free so
  the pill's top-level menu renders it without a Radix Sub wrapper.
- The model pill drops the effort suffix (`formatModelPillLabel`: name +
  Fast); `formatModelStatusLabel` had no other caller and is removed.
- `currentModelCapabilities()` in lib/model-options resolves the active
  pick's caps through `catalogProviderMatches` (aliases, custom slugs).

Live (headless Electron + worktree `hermes serve`, CDP): before — one
pill "Deepseek V4 Flash · Low", no effort control; after — "Deepseek V4
Flash" + "Low" pill; pick High → `config.get reasoning` on the live
session returns high; a `reasoning:false` cap unmounts the pill; the
catalog row submenu still writes through and the pill mirrors it.

Credit: the dedicated-pill direction was proposed independently in
composer selector on current main with the shared-controller shape.
2026-09-13 06:11:49 -07:00
..
…

Website

This website is built using Docusaurus, a modern static website generator.

Installation

yarn

Local Development

yarn start

This command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server.

Build

yarn build

This command generates static content into the build directory and can be served using any static contents hosting service.

Deployment

Using SSH:

USE_SSH=true yarn deploy

Not using SSH:

GIT_USER=<Your GitHub username> yarn deploy

If you are using GitHub pages for hosting, this command is a convenient way to build the website and push to the gh-pages branch.

Diagram Linting

CI runs ascii-guard to lint docs for ASCII box diagrams. Use Mermaid (````mermaid`) or plain lists/tables instead of ASCII boxes to avoid CI failures.