Repository navigation
ui: build the reasoning menu from the template effort levels - #31273
Merged
ggerganov merged 2 commits intoOct 28, 2026
Merged
Conversation
ServeurpersoCom
requested review from
a team,
CISC and
pwilkin
as code owners
October 27, 2026 18:49
When the chat template reports effort levels, the menu offers Default, Off and those levels, and a pick is sent as reasoning_effort. A template that reports none keeps the token budget menu. Picking a model other than the one that produced the last answer resets the conversation effort to Default, and an effort the current menu lacks resolves to Default.
A router serves the props of a loaded model only, so a request sent to a cold model was built without its template effort levels and fell back to a token budget. The request now waits for the model to load, joining a load already in flight, and a stop during the wait sends nothing. Status waiters hold a list per model so a load and the requests that wait on it each get theirs, and a props request in flight is shared with a second caller instead of answering null.
ServeurpersoCom
force-pushed
the
ui-reasoning-effort-levels
branch
from
October 27, 2026 18:51
c068b13 to
ca7d227
Compare
ServeurpersoCom
requested review from
allozaur
and removed request for
a team,
CISC and
pwilkin
October 27, 2026 18:52
allozaur
approved these changes
Oct 28, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Overview
llama-ui's Low/Medium/High/Max menu always mapped to thinking_budget_tokens, so on Qwen3.8 picking Medium kept the xhigh instructions in the prompt and cut the think block at 2048 tokens.
When chat_template_caps reports reasoning_effort_levels, the menu offers Default, Off and those levels, and a pick is sent as reasoning_effort with no budget. A template that reports none, or a server without the field, keeps the current token budget menu. Switching to another model in a conversation resets the effort to Default. In router mode a request to a cold model waits for the load, so the props and their levels are known before the request is built.
Additional information
Needs #31271 for the levels; without it the UI behaves as before.
Tested end to end with Playwright on a router with Qwen3.8 27B and Gemma 4 E4B, and on a single model server: Medium on Qwen3.8 sends reasoning_effort medium, Gemma keeps the budget menu, a cold Qwen3.8 picked and sent right away still sends the level, and a stop during the load sends nothing.
Closes #27455
Requirements