feat(web): drop "none" from the offered thinking levels (#34)

Co-authored-by: Alice <alice@prismshadow.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
authored and GitHub committed 2026-07-23 00:35:37 +08:00
1 parent 1514cd66b2
commit 78a8b35793
9 files changed
+141 -26

No files matched your search

@@ -31,6 +31,7 @@ import { Modal } from "../../components/ui/modal";
import { Skeleton } from "../../components/ui/skeleton";
import { VaultTab } from "./vault-tab";
import { SchedulesTab } from "./schedules-tab";
import { thinkingLevelOptionsFor } from "../chat/thinking-level";
type TabKey = "overview" | "prompt" | "runtime" | "tools" | "vault" | "schedules";
@@ -500,7 +501,16 @@ function RuntimeTab({ data, onSave }: { data: AgentConfigResponse; onSave: SaveF
};
// S is reassigned on language switch (live binding), so read it during render rather than hoisting to a module-level constant.
const thinkingLevelOptions = withDefaultOption(S.agent.thinkingLevelOptions);
// "none" is no longer offered (many models cannot disable thinking) but stays a valid stored
// value: assembly lives in thinkingLevelOptionsFor, gated on the **persisted** config — a
// misclick onto another tier keeps the legacy row until the change is actually saved, so the
// stored value stays reachable (see thinking-level.ts).
const thinkingLevelOptions = thinkingLevelOptionsFor(
S.agent.thinkingLevelOptions,
S.agent.defaultValue,
S.agent.thinkingLevelNoneKept,
cfg.model?.thinkingLevel,
);
const compactionModeOptions = withDefaultOption(S.agent.compactionModeOptions);
return (