Skip to content

feat(tui): remove provider name i18n, pin mimo models at top#1279

Merged
yanyihan-xiaomi merged 11 commits into
mainfrom
feat/mimo-provider-ux
Jun 24, 2026
Merged

feat(tui): remove provider name i18n, pin mimo models at top#1279
yanyihan-xiaomi merged 11 commits into
mainfrom
feat/mimo-provider-ux

Conversation

@yanyihan-xiaomi

@yanyihan-xiaomi yanyihan-xiaomi commented Jun 24, 2026

Copy link
Copy Markdown
Collaborator

Summary / 概述

  • Remove provider.name.xiaomi and provider.name.mimo i18n translations — provider list is displayed in English, no need for localization
  • Hide provider label in prompt for mimo-auto to avoid redundancy with model name
  • Pin mimo-free and xiaomi provider at the top of model picker (after favorites/recent)
  • Hide provider description for mimo-auto in favorites/recent sections
  • Unify Ctrl+A with /connect: pressing Ctrl+A in the model dialog now opens DialogMimoLogin (same as /connect) instead of the bare DialogProvider, so users get the MiMo OAuth login and Claude Code import entries; button title fixed to "Connect provider"
  • Scoped model picker (e.g. after connecting a provider) now shows only that provider's own models; the free mimo-auto (owned by the mimo provider) is no longer prepended into the xiaomi-scoped view — it remains pinned in the unscoped picker

  • 移除 provider.name.xiaomiprovider.name.mimo 的 i18n 翻译 — Provider 列表统一显示英文,不需要本地化
  • 在主界面隐藏 mimo-auto 的 provider 标签,避免与模型名重复显示
  • 在模型选择器中置顶 mimo-free 和 xiaomi provider(在收藏/最近之后)
  • 在收藏/最近部分隐藏 mimo-auto 的 provider 描述
  • 统一 Ctrl+A 与 /connect:在模型对话框中按 Ctrl+A 现在打开 DialogMimoLogin(与 /connect 一致),不再是裸的 DialogProvider,用户可直接使用小米 OAuth 登录和 Claude Code 导入入口;按钮标题固定为 "Connect provider"
  • Scoped 模型选择器(如连接某 provider 之后进入)现在只显示该 provider 自己的模型;免费的 mimo-auto(归属 mimo provider)不再被 prepend 进 xiaomi-scoped 视图 — 它仍在非 scoped 的选择器中置顶显示

Motivation / 动机

PR #1241 introduced provider.name.xiaomi translations (小米/シャオミ/Сяоми) which are unnecessary — the provider list is displayed in English consistently, so these translations were never actually shown. The provider.name.mimo translation was used to shorten the display name, but this can be handled more cleanly with UI logic.

The mimo-free model name already contains "MiMo", so showing the provider label/description next to it is redundant.

Previously Ctrl+A and /connect led to two different dialogs (DialogProvider vs DialogMimoLogin) despite both meaning "connect a provider", which was confusing. They now share the same path.

The old code special-cased the xiaomi-scoped picker to prepend mimo-auto, which actually belongs to a different provider (mimo). Showing a cross-provider model inside a view scoped to "the provider you just connected" is itself confusing, so scoped views now consistently show only their own provider's models. A comment documents this so the prepend hack is not re-added as a perceived bug fix.

PR #1241 引入了 provider.name.xiaomi 翻译(小米/シャオミ/Сяоми),这是不必要的 — Provider 列表统一显示英文,这些翻译实际上不会被展示。provider.name.mimo 翻译用于缩短显示名称,但可以通过 UI 逻辑更优雅地处理。

mimo-auto 的模型名已经包含 "MiMo",在旁边显示 provider 标签/描述是冗余的。

此前 Ctrl+A 和 /connect 虽然语义都是"连接 provider",却分别打开两个不同的对话框(DialogProviderDialogMimoLogin),容易让人困惑。现已统一走同一路径。

旧代码对 xiaomi-scoped 选择器做了特例处理,把 mimo-auto prepend 进去 — 而它实际归属于另一个 provider(mimo)。在一个 scoped 到"你刚连接的 provider"的视图里展示跨 provider 的模型本身就令人困惑,因此 scoped 视图现在一致地只显示自己 provider 的模型。代码中加了注释说明,避免后人把这个 prepend hack 当成 bug 修复重新加回。

