Repository navigation
Conversation
ApprovabilityVerdict: Approved at Macroscope's review found this PR approvable — Reasoning and thinking controls now use their descriptor label when no selected-option label is available. This is a presentation-only fallback; model selections and defaults remain unchanged. You can add or adjust custom eligibility rules. Learn more. |
|
Note 🤖 GPT-6.1 Sol responding on behalf of voltcrash The current lint and typecheck failures are in unchanged upstream code. I checked these against base
The changed-file checks and focused regressions passed. This two-file PR keeps the Pi display fix separate from those base failures. |
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
No actionable comments were generated in the recent review.
|
| Layer / File(s) | Summary |
|---|---|
Reasoning trigger label fallback packages/client-runtime/src/modelTraits.ts, packages/client-runtime/src/modelTraits.test.ts |
buildTraitsTriggerDisplay uses the descriptor label when the thinking option has no current label. Tests check trigger labels and descriptor string values across selection states. |
Estimated code review effort: 2 (Simple) | ~10 minutes
Change: Bug fix · Severity of issue fixed: Medium
Possibly related issues
- pingdotgg/t3code#27382 — This change provides a visible descriptor label when the thinking option has no current label. It does not add server-side default levels or change Pi model discovery.
Suggested reviewers: maria-rcks
Merge Risk: 
Minimal · previous review 971aa
-
The change restores the visible Thinking label without altering model selections or provider behavior.
Pre-merge checks: 
4
-
Check name Status Explanation Title check The title clearly and concisely describes the main change: keeping Pi thinking controls visible before a value is selected. Description check The description explains the problem, the display-only fix, scope, approval exception, verification results, test coverage, limitations, and UI evidence. It does not use the template headings exactly,… Linked Issues check Issue #27382requires a visible Pi thinking control when a model advertises thinking levels but has no current value or default. The whole-PR diff (merge base 7195b69 to head 971aab2) changes `buildTr…Out of Scope Changes check The whole-PR diff contains two files: the one-expression fallback in modelTraits.tsand the new focused test filemodelTraits.test.ts. Both match the linked issue's display defect. The fallback ap…Full details: Description check
-
Explanation
The description explains the problem, the display-only fix, scope, approval exception, verification results, test coverage, limitations, and UI evidence. It does not use the template headings exactly, but it provides the required information and is mostly complete.
Full details: Linked Issues check
-
Explanation
Issue
#27382requires a visible Pi thinking control when a model advertises thinking levels but has no current value or default. The whole-PR diff (merge base 7195b69 to head 971aab2) changesbuildTraitsTriggerDisplayinpackages/client-runtime/src/modelTraits.ts. WhengetProviderOptionCurrentLabelreturns no label and the descriptor id isthinking, the label now falls back todescriptor.label("Thinking"). Before this change, the label was empty, so the trigger rendered blank. The fallback changes only the display label. It does not changegetDescriptorStringValue, server defaults, capabilities, or dispatch. Resolved defaults and explicit values still produce their option labels.packages/client-runtime/src/modelTraits.test.ts(new file) covers the unset, default-only, explicit, and overridden cases, and asserts that the unset value staysnull. The issue's server-side alternative is not required; the issue lists the web placeholder as an acceptable fix. The Chromium check described in the PR, which I did not rerun, reports the same behavior.
Full details: Out of Scope Changes check
-
Explanation
The whole-PR diff contains two files: the one-expression fallback in
modelTraits.tsand the new focused test filemodelTraits.test.ts. Both match the linked issue's display defect. The fallback applies to any descriptor with idthinking, not only Pi. That is the same empty-trigger case the issue describes, so this widening is related and does not change provider behavior. Non-thinkingdescriptors keep thenullfallback, and the test asserts that behavior. No server, provider-capability, default-selection, or dispatch files are changed. The PR description's mention of existing glyph and composer-state suites refers to tests that are not part of this diff, and it creates no out-of-scope change.
-
Finishing Touches
-
Generate unit tests (beta)
-
- Create a new PR
-
- Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts
0b52cd6 to
f72484e
Compare
|
Note Written by merged current on this head, blacksmith rechecked the real web client with system chrome and real pi discovery through this vm's local provider proxy: unset thinking has no selected level, high and low update the composer label, and low survives reload. no mock provider or fixture was used. no provider turn was run in this pass. native clients and remote connections were not rerun. earlier takeover verification and before/after evidenceVerified in a real dev environmentreproduced the missing visible thinking label on ran separate installed worktrees with one background dev server at a time, isolated state, repository playwright and system google chrome. created real projects and threads through the client. no mock provider, fixtures, or seeded data. on the final head:
selected runtime transcript (full command transcript): matching composer crops, main then final head: inspected the captures and exercised uploaded video playback and seeking. Not verifiednative electron, ios/android, remote/relay/tunnel connections, other providers, and pi against an external service without this vm's real local proxy were not exercised. the vm's automatic pi extensions initially caused empty proxy responses. the successful real pi turns used |
c3a429b to
618beab
Compare
618beab to
971aab2
Compare




Pi's thinking picker is blank for non-active models that advertise levels without a default. Show the descriptor name ("Thinking") until a value is resolved, then keep showing the selected level. This preserves Pi's model-specific defaults from #17835 and does not create a selection.
Fixes #27382. This qualifies for the focused obvious-bug exception: it makes an existing clickable control visible, with no change to provider capabilities, defaults, or dispatch.
Verification:
""instead of"Thinking"). All 30 trait-display, glyph, and composer-state tests pass; four cases cover unset, default, explicit, and overridden values.vp run check:changedagainst upstream main passes formatting, lint, knip, affected typechecks, and focused tests.zai/glm-5.3-flashshows Thinking; the Low/High/Max menu has no selection or Default badge. Selecting High and Max updates the label. No paid turn was needed.Web and desktop share the picker; mobile uses the same helper for its existing summary. Native Electron/mobile and remote-network passes were not run; connection and provider behavior are unchanged.
Before:
After:
Unselected thinking menu · Selected Max
Reviewed with sol-loop: 1 round with GPT-6.1 Sol on xhigh. Sol verdict: approved (no findings).
Created with GPT-6.1 Sol in Codex (T3 Code).