Before submitting
Area
apps/web
Steps to reproduce
- Open T3 Code in the web or desktop client.
- Open a thread using a model that supports multiple reasoning levels.
- Open the reasoning picker in the composer.
- Select a different reasoning level, such as High or Extra High.
Expected behavior
The selected reasoning level should be applied and the picker should close immediately.
Actual behavior
The reasoning level changes, but the picker remains open. The user must click outside the picker, press Escape, or activate the trigger again to dismiss it.
The desktop client is also affected because it uses the same web renderer.
Impact
Minor bug or occasional failure
Version or commit
main @ 5719e8ac4020dda0e375ef61d044b61f55a0df8a
Environment
Web and Electron desktop clients; provider/model exposing multiple reasoning-effort options.
Logs or stack traces
No errors are emitted. This appears to be a controlled menu state-handling issue.
Screenshots, recordings, or supporting files
None.
Workaround
Click outside the picker, press Escape, or activate the picker trigger again after selecting a reasoning level.
Supporting investigation
Confirmed by source inspection on main at commit 5719e8ac4020dda0e375ef61d044b61f55a0df8a:
- Reasoning options dispatch changes through
onValueChange in TraitsPicker.tsx.
handleSelectChange updates the selected descriptor but does not close the menu in TraitsPicker.tsx.
- The menu is controlled through
isMenuOpen, but TraitsMenuContent receives no callback capable of setting it to false after selection in TraitsPicker.tsx and TraitsPicker.tsx.
- Historical commit
8ea45f447 implemented an explicit onRequestClose() call after changing a trait.
- Desktop routes its renderer through the same web client, as shown in
DesktopApp.ts, so the same picker implementation applies to both surfaces.
Before submitting
Area
apps/web
Steps to reproduce
Expected behavior
The selected reasoning level should be applied and the picker should close immediately.
Actual behavior
The reasoning level changes, but the picker remains open. The user must click outside the picker, press Escape, or activate the trigger again to dismiss it.
The desktop client is also affected because it uses the same web renderer.
Impact
Minor bug or occasional failure
Version or commit
main @
5719e8ac4020dda0e375ef61d044b61f55a0df8aEnvironment
Web and Electron desktop clients; provider/model exposing multiple reasoning-effort options.
Logs or stack traces
No errors are emitted. This appears to be a controlled menu state-handling issue.
Screenshots, recordings, or supporting files
None.
Workaround
Click outside the picker, press Escape, or activate the picker trigger again after selecting a reasoning level.
Supporting investigation
Confirmed by source inspection on
mainat commit5719e8ac4020dda0e375ef61d044b61f55a0df8a:onValueChangeinTraitsPicker.tsx.handleSelectChangeupdates the selected descriptor but does not close the menu inTraitsPicker.tsx.isMenuOpen, butTraitsMenuContentreceives no callback capable of setting it tofalseafter selection inTraitsPicker.tsxandTraitsPicker.tsx.8ea45f447implemented an explicitonRequestClose()call after changing a trait.DesktopApp.ts, so the same picker implementation applies to both surfaces.