Skip to content

feat(webui): 账号身份行展示套餐名并适配新老套餐 - #7

Merged
UncleMoc merged 4 commits into
mainfrom
feat/webui-rail-plan-label
Nov 10, 2026
Merged

UncleMoc merged 4 commits into
mainfrom
feat/webui-rail-plan-label

Conversation

@July-X

@July-X July-X commented Nov 9, 2026 •

Copy link
Copy Markdown
Contributor

变更

左下角账号身份行改成展示套餐信息:

  • 删除原先的“本地 · host:port”。未登录时显示 请先登录账号!,已登录时显示账号的套餐名(数据来自配额接口的 signedIn / tokenPlanTier / planName / subscriptionType)。
  • 套餐命名以账户实际返回为准:新 M Plan 档位(Go / Explore / Build)原样透传;旧账号标识 starter / plus / max / ultra / plus极速版 映射为显示名(大小写、空格不敏感),其余未知值原样透传;订阅态解析不出档位时优先用接口的 planName,最后才按 subscriptionType 兜底为 Token Plan / M Plan。
  • 套餐措辞从 settings 的私有 projection 发布为 usage-plan.public.ts,账号业务与“用量与模型”页共用同一套措辞(依赖门禁 0 违规);同时移除 shell / main.tsx 的 hostLabel 传参链。
  • “Plus 极速版”的显示名暂按带空格处理;若产品口径不同请指出,改一行即可。

