From d15cd18fa1f3e07e69df9a63fd017ab412a68c86 Mon Sep 17 00:00:00 2001 From: Brooklyn Nicholson Date: Wed, 19 Aug 2026 22:04:47 -0500 Subject: [PATCH] feat(desktop): hide the Thinking toggle where a disable is rejected MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The picker offered an off switch for every reasoning model, including routes whose upstream answers a disable with HTTP 400 — so "thinking off" was a control that could not work. Carry the catalog's mandatory verdict through model.options as can_disable_reasoning and hide the toggle when it is false. Effort levels are left alone. The catalog's supported_efforts under-reports what the Portal serves (z-ai/glm-5.3 publishes max, high, low yet honors minimal at its lowest thinking), so filtering the scale by it would hide levels that work. --- .../src/app/shell/model-catalog-menu.tsx | 1 + .../src/app/shell/model-edit-submenu.tsx | 8 +- apps/desktop/src/types/hermes.ts | 4 + hermes_cli/inventory.py | 56 ++++++- .../test_inventory_reasoning_caps.py | 141 ++++++++++++++++++ 5 files changed, 205 insertions(+), 5 deletions(-) create mode 100644 tests/hermes_cli/test_inventory_reasoning_caps.py diff --git a/apps/desktop/src/app/shell/model-catalog-menu.tsx b/apps/desktop/src/app/shell/model-catalog-menu.tsx index 2513725fd9..1dfd70f15b 100644 --- a/apps/desktop/src/app/shell/model-catalog-menu.tsx +++ b/apps/desktop/src/app/shell/model-catalog-menu.tsx @@ -458,6 +458,7 @@ export function ModelCatalogMenu({ ) : null}