Current behavior
When show_thinking = false, the thinking chain is hidden from the
UI (history.rs:251 filters HistoryCell::Thinking), but:
- The API still generates
reasoning_content (controlled separately by reasoning_effort)
- The
## Language rule in base.md forces reasoning_content to match the user's input language
- This means the model thinks in e.g. Chinese for content the user will never read
The token count difference between Chinese and English reasoning is not dramatic (DeepSeek's tokenizer handles Chinese well), but the combination of hidden thinking + language matching still wastes cost and hurts prompt-cache locality.
Expected behavior
When show_thinking = false, reasoning_content should be in English — not because English is "cheaper per token", but because it aligns with the surrounding English system prompt and eliminates unnecessary language switching in invisible content.
Proposed fix
PR: https://github.com/Hmbown/DeepSeek-TUI/pull/ #1843
Inject a language override into the system prompt when show_thinking is false, redirecting reasoning_content to English while the final reply stays in the user's language.
Current behavior
When
show_thinking = false, the thinking chain is hidden from theUI (
history.rs:251filtersHistoryCell::Thinking), but:reasoning_content(controlled separately byreasoning_effort)## Languagerule inbase.mdforcesreasoning_contentto match the user's input languageThe token count difference between Chinese and English reasoning is not dramatic (DeepSeek's tokenizer handles Chinese well), but the combination of hidden thinking + language matching still wastes cost and hurts prompt-cache locality.
Expected behavior
When
show_thinking = false,reasoning_contentshould be in English — not because English is "cheaper per token", but because it aligns with the surrounding English system prompt and eliminates unnecessary language switching in invisible content.Proposed fix
PR: https://github.com/Hmbown/DeepSeek-TUI/pull/ #1843
Inject a language override into the system prompt when
show_thinkingis false, redirectingreasoning_contentto English while the final reply stays in the user's language.