涉及文件:

  • packages/webui/src/client/features/account/ui/UserMenu.tsx
  • packages/webui/src/client/features/account/projection/usage.public.ts
  • packages/webui/src/client/features/settings/projection/usage-plan.public.ts(由 usage-plan.ts 重命名)
  • packages/webui/src/client/shell/WebuiClientFoundationApp.tsx、packages/webui/src/client/main.tsx
  • packages/webui/docs/design/design-language.md
  • release/public-source.json、packages/webui/test/gates/fixtures/path-metadata-f00.json
  • packages/webui/test/unit/webui-account-billing.test.ts、packages/webui/test/unit/webui-usage-quota.test.ts
  • 三平台视觉基线:packages/webui/test/browser/**/*-snapshots/*.png(42 张,按与 main 合并后的源码重录)

与 main 的冲突处理

  • 冲突只有 42 个跨平台视觉基线 PNG:main 的 rail 会话行改动(fix(webui): stop the session rail row actions from covering the session name #8)和本分支的账号身份行改动都重录了同一批文件;文本文件均可自动合并。
  • 已合并 main(0ae2b072)。基线按合并后的源码在三个平台各采集原生截图(CI 上采集,ubuntu / windows / macos 各 14 张,2cb178e4),每张与 main 版基线的差异经逐像素核对只落在 rail 底部的账号身份行矩形内(约 x56..178、y876..888),main 的 rail 改动像素原样保留。
  • 同时重新生成 release/public-source.json,登记 main 新增的 rail-session-navigation.spec.mjs。

验证

  • CI(run 42777688107):ubuntu、windows 全部通过;macOS 仅 agent-transcript.test.ts > 真实 agent 渲染与恢复 失败(main 自身 run 42769876326 同测试、同断言失败,属存量偶发,与本改动无调用关系)。三平台的浏览器截图门禁均已通过。
  • pnpm typecheck:webui:通过。
  • 相关单测 61 项通过(webui-account-billing 33 项、webui-usage-quota 28 项),覆盖新档位透传、旧标识显示名、planName 兜底和身份行的登录/未登录分支。
  • pnpm check:webui-dependency:0 违规(publication / role / cycles)。
  • pnpm build:webui、pnpm check:webui-boundary:通过。
  • pnpm check:source:通过(文件重命名与 main 新增的测试文件均已登记)。
  • Playwright + Edge 实测未登录态:身份行显示 MiniMax Code / 请先登录账号!,无“本地 ·”。
  • NOT RUN:完整 pnpm verify(本机全量 vitest 触发大量 5s 默认超时,属本机负载问题,改由 CI 覆盖);登录态的真实接口没有可用账号实测。

发布与贡献检查

  • 有权在现有许可证下贡献这些改动;未引入第三方素材,未改动许可证。
  • 未包含凭据、账号数据、真实用户内容、内部源码历史或私有评审材料。
  • 文件重命名已重新生成 release/public-source.json,冻结 path 清单登记了新路径;没有新增测试文件(改的是已注册的测试文件)。
  • 文档更新的是 design-language.md 中套餐措辞的规则;中英 README 不涉及,未把离线结果描述为线上验收。

维护者交接

发布范围与许可证变更:无。共享源码回移:待合并后由维护者按 docs/source-sync.md 处理。

@July-X July-X added the enhancement New feature or request label Nov 9, 2026
@July-X

July-X commented Nov 9, 2026

Copy link
Copy Markdown
Contributor Author

CI 结果说明:三个平台的失败与 main 基线一致,不是本 PR 引入的。

  • main 的 WebUI CI 在 run 42633836041 就是红的(同一个 workflow)。
  • Ubuntu:6 个失败测试文件 / 295 通过。失败名单与 main 相同:冻结 path 清单缺 3 个既有路径(conversation/pagination.ts 等)、presentation 签名漂移(UsageModelSettings.tsx)、workspace tile 顺序相关 3 个文件、webui-application-lifecycle。本 PR 修改的两个测试文件在 CI 中全部通过:webui-account-billing(33 项)、webui-usage-quota(28 项)。
  • macOS:同一批失败,另加 miniapp / ssh / remote-resource 的平台相关失败;main 的 macOS job 也在同一个“Test WebUI units and integrations”步骤失败。
  • Windows:Check WebUI motion rules 失败,与 main 相同;本地也能复现 motion inventory 漂移(29 条)。

结论:本 PR 没有新增失败,红的是仓库当前的基线。要变绿需要单独修这些存量问题(冻结 oracle、presentation 签名、tile 顺序、lifecycle fence、motion inventory、macOS 平台相关测试),我可以另开一个 CI 基线修复 PR,不和本功能混在一起。

- 移除身份行的“本地 · host:port”,未登录显示“请先登录账号!”,已登录显示账号的套餐名(来自配额接口)。
- 套餐名以账户返回为准:新 M Plan 档位(Go / Explore / Build)原样透传;旧账号标识 starter / plus / max / ultra / plus极速版 映射为显示名;订阅态解析不出档位时优先用 planName;数字 combo id 按 subscription_type 兜底为 Token Plan / M Plan。
- 套餐措辞模块发布为 usage-plan.public.ts 供账号业务复用,身份行与“用量与模型”页面共用同一套措辞。
- 同步更新设计文档、冻结路径清单和单元测试。
@July-X
July-X force-pushed the feat/webui-rail-plan-label branch from 8785a11 to bed3d36 Compare November 10, 2026 05:41
账号身份行由“本地 · host:port”改为账号套餐名后,浏览器截图基线的左下角随之变化。
本次更新三个平台共 42 张基线:

- plugin-catalogue-layout 4 张(add Skill / create Agent / add MCP Server / Git import 对话框)
- responsive-baselines 8 张(1440/1280/1024/900/768 的 shell,1440/1024/768 的 workspace panel)
- visual-baselines 2 张(shell-and-rail、transcript-and-composer)

基线取自本次 CI 三个平台(linux / darwin / win32)失败时生成的实际截图;diff 图确认变化只落在身份行文字,其余像素不变。
冲突全部是 42 个跨平台视觉基线 PNG:main 的 rail 会话行改动与本分支的账号身份行文案改动都重录了同一批基线。
先取 main 的原生录制结果,再按合并后源码在 darwin / linux / win32 三个平台各采集原生截图补录。

同时重新生成 release/public-source.json,登记 main 新增的 rail-session-navigation.spec.mjs。
冲突的 42 张基线取自合并提交在 CI 的原生截图(ubuntu / windows / macos 各 14 张),
每张与 main 基线的差异只落在 rail 底部的账号身份行矩形内(约 x56..178、y876..888),
main 的 rail 会话行改动像素保持原样。
@UncleMoc
UncleMoc merged commit 541bf9b into main Nov 10, 2026
5 of 6 checks passed
@July-X
July-X deleted the feat/webui-rail-plan-label branch November 10, 2026 09:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants