Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

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

Open Beginner friendly
#26,989 0 comments 1 reaction 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
66/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Active
Tech stack
typescript
Domain
frontend

Research direction

Start in the apps/web composer controls and inspect how the model picker and reasoning effort menu are rendered and styled; the issue names no specific file or test. Reproduce with a model and effort setting such as Opus 5.5 and High, then check that the two controls are visually distinct and have predictable, separate click targets while keeping the one-row composer layout.

Written by the indexing model from the issue text.

Description

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:

  • A: a hairline divider between model and effort.
  • B: a small leading icon on the effort control (the gauge #24865 introduced; open PRs #25431 and #26802 already build on it).

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.

Dominant language
TypeScript
Stars
24.8k
Forks
6.4k
Avg merge
3h 21m
Merged PRs (30d)
297

Getting set up

Open in Codespaces

Starts the project's dev container in your browser, under your own GitHub account.

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from pingdotgg/t3code

All issues in pingdotgg/t3code

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.