Repository navigation
Conversation
Signed-off-by: gannp <36723715+gannp@users.noreply.github.com>
Signed-off-by: gannp <36723715+gannp@users.noreply.github.com>
Signed-off-by: gannp <36723715+gannp@users.noreply.github.com>
Signed-off-by: gannp <36723715+gannp@users.noreply.github.com>
Signed-off-by: gannp <36723715+gannp@users.noreply.github.com>
Signed-off-by: gannp <36723715+gannp@users.noreply.github.com>
|
thank you for this! |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
There was a problem hiding this comment.
🟡 Changes recommended
Local vLLM reasoning tiers are not integrated into shared normalization or the route picker, causing supported low/medium requests to be promoted and leaving those lower-effort options unavailable in the picker.
2 open issues
What changed in this PR
This PR adds model-specific reasoning compatibility to the vLLM Chat adapter, replacing uniform effort values with revision-sourced local template mappings.
Changes:
- Adds reviewed reasoning ladders and legacy aliases for Qwen, boolean-thinking, GLM, and DeepSeek templates.
- Applies model-specific controls after generic vLLM shaping, placing effort in
chat_template_kwargs. - Adds regression coverage, documentation, and a feature registry entry.
| File | Description |
|---|---|
docs/LOCAL_MODEL_REASONING.md |
Documents supported ladders, wire values, and matching limits. |
docs/features.toml |
Registers local model reasoning compatibility. |
crates/tui/src/client/chat.rs |
Integrates template shaping and adds a route-shaping regression. |
crates/config/src/local_reasoning.rs |
Implements model matching, alias normalization, request shaping, and checks. |
crates/config/src/local_reasoning.json |
Defines reviewed template mappings with source revisions. |
crates/config/src/lib.rs |
Exports the local reasoning module. |
Review effort: Balanced
| /// Distinct selectable tiers, in ascending order. | ||
| pub tiers: Vec<String>, |
| codewhale_config::local_reasoning::apply_local_reasoning_controls( | ||
| body, provider, model, effort, | ||
| ); |

What and why
The vLLM Chat adapter sends low/medium/high uniformly, but reviewed Qwen3.8 templates accept low/medium/xhigh and reject high. Other reviewed templates expose only a thinking switch or low/high/max.
Add revision-sourced local template facts and apply them after generic vLLM shaping. Qwen3.8 legacy High/Max reaches xhigh; boolean templates omit fictitious effort; GLM-5.3-Flash and DeepSeek-V4-Vision receive their actual levels. Model effort uses chat_template_kwargs, omitting the top-level enum so older OpenAI schemas cannot reject xhigh/max before rendering. Preserve legacy aliases, separately named Thinking variants, unknown IDs and non-vLLM routes. Credentials, routing, messages/tools, sampling, token budgets, streaming and retries are unchanged.
Issue
Closes #7124
Validation
Final upstream e8490b8: Linux config regressions report test result: ok. 6 passed; 0 failed. Exact checkout SHA is logged at https://github.com/gannp/codewhale/actions/runs/40651512918 (attempt 6).
36 offline registry-to-pinned-template checks pass; raw Qwen high rejection was reproduced before adaptation. No live inference or runtime changes.
Formatting checked; a regression through the production Chat route added. Full repository CI remains separate and is still running.
Local Windows cargo test could not link because MSVC link.exe is absent; this is recorded as unavailable, not a pass.
AI-assisted draft contribution. Canonical served-name facts are narrow and source-revision linked; arbitrary custom aliases/templates are not inferred.
DeepSeek-V4-Vision retains its pre-existing Off request spelling; only its enabled effort ladder is normalized.