@yanyihan-xiaomi yanyihan-xiaomi self-assigned this Jun 24, 2026
…bel in prompt

- Remove all provider.name.xiaomi translations (brand name doesn't need translation)
- Remove all provider.name.mimo translations (use UI logic instead)
- Hide provider label in prompt when providerID is 'mimo' to avoid redundancy with model name
- Simplify code by using provider.name directly instead of i18n lookups
- Extract xiaomi provider and mimo-free into pinned section after favorites/recents
- Remove xiaomi and mimo from regular provider list to avoid duplication
- Xiaomi and mimo-free now appear as the first provider group below recent models
@yanyihan-xiaomi yanyihan-xiaomi force-pushed the feat/mimo-provider-ux branch from 486e28a to 1a969c5 Compare June 24, 2026 06:48
- Remove showSections from showPinned condition so pinned options are always built
- Include pinnedOptions in search results (fuzzysort)
- Only exclude xiaomi/mimo from providerOptions when pinned section is visible
Ctrl+A (model_provider_list) inside the model dialog now opens
DialogMimoLogin instead of the bare DialogProvider, matching the
/connect command path so users get the MiMo OAuth login and Claude
Code import entries. Button title fixed to 'Connect provider'.
Add a comment explaining that scoped views (after connecting a
provider) intentionally show only that provider's own models, so the
free mimo-auto (owned by the mimo provider) is not surfaced there \u2014
it stays pinned in the unscoped picker. Prevents re-adding the old
prepend hack as a perceived bug fix.
@yanyihan-xiaomi yanyihan-xiaomi merged commit 5fc3df6 into main Jun 24, 2026
4 of 6 checks passed
@yanyihan-xiaomi yanyihan-xiaomi deleted the feat/mimo-provider-ux branch June 24, 2026 09:04
onlyfeng added a commit to onlyfeng/MiMo-Code that referenced this pull request Jun 24, 2026
* feat(tui): remove provider name i18n, pin mimo models at top (XiaomiMiMo#1279)

* revert: remove provider.name i18n translations, hide mimo provider label in prompt

- Remove all provider.name.xiaomi translations (brand name doesn't need translation)
- Remove all provider.name.mimo translations (use UI logic instead)
- Hide provider label in prompt when providerID is 'mimo' to avoid redundancy with model name
- Simplify code by using provider.name directly instead of i18n lookups

* feat(tui): pin xiaomi provider and mimo-free at top of model picker

- Extract xiaomi provider and mimo-free into pinned section after favorites/recents
- Remove xiaomi and mimo from regular provider list to avoid duplication
- Xiaomi and mimo-free now appear as the first provider group below recent models

* fix: simplify pinned logic, mimo-free independent of xiaomi provider

* fix: use consistent category name for pinned mimo/xiaomi models

* fix: hide provider description for mimo-auto in favorites/recent sections

* fix: remove unused useLanguage import from dialog-provider

* fix: make xiaomi/mimo searchable and work when scoped to xiaomi provider

- Remove showSections from showPinned condition so pinned options are always built
- Include pinnedOptions in search results (fuzzysort)
- Only exclude xiaomi/mimo from providerOptions when pinned section is visible

* feat: add '+ Add model' for xiaomi in pinned section

* fix: add deprecated filter for mimo-auto, only hide provider label for mimo-auto not all mimo models

* feat: unify ctrl+a with /connect to open DialogMimoLogin

Ctrl+A (model_provider_list) inside the model dialog now opens
DialogMimoLogin instead of the bare DialogProvider, matching the
/connect command path so users get the MiMo OAuth login and Claude
Code import entries. Button title fixed to 'Connect provider'.

* docs: clarify scoped model picker excludes cross-provider mimo-auto

Add a comment explaining that scoped views (after connecting a
provider) intentionally show only that provider's own models, so the
free mimo-auto (owned by the mimo provider) is not surfaced there \u2014
it stays pinned in the unscoped picker. Prevents re-adding the old
prepend hack as a perceived bug fix.

* fix(security): allow configured internal network fetches

* fix(webfetch): require permission for redirects

---------

Co-authored-by: Yihan Yan <yanyihan@xiaomi.com>
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.

1 participant