# 已知问题与迁移遗留 记录 UI 库迁移(Phase 006-007,naive-ui → Arco Design Vue)过程中**发现但按规则未修**的问题,以及自动化测试**测不到、只能靠手工验证**的风险点。 用法:日常使用时遇到异常表现,先来本文档搜关键词。确认命中后按「证据」栏定位,确认是同一个问题再修。 新增条目请追加到对应分区末尾,不要重排已有条目。 --- ## 一、已确认的业务逻辑缺陷 这些是读代码时确认存在的真实缺陷,与迁移无关(迁移前就存在),但迁移过程中被注意到。修它们属于逻辑改动,需单独开分支。 ### 1. ModelSelector 的 computed 里有副作用 - **现象**:切换模型时 provider 选择偶尔「自己跳」,或 `customProvider` 状态被莫名改写 - **位置**:`packages/client/src/components/layout/ModelSelector.vue`,`providerOptions` computed 的 getter - **证据**:computed 的 getter 内部给 `customProvider.value` 赋值。computed 应当是纯读。副作用是:任何其它 computed 或渲染逻辑读到 `providerOptions`,都会顺带改写 `customProvider` - **修法**:把赋值移到 `watch` 或显式的 setter 里 ### 2. ProfileSelector 把 i18n key 当文案用 - **现象**:某些运行时状态提示里显示原始 key(如 `profiles.runtime.checking`)而不是中文/英文文案 - **位置**:`packages/client/src/components/layout/ProfileSelector.vue`,`gatewayStatusText` / `bridgeStatusText` - **证据**:`message.warning(t('profiles.runtime.checking'))` —— `t()` 的结果(一个 key 字符串)被直接当消息正文,缺了外层再套一次 `t()` - **修法**:改成 `message.warning(t('profiles.runtime.checking'))`(让 `t()` 返回字符串函数的结果),即检查是否需要 `t(t(key))` 或改用 `te()` + 手动查表 ### 3. McpManagerView 的 `_autoRetryCount` 赋值可能静默失效 - **现象**:MCP 失败后点「重试」,自动重试计数似乎没有正确归零 - **位置**:`packages/client/src/views/hermes/McpManagerView.vue`,`let _autoRetryCount`(模块级) - **证据**:在 header 按钮的内联表达式 `@click="_autoRetryCount = 0; loadServers()"` 里被重置。`