You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Split out from #336 (item D3). Verdict: confirmed missing — and the current knob is the wrong axis.
Ask: effort sliders mapped to real-world options.
No UI control exists (no effort anywhere in charts/workspace/web/src). The only knob is values.yaml:286-290 — claude.maxThinkingTokens -> MAX_THINKING_TOKENS, a raw integer token count, with no labels at all.
The token-count axis is deprecated. The real control on current models is output_config.effort, with exactly five levels — low / medium / high / xhigh / max — defaulting to high. xhigh sits between high and max, is the best setting for coding and agentic work, and is Claude Code's own default. The fixed thinking-token-budget concept it replaces is deprecated on 4.6-era models and removed outright on Opus 4.8 / 4.7 / Fable 5 / Sonnet 5, where budget_tokens returns a 400.
So the request maps cleanly: a 5-stop selector labelled low/medium/high/xhigh/max, mapping 1:1 onto the real levels, defaulting to high (or xhigh for coding-heavy defaults) — replacing, not supplementing, the token-count knob.
(Note: MAX_THINKING_TOKENS is a Claude Code env var, not a raw API parameter, so whether Claude Code translates or ignores it on current models is worth a quick check before ripping it out — but effort is unambiguously the correct axis going forward.)
Related: the model-list/picker work in #361 touches the same server/SPA config surface and should probably share the picker UI.
Update 2026-07-21 (research pass, details in this comment):
Scope broadened: the selector must work across ALL assistants (claude, codex, ante, opencode-openrouter, opencode-deepseek, librefang, kc-harness), not just Claude — per @imran31415's comment.
Correction:claude.maxThinkingTokens / MAX_THINKING_TOKENS does not actually exist in this repo (values.yaml:286-290 is just the claude.apiKey block). This is a greenfield feature, not a replacement.
Split out from #336 (item D3). Verdict: confirmed missing — and the current knob is the wrong axis.
Ask: effort sliders mapped to real-world options.
No UI control exists (no
effortanywhere incharts/workspace/web/src). The only knob isvalues.yaml:286-290—claude.maxThinkingTokens->MAX_THINKING_TOKENS, a raw integer token count, with no labels at all.The token-count axis is deprecated. The real control on current models is
output_config.effort, with exactly five levels —low/medium/high/xhigh/max— defaulting tohigh.xhighsits betweenhighandmax, is the best setting for coding and agentic work, and is Claude Code's own default. The fixed thinking-token-budget concept it replaces is deprecated on 4.6-era models and removed outright on Opus 4.8 / 4.7 / Fable 5 / Sonnet 5, wherebudget_tokensreturns a 400.So the request maps cleanly: a 5-stop selector labelled
low/medium/high/xhigh/max, mapping 1:1 onto the real levels, defaulting tohigh(orxhighfor coding-heavy defaults) — replacing, not supplementing, the token-count knob.(Note:
MAX_THINKING_TOKENSis a Claude Code env var, not a raw API parameter, so whether Claude Code translates or ignores it on current models is worth a quick check before ripping it out — buteffortis unambiguously the correct axis going forward.)Related: the model-list/picker work in #361 touches the same server/SPA config surface and should probably share the picker UI.
Update 2026-07-21 (research pass, details in this comment):
claude.maxThinkingTokens/MAX_THINKING_TOKENSdoes not actually exist in this repo (values.yaml:286-290is just theclaude.apiKeyblock). This is a greenfield feature, not a replacement.low/medium/high/xhigh/max, defaulthigh) → server-side per-assistant effort registry +resolve_effort()→ per-thread API param + SPA selector → per-adapter translation to each CLI's native knob (CLAUDE_CODE_EFFORT_LEVEL, codexmodel_reasoning_effort, opencodereasoningEffort, Ollamathink), clamping where an assistant's native level set is narrower and hiding the control where none exists.