Skip to content

[Bug]: Composer model and effort controls read as one label ("Opus 5.5 High") #26989

Closed

Description

@henrik092

Before submitting

  • I searched existing issues and did not find a duplicate.
  • I included enough detail to reproduce or investigate the problem.

Area

apps/web

Steps to reproduce

  1. Update to the latest nightly (or run main).
  2. Open any thread and pick Claude Opus 5.5 with effort High. Any model and effort show the same problem.
  3. Look at the controls at the bottom right of the composer.

Expected behavior

You can tell at a glance that there are two controls, the model picker and the reasoning effort menu, and which word belongs to which.

Actual behavior

Since #25869 ("simpler composer with grouped controls, effort words…"), the effort level follows the model name as a plain, muted word at normal word spacing. #24865 had already removed the divider lines between composer controls. Together, the composer now reads "Opus 5.5 High", as if "High" were part of the model name:

  • There is no divider, icon, chevron or hover box to show where one control ends and the next begins. Only the slightly dimmer color of "High" sets it apart, and that difference is easy to miss in dark mode.
  • The two click targets touch, and their hit boxes overlap by about 2 px. Clicking near "5.5 High" opens either the model picker or the effort menu, and you can't predict which.
  • It gets worse with model names that end in a version or a word, for example 6 Astra Medium (Codex default) or Opus 5.5 Extra High.

Composer today, and the same composer with the two click targets outlined

The opt-in Settings › Appearance › Effort display = Bars helps, but it is off by default, and Max, Ultracode and Ultrathink still show as words.

Suggestion

Give the effort control its own visual anchor by default, while keeping the calm one-row look. Two lightweight options, mocked up on the same composer:

Mockups: today, idea A divider, idea B gauge icon, existing Bars opt-in

(Ideas A and B are mockups made by editing the DOM of the real composer. They are not implemented.)

Impact

Minor bug or occasional failure

Version or commit

Desktop 0.1.5-nightly.20261029.3877; also reproduced on main @ 37fbefd

Environment

Linux Mint 22.3, desktop AppImage, dark theme; reproduced in the web dev build (vp run dev) with Claude Opus 5.5 · High and Codex GPT-6-Astra · Medium.

Workaround

Settings › Appearance › Effort display → Bars.

Activity

  1. RostyslavDzhohola commented on Oct 29, 2026

    @RostyslavDzhohola

    Note

    🤖 Claude Opus 5.5 responding on behalf of RostyslavDzhohola

    +1. I hit both problems this issue describes in daily use on nightly.

    • The effort control is hard to find. For two days I didn't know there was a separate effort control. "Opus 5.5 Medium" read as one button, and I only found the effort menu by accident. The hover brightening is too subtle to show that "Medium" is its own target.
    • The click targets collide. Aiming for "Medium" regularly opens the model picker instead.

    I'd vote for option B, on by default rather than behind Settings › Appearance: give effort an icon, the same way the model has its provider icon. The old gauge made the control easy to spot. Even better, keep that gauge and move its needle to the selected level (as #25431 and #26802 do), so one icon both marks the control and shows the level at a glance.

    Image
  2. wagner-deoliveira commented on Oct 30, 2026

    @wagner-deoliveira
    Contributor

    A pointer for the hit-box overlap described above: in TraitsPicker.tsx the effort trigger gets -ms-1 ps-0 (-ms-1 ps-0.5 without the word) when the composer owns the row. The comment next to it says this cancels the model chip's end padding and the row gap so the effort word reads on from the model name. A 4 px negative margin is a likely source of the two click targets running into each other.

    I run -ms-0.5 locally to keep the "Opus 5.5 High" look with a little less pull. I haven't measured the hit boxes or captured before/after, so treat this as a lead to check, not a verified fix. It also doesn't address the readability point, which the icon or divider in the issue would.

    Posted with Claude Code (Sonnet 5.5).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions