Skip to content

新增:模型管理自定义提供商「全部」聚合视图 - #243

Closed
windfsy wants to merge 1 commit into
aimod-cc:betafrom
windfsy:feat/custom-providers-all-view
Closed

windfsy wants to merge 1 commit into
aimod-cc:betafrom
windfsy:feat/custom-providers-all-view

Conversation

@windfsy

@windfsy windfsy commented Oct 14, 2026

Copy link
Copy Markdown
Contributor

概述

仿照内置提供商区块,为模型管理页的自定义提供商区块新增「全部(N 家)」聚合视图:多家自定义提供商的模型合并浏览,按家分组,统计 / 搜索 / 状态筛选与单家视图同一口径。

变更内容

新功能:自定义供应商「全部」视图

  • 左栏自定义区块顶部新增「全部(N 家)」条目(仅 ≥2 家时显示,一家时无聚合意义),计数为各家模型数之和,头像与内置「全部」同款网格图标
  • 表格合并浏览多家的模型,按家分组(组带 + 「展开其余 N 个」折叠,行为与内置「全部」一致);倍率 / 来源两列按自定义视图隐藏
  • 面板头标题与统计(总数 / 已启用 / 有映射)、搜索、状态筛选、倍率排序全部按聚合口径
  • 聚合视图为只读浏览:行内开关 / 映射 / 思考等级 / 能力位 / 移除 / 测试仍按行上的提供商落到具体的家;「获取模型」回落内置刷新路径;「添加模型」不预选家
  • 选中项落盘跨会话记忆;删光所有自定义供应商后自动回落内置「全部」,重建后自动恢复

实现

  • 聚合选中值 CUSTOM_ALL = '$custom':刻意不用 custom- 前缀(与后端 is_custom_provider_id 同判据的 isCustom 会把它当成真实记录,写路径会拿聚合 id 去整表提交),$ 前缀在任何一家 id 字符集之外,天然不撞
  • 数据层新增 customAllViewOf():把目录里每家的 buildView 结果拼成一份同形视图(行上 provider 保留各家真实 id),按目录列表引用做缓存
  • resolveProvider / viewData / visibleColumns / syncHead / matches / 左栏 / 标题 / 空态逐处分流

顺带修复

  • 选中项归一化在「目录桥已就位但 customList 还没拉回」的启动窗口期,会把聚合选中项误判为失效而回落「全部」,导致筛选记忆被静默清掉(本地 4 连刷必现)。修为与单个自定义家相同「两份数据都到位才判定」的口径;修复后 4 连刷稳定恢复。对现有单家视图无行为变化

i18n

  • 新增空态文案词条补齐 en / ja / ko / pt-BR;zh-Hant 走运行期回落简体机制,无需新词条

验证

  • headless server 二进制 + 独立数据目录 + 独立端口(127.0.0.1:13065)起隔离实例,浏览器实测:
    • 聚合视图渲染 / 分组 / 统计(3+2 模型、1 禁用 → 「5 个模型 · 已启用 4 · 有映射 1」)
    • 聚合视图内改一条默认绑定开关 → 后端对应家的记录正确变更(写入路由不串家)
    • 单家视图 / 内置「全部」来回切换回归(列显隐、分组带、家名标题)
    • 筛选记忆跨刷新恢复(修复前 4 连刷 4 失败,修复后 4 连刷 4 通过)
    • 删光两家后回落内置「全部」;重建两家后聚合视图与选中记忆恢复
  • tsc --noEmit + vite build 通过;i18n 构建产物与源同步提交

🤖 本条回复由 AI Agent 生成

…统计与搜索口径与单家一致 2. 聚合视图为只读浏览:行内开关 / 映射 / 能力位 / 移除 / 测试仍按行上提供商落到各自的家;「获取模型」回落内置刷新路径,「添加模型」不预选 3. 修复:选中项归一化在目录清单未拉回的启动窗口期误判聚合选中失效,导致筛选记忆被静默清掉的时序竞态 4. 补齐 en / ja / ko / pt-BR 新增空态文案
@windfsy

windfsy commented Oct 16, 2026

Copy link
Copy Markdown
Contributor Author

这个 PR 的功能已由作者的重新实现(8bae439c,随 v3.0.4 发布)取代,因此关闭。

重写版把聚合哨兵定成了 custom-all,我原实现注释里特意避开 custom- 前缀的原因(isCustom 的 startsWith 判定会把哨兵当成一家真实记录)在发布版中实际发生了:聚合视图列表恒空、「获取模型」无反应、「添加模型」锁定(详见修复 PR #292 的根因分析)。#292 以最小 diff 修掉了这四处,已在 3066 隔离实例上浏览器实测通过。

🤖 本条回复由 AI Agent 生成

@windfsy windfsy closed this Oct 16, 2026
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