Skip to content

feat: show active provider + model in API config selector#11292

Draft
roomote[bot] wants to merge 1 commit intomainfrom
feature/show-model-in-api-config-selector
Draft

feat: show active provider + model in API config selector#11292
roomote[bot] wants to merge 1 commit intomainfrom
feature/show-model-in-api-config-selector

Conversation

@roomote
Copy link
Contributor

@roomote roomote bot commented Feb 7, 2026

Related GitHub Issue

Closes: #11290

Description

This PR attempts to address Issue #11290 by showing the active model ID alongside the API config name in the bottom bar of the chat, so users can immediately see which model is active for the current mode without clicking into settings.

Changes:

  1. ChatTextArea.tsx: Modified the useMemo that computes currentConfigId and displayName to also look up the current config's modelId from listApiConfigMeta and build a richer display string like "configName · modelId" (e.g., "default · claude-sonnet-4-20250514").

  2. Tooltip enhancement: The tooltip on the ApiConfigSelector trigger now shows the full provider + model info (e.g., "default (anthropic) · claude-sonnet-4-20250514") so that even when the trigger text is truncated, hovering reveals the complete info.

  3. No changes to ApiConfigSelector.tsx itself were needed -- it already renders whatever displayName it receives and uses title as tooltip content. The enhanced data flows through naturally.

This is a minimal, non-breaking change that:

  • Requires no new state or backend changes (all data is already available in listApiConfigMeta)
  • Respects the existing responsive layout (truncation handles long model names)
  • Directly addresses the core ask: seeing which model is active when switching modes

Test Procedure

  • Added 2 new unit tests in ChatTextArea.spec.tsx:
    • Verifies model ID appears alongside config name when modelId is available
    • Verifies only config name appears when modelId is not available
  • All 49 ChatTextArea tests pass
  • All 21 ApiConfigSelector tests pass
  • Full monorepo lint and type-check pass

Pre-Submission Checklist

  • Issue Linked: This PR is linked to an approved GitHub Issue (see "Related GitHub Issue" above).
  • Scope: My changes are focused on the linked issue (one major feature/fix per PR).
  • Self-Review: I have performed a thorough self-review of my code.
  • Testing: New and/or updated tests have been added to cover my changes.
  • Documentation Impact: No documentation updates are required.
  • Contribution Guidelines: I have read and agree to the Contributor Guidelines.

Documentation Updates

  • No documentation updates are required.

Additional Notes

Feedback and guidance are welcome.


Important

Enhances ChatTextArea.tsx to display active model ID with API config name and updates tooltip, with tests in ChatTextArea.spec.tsx.

  • Behavior:
    • ChatTextArea.tsx: Updates useMemo to include modelId in displayName and tooltipContent for API config display.
    • Tooltip now shows full provider and model info.
  • Tests:
    • ChatTextArea.spec.tsx: Adds tests to verify display of model ID with config name and only config name when modelId is unavailable.
    • Ensures all existing tests pass.

This description was created by Ellipsis for 80b3d8c. You can customize this summary. It will automatically update as commits are pushed.

Display the model ID alongside the config name in the ApiConfigSelector
trigger button (e.g. "default · claude-sonnet-4-20250514") so users can
immediately see which model is active for the current mode without
clicking anything.

Also enhances the tooltip to show provider info when the trigger text
is truncated.

Closes #11290
@roomote
Copy link
Contributor Author

roomote bot commented Feb 7, 2026

Rooviewer Clock   See task

Reviewed the changes. Clean, minimal implementation that correctly uses existing modelId data from ProviderSettingsEntry. One minor issue found:

  • Tooltip falls back to config name (redundant with display text) instead of the i18n string t("chat:selectApiConfig") when modelId is absent

Mention @roomote in a comment to request specific changes to this pull request or fix all unresolved issues.

displayName: modelId ? `${configName} · ${modelId}` : configName,
tooltipContent: modelId
? `${configName}${currentConfig?.apiProvider ? ` (${currentConfig.apiProvider})` : ""} · ${modelId}`
: configName,
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When modelId is absent, tooltipContent is set to configName -- the same value as displayName. This makes the tooltip redundant (identical to the button label). It also prevents the || t("chat:selectApiConfig") fallback on line 1318 from ever triggering, so the original instructional tooltip text is lost for any config with a non-empty name. Setting this branch to "" would let the i18n fallback work correctly when there is no extra model info to display.

Suggested change
: configName,
: "",

Fix it with Roo Code or mention @roomote and request a fix.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[ENHANCEMENT] Show active provider + model in the mode

1 participant