Repository navigation
The model listing says whether a model reasons and takes images, and its output limit; both can be set by hand, v0.64.0 - #294
Merged
Conversation
…its output limit; both can be set by hand, v0.64.0 - /v1/models carries max_output_tokens, supports_reasoning and input_modalities (OpenAI/Anthropic shapes) and thinking (Gemini), each only when known - model_specs gain reasoning and image_input; the price table keeps 'not stated' apart from 'no' and reads supports_vision - ModelRow/ModelSpecSave gain the two fields; protocol 40 - the speed probe leaves room to reason by the resolved spec Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.
This release tells clients more about each model. The model listing now says, for every model it knows, how much it can write in one answer, whether it reasons and whether it takes images, besides its context window. An upstream's model can have the last two set by hand, like the context window and output limit before.
Upgrade notes
CONTROL_API_VERSION) goes from 39 to 40. ThinkWatch Lite connects only to a core with the same protocol version: ThinkWatch Lite 2026.10.6 includes 0.63.0 (protocol 39) and does not connect to 0.64.0. A server used with it stays on 0.63.0 until the app is updated to a release that includes 0.64.0;sudo twcore upgrade --version 0.63.0 --restartswitches a server back.providers[].model_specs.*.reasoningand.image_input); every 0.63.0 configuration loads.ModelRowgainsreasoning,reasoning_source,image_inputandimage_input_source(SpecSource).ModelSpecSavegainsreasoningandimage_input. An entry is removed when all four fields are empty. A client written for protocol 39 drops the two new fields when it saves a model spec.config.model_spec_nothing_set.config.model_spec_empty, replaced byconfig.model_spec_nothing_setbecause the sentence now names four fields.What the model listing carries.
GET /v1/modelsadds three fields to each model in the OpenAI and Anthropic shapes, each only when it is known:max_output_tokens, the most tokens one answer can have;supports_reasoning, whether the model reasons;input_modalities,["text", "image"]or["text"].The Gemini shape adds
thinking. The values come from the same place as the context window: the upstream's hand-written model spec first, then the price table. When neither says, the field is left out rather than guessed. Clients then use their own defaults: a client told "does not reason" hides its reasoning levels, and that is not something to guess. The price table now keeps "not stated" apart from "no" for reasoning, and reads image support from the dataset'ssupports_vision.Reasoning and image input set by hand.
providers[].model_specstakesreasoningandimage_input(true or false) next tocontext_windowandmax_output_tokens, each overriding the price table on its own.PUT /provider-model-specsets them. The speed test also uses the result: a model set by hand to reason gets room to reason in its probe request, as models the price table marks as reasoning already did.🤖 Generated with Claude Code