From bf25d71fc9d34d16dd6bcb4bb066e2ae82f4a434 Mon Sep 17 00:00:00 2001 From: iris Date: Fri, 5 Jun 2026 13:46:30 +0200 Subject: [PATCH] =?UTF-8?q?docs(agent):=20update=20model=20quick-picker=20?= =?UTF-8?q?description=20=E2=80=94=20list=20is=20now=20configurable?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/web-ui/agent.md | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/docs/web-ui/agent.md b/docs/web-ui/agent.md index c8271f67..bc2413fa 100644 --- a/docs/web-ui/agent.md +++ b/docs/web-ui/agent.md @@ -73,14 +73,20 @@ through. Three flex columns: preserved). All destructive actions require one extra click to acknowledge — rare ops shouldn't live in the primary state strip. Below a separator, a **model quick-picker** section labelled - `model` renders three one-click shortcuts: `haiku (fast)`, - `sonnet (balanced)`, `opus (powerful)`. Clicking a button POSTs - `/api/model` with the alias (same path as the `/model ` - slash command). The button for the currently-active model is - highlighted via the `active` class; `renderModelChip` keeps the - picker state in sync with live `model_changed` events so it stays - accurate when the model is changed from another session. Clicking - the already-active model closes the menu without an extra POST. + `model` renders one button per model in the operator-configured + list. The list is driven by `state.available_models` (sourced from + the `HIVE_AVAILABLE_MODELS` env var, injected by the + `services.hyperhive.availableModels` NixOS option; defaults to + `["haiku", "sonnet", "opus"]` when unset). Well-known aliases get + a parenthetical description (`haiku (fast)`, `sonnet (balanced)`, + `opus (powerful)`); operator-declared custom names show as-is. + Clicking a button POSTs `/api/model` with the alias (same path as + the `/model ` slash command). The button for the + currently-active model is highlighted via the `active` class; + `renderModelChip` keeps the picker state in sync with live + `model_changed` events so it stays accurate when the model is + changed from another session. Clicking the already-active model + closes the menu without an extra POST. The popover's display rules are scoped to `:not([hidden])` so the `[hidden]` HTML attribute's UA `display: none` isn't overridden by the author CSS's `display: flex` — the popover stays hidden until