[Bug] Reasoning effort menu shows "Low" twice — "minimal" and "low" share the same display label
Nobody has claimed this yet.
- Dominant language
- No language data
- Stars
- 22
- Forks
- 1
- PR merge metrics
- No merged PRs in 30d
Description
Pre-submission checklist
- Searched existing issues (none found for "minimal" / "duplicate Low")
- Read CONTRIBUTING.md
Category
UI / UX
Agent framework
ZCode Agent
Severity
Minor
Reproducibility
Always
Description
When a model's reasoning effort levels include both minimal and low, the effort dropdown in the chat toolbar renders two entries both labeled "Low". The two entries are distinct values internally (the upper one is minimal, the lower one is low, and each is sent correctly as reasoning_effort), but the user cannot tell them apart in the UI.
Cause: the label mapping table in the UI maps both keys to the same i18n string:
low: `chat.toolbar.thoughtLevel.value.low`,
minimal: `chat.toolbar.thoughtLevel.value.low`
so minimal has no label of its own and falls back to "Low".
Steps to reproduce
- Use any model whose effort levels include both
minimalandlow(e.g. levelsminimal / low / medium / high). - Open the reasoning effort dropdown in the chat toolbar.
- Observe two "Low" entries followed by "Medium" and "High".
Expected behavior
Each level has a distinct label, e.g. Minimal / Low / Medium / High (or at least the raw value shown for levels without a dedicated translation).
Actual behavior
Two entries both read "Low". Selecting the upper one sends reasoning_effort:"minimal", the lower one sends "low", but this is invisible to the user.
ZCode version
v3.12.3
Device / OS / Browser
MacBook (Apple Silicon) / macOS 27.0.0 (darwin arm64) / ZCode desktop app
Screenshots / Recordings / Logs
(Screenshot of the dropdown showing Low / Low / Medium / High can be provided on request.)
Suggested fix
Add a dedicated i18n key for minimal (e.g. chat.toolbar.thoughtLevel.value.minimal → "Minimal") instead of aliasing it to low. As a fallback, show the raw level value when no translation exists.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start at the chat toolbar's reasoning-effort label mapping and inspect how the i18n keys are resolved for minimal and low. Add a distinct minimal label or the stated raw-value fallback, then verify that the dropdown shows separate Minimal and Low entries while preserving their respective reasoning_effort values.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript
- Domain
- desktop-dev, frontend, internationalization
- Issue type
- Bug
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 75